# Tests by default. No tests: rpm -ba --define 'dotests 0' pth*.spec %{!?dotests: %define dotests 1} Summary: The GNU Portable Threads library Name: pth Version: 2.0.7 Release: 2 License: LGPLv2+ Group: System Environment/Libraries URL: http://www.gnu.org/software/pth/ Source: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz Source1: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz.sig Source2: %{name}-%{version}-%{release}.build.log # FD_SETSIZE 65534 Patch0: %{name}-%{version}-fdsetsize-aix67.patch # host_os=aix Patch1: %{name}-%{version}-aix67v2.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %description Pth is a very portable POSIX/ANSI-C based library for Unix platforms which provides non-preemptive priority-based scheduling for multiple threads of execution ("multithreading") inside server applications. All threads run in the same address space of the server application, but each thread has it's own individual program-counter, run-time stack, signal mask and errno variable. %package devel Summary: Development headers and libraries for GNU Pth Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel Development headers and libraries for GNU Pth. %prep %setup -q # 1 first %patch1 %patch0 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 builds export AR="ar -X32_64" export NM="nm -X32_64" export RM="/usr/bin/rm -f" # first build the 64-bit version cd 64bit export OBJECT_MODE=64 #export CC="/opt/IBM/xlc/13.1.3/bin/xlc -q64" export CC="gcc -maix64 " export CFLAGS="-O2" ./configure \ --prefix=%{_prefix} --libdir=%{_libdir}64 \ --enable-static --enable-shared \ --with-fdsetsize=65534 # stupid configure gets this wrong :-( cat pth_acdef.h | sed -e "s|#define HAVE_GETTIMEOFDAY_ARGS1 1|#undef HAVE_GETTIMEOFDAY_ARGS1|" > pth_acdef.tmp mv -f pth_acdef.tmp pth_acdef.h gmake %{?_smp_mflags} if [ "%{dotests}" == 1 ] then (gmake -k check || true) fi cp .libs/libpth.so.20 ../32bit/ slibclean # now build the 32-bit version cd ../32bit export OBJECT_MODE=32 #export CC="/opt/IBM/xlc/13.1.3/bin/xlc" export CC="gcc -maix32 -D_LARGE_FILES " ./configure \ --prefix=%{_prefix} --libdir=%{_libdir} \ --enable-static --enable-shared \ --with-fdsetsize=1024 # stupid configure gets this wrong :-( cat pth_acdef.h | sed -e "s|#define HAVE_GETTIMEOFDAY_ARGS1 1|#undef HAVE_GETTIMEOFDAY_ARGS1|" > pth_acdef.tmp mv -f pth_acdef.tmp pth_acdef.h gmake %{?_smp_mflags} if [ "%{dotests}" == 1 ] then (gmake -k check || true) fi slibclean # add the 64-bit shared objects to the shared library containing already the # 32-bit shared objects ${AR} -q .libs/libpth.a ./libpth.so.20 %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT # install on 64bit mode export OBJECT_MODE=64 cd 64bit make DESTDIR=$RPM_BUILD_ROOT install ( cd ${RPM_BUILD_ROOT}/%{_prefix}/bin for fic in $(ls -1| grep -v -e _32 -e _64) do mv $fic "$fic"_64 done ) # install on 32bit mode export OBJECT_MODE=32 cd ../32bit make DESTDIR=$RPM_BUILD_ROOT install ( cd ${RPM_BUILD_ROOT}/%{_prefix}/bin for fic in $(ls -1| grep -v -e _32 -e _64) do mv $fic "$fic"_32 ln -sf "$fic"_64 $fic done ) ( cd $RPM_BUILD_ROOT for dir in bin include lib lib64 do mkdir -p usr/$dir cd usr/$dir ln -sf ../..%{_prefix}/$dir/* . cd - done ) %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,system,-) %doc 32bit/ANNOUNCE 32bit/AUTHORS 32bit/COPYING 32bit/ChangeLog 32bit/HISTORY 32bit/NEWS 32bit/PORTING 32bit/README %doc 32bit/SUPPORT 32bit/TESTS 32bit/THANKS 32bit/USERS %{_libdir}/*.a %{_libdir}64/*.a /usr/lib/*.a /usr/lib64/*.a %files devel %defattr(-,root,system,-) %doc 32bit/HACKING %{_bindir}/* %{_includedir}/* %{_libdir}/*.la %{_libdir}64/*.la %{_mandir}/*/* %{_datadir}/aclocal/* /usr/bin/* /usr/include/* /usr/lib/*.la /usr/lib64/*.la %changelog * Thu Jan 18 2018 Reshma V Kumar -2.0.7-2 - Update to latest version * Thu Nov 09 2017 Tony Reix - 2.0.7-2 - Change FD_SETSIZE from 1024 to 65534 * Wed Nov 08 2017 Tony Reix - 2.0.7-1 - Re-port on AIX. AIX v6 with gcc * Fri Mar 28 2008 Michael Perzl - 2.0.7-3 - rebuilt with XLC/C++ and get compile errors fixed * Thu Jan 03 2008 Michael Perzl - 2.0.7-2 - included both 32-bit and 64-bit shared objects * Fri Oct 05 2007 Michael Perzl - 2.0.7-1 - first version for AIX V5.1 and higher