%define dotests 1 Summary: A utility for determining file types Name: jq Version: 1.6 Release: 1 License: MIT Group: Productivity/Text/Utilities Source0: https://github.com/stedolan/jq/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz URL: https://github.com/stedolan/%{name}/releases Patch0: %{name}-%{version}-jv.patch Patch1: %{name}-%{version}-builtin.patch Patch2: %{name}-%{version}-testcase.patch Patch3: %{name}-%{version}-aix.patch BuildRequires: oniguruma-devel >= 6.9.2 Requires: oniguruma >= 6.9.2 Requires: libgcc >= 6.3.0 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %define _libdir64 %{_prefix}/lib64 %description A lightweight and flexible command-line JSON processor. jq is like sed for JSON data – you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text. %package -n jq-devel Summary: Development files for jq Group: Development/Languages/C and C++ Requires: %{name} = %{version} %description -n jq-devel Development files (headers and libraries for jq). %prep # Don't use -b -- it will lead to poblems when compiling magic file %setup -q %patch0 %patch1 %patch2 %patch3 rm -rf /tmp/%{name}-%{version}-32bit cp -pr . /tmp/%{name}-%{version}-32bit rm -fr * mv /tmp/%{name}-%{version}-32bit 32bit cp -pr 32bit 64bit %build # setup environment for 32-bit and 64-bit export AR="/usr/bin/ar -X32_64" #export CC="/usr/vac/bin/xlc" export CC="/opt/freeware/bin/gcc" # first build the 64-bit version cd 64bit export OBJECT_MODE=64 export LDFLAGS="-pthread -L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib " export CFLAGS="-maix64 -O2 -I/opt/freeware/include -pthread" ./configure --prefix=%{_prefix} \ --mandir=%{_mandir} \ --libdir=%{_libdir64} gmake V=1 if [ "%{dotests}" == 1 ] then (gmake -k check || true) fi # now build the 32-bit version cd ../32bit export OBJECT_MODE=32 export LDFLAGS="-pthread -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" export CFLAGS="-maix32 -D_LARGE_FILES -O2 -I/opt/freeware/include -pthread" ./configure --prefix=%{_prefix} \ --mandir=%{_mandir} \ --libdir=%{_libdir} gmake V=1 # add the 64-bit shared objects to the shared library containing already the # 32-bit shared objects ${AR} -q .libs/libjq.a ../64bit/.libs/libjq.so.1 if [ "%{dotests}" == 1 ] then (gmake -k check || true) fi %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} export OBJECT_MODE=64 cd 64bit gmake DESTDIR=${RPM_BUILD_ROOT} install ( cd ${RPM_BUILD_ROOT}%{_bindir} for f in * do mv ${f} ${f}_64 done ) export OBJECT_MODE=32 cd ../32bit gmake DESTDIR=${RPM_BUILD_ROOT} install /usr/bin/strip -X32_64 ${RPM_BUILD_ROOT}%{_bindir}/* || : ( cd ${RPM_BUILD_ROOT}%{_bindir} for f in $(ls -1| grep -v -e _32 -e _64) do mv $f "$f"_32 ln -sf "$f"_64 $f done ) ( cd ${RPM_BUILD_ROOT} for dir in include bin lib lib64 do mkdir -p usr/linux/${dir} cd usr/linux/${dir} ln -sf ../../..%{_prefix}/${dir}/* . cd - done ) %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,system,-) %doc 32bit/AUTHORS 32bit/COPYING 32bit/ChangeLog 32bit/README 32bit/NEWS 32bit/README.md %{_bindir}/%{name}* %{_mandir}/man1/* /usr/linux/bin/%{name}* %{_libdir}/*.a %{_libdir64}/*.a /usr/linux/lib/*.a /usr/linux/lib64/*.a %files -n jq-devel %defattr(-,root,system,-) %{_includedir}/* /usr/linux/include/* %changelog * Tue May 28 2019 Reshma V Kumar - 1.6-1 - Update to latest version - Build with oniguruma support * Wed Sep 26 2018 Reshma V Kumar - Initial port for AIX toolbox