# By default, dotests are run. # No tests: rpmbuild -ba --without dotests *.spec %bcond_without dotests %define _libdir64 %{_prefix}/lib64 Summary: The zlib compression and decompression library. Name: zlib Version: 1.2.13 Release: 1 Group: System Environment/Libraries Source: http://zlib.net/zlib-%{version}.tar.gz Patch0: zlib-1.2.11-2-aix.patch URL: http://www.zlib.net/ License: zlib Prefix: %{_prefix} %description Zlib is a general-purpose, patent-free, lossless data compression library which is used by many different programs. %package devel Summary: Header files and libraries for developing apps which will use zlib. Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel The zlib-devel package contains the header files and libraries needed to develop programs that use the zlib compression and decompression library. %prep #Build with xlc 13.1.3 as it has some performance improvement over previous xlc versions export PATH=/opt/IBM/xlc/13.1.3/bin:$PATH if [[ $(xlc -qversion | grep Version | awk '{print $2}') != "13.01.0003.0007" ]] then echo "xlc 13.1.3.7 version not found" exit 1 fi %setup -q %patch0 # Duplicate source for 32 & 64 bits rm -rf /tmp/%{name}-%{version}-32bit cp -pr . /tmp/%{name}-%{version}-32bit rm -rf ..?* .[!.]* * mv /tmp/%{name}-%{version}-32bit 32bit cp -pr 32bit 64bit %build export PATH=/opt/IBM/xlc/13.1.3/bin:$PATH export CFLAGS="-qmaxmem=-1 -O3" # 64bit cd 64bit export CC="xlc -q64" export OBJECT_MODE=64 ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir64} \ --static gmake %{?_smp_mflags} ${CC} -qmkshrobj libz.a -o libz.so.1 -blibpath:/usr/lib:/lib rm libz.a /usr/bin/ar -q libz.a libz.so.1 # add AIX Toolbox compatibility member for compatibility with older apps # (make sure they're set for LOADONLY with 'strip -e'). cp libz.so.1 shr_64.o /usr/bin/strip -e shr_64.o /usr/bin/ar -q libz.a shr_64.o #32 bit cd ../32bit export CC="xlc" export OBJECT_MODE=32 ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --static gmake %{?_smp_mflags} ${CC} -qmkshrobj libz.a -o libz.so.1 -bmaxdata:0x80000000 -blibpath:/usr/lib:/lib rm libz.a /usr/bin/ar -q libz.a libz.so.1 # add AIX Toolbox compatibility member for compatibility with older apps # (make sure they're set for LOADONLY with 'strip -e'). cp libz.so.1 shr.o /usr/bin/strip -e shr.o /usr/bin/ar -q libz.a shr.o %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} # setup environment for 32-bit and 64-bit builds export AR="/usr/bin/ar -X32_64" export NM="/usr/bin/nm -X32_64" cd 64bit export OBJECT_MODE=64 gmake DESTDIR=${RPM_BUILD_ROOT} install cd ../32bit export OBJECT_MODE=32 gmake DESTDIR=${RPM_BUILD_ROOT} install ( # add the 64-bit shared objects to the shared library containing already the 32-bit shared objects cd ${RPM_BUILD_ROOT}%{_libdir64} ${AR} -x ${RPM_BUILD_ROOT}%{_libdir64}/libz.a libz.so.1 ${AR} -q ${RPM_BUILD_ROOT}%{_libdir}/libz.a ${RPM_BUILD_ROOT}%{_libdir64}/libz.so.1 ${AR} -x ${RPM_BUILD_ROOT}%{_libdir64}/libz.a shr_64.o ${AR} -q ${RPM_BUILD_ROOT}%{_libdir}/libz.a ${RPM_BUILD_ROOT}%{_libdir64}/shr_64.o rm ${RPM_BUILD_ROOT}%{_libdir64}/shr_64.o ) %check export PATH=/opt/IBM/xlc/13.1.3/bin:$PATH %if %{with dotests} cd 64bit export OBJECT_MODE=64 ( gmake -k check || true ) cd ../32bit export OBJECT_MODE=32 ( gmake -k check || true ) %endif %posttrans # Reinstate the LPP rpm.rte symlink, they have probably been replaced/removed # Get the LPP rpm.rte version first and check for rpm.rte version because # rpm.rte >= 4.13.0.4 ships files in "/usr/opt/rpm" path and # rpm.rte below that level ships files in "/usr/opt/freeware" ver=$(lslpp -Lc rpm.rte | /usr/bin/awk 'FNR==2' | /usr/bin/awk -F':' '{print $3}') f1=$(echo $ver | /usr/bin/cut -d"." -f1) f2=$(echo $ver | /usr/bin/cut -d"." -f2) f4=$(echo $ver | /usr/bin/cut -d"." -f4) # 3.0.5.x, 4.9.1.3, 4.13.0.x, 4.15.1.x are the various rpm.rte levels # It's enough to compare First, Second & Fourth fields against 4.13.0.4 if [[ ( $f1 -gt 4 ) || ( $f1 -eq 4 && ( ( $f2 -gt 13 ) || ( ( $f2 -eq 13 ) && ( $f4 -ge 4 )))) ]]; then LINK_PATH="/usr/opt/rpm" else LINK_PATH="/usr/opt/freeware" fi if ! test -e /usr/lib/libz.a && ! test -h /usr/lib/libz.a then ln -sf ${LINK_PATH}/lib/libz.a /usr/lib/libz.a fi %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,system,-) %doc 32bit/README 32bit/ChangeLog 32bit/FAQ %{_libdir}/libz.a %files devel %defattr(-,root,system,-) %doc 32bit/doc/algorithm.txt 32bit/test/minigzip.c 32bit/test/example.c %{_includedir}/* %{_libdir}/pkgconfig/zlib.pc %{_mandir}/man3/* %changelog * Thu Dec 1 2022 Shraddha Patil 1.2.13-1 - Update to version 1.2.13 * Wed Mar 30 2022 Ayappan P 1.2.12-1 - Update to version 1.2.12 * Mon Dec 14 2020 Ayappan P 1.2.11-2 - Use xlc 13.1.3 for better performance - Stop shipping files in /usr * Tue Jul 30 2013 Sangamesh Mallayya 1.2.7-1 - Update to 1.2.7 * Thu Jan 3 2008 Reza Arbab 1.2.3-4 - Compile with -O3. * Fri Jul 15 2005 Philip K. Warren 1.2.2-4 - Fix libpath issue in shr.o compatability member. * Tue Jul 12 2005 Reza Arbab 1.2.2-3 - Apply security fix for Mozilla bugzilla bug 300349. * Thu Jul 07 2005 Philip K. Warren 1.2.2-2 - Apply security fix for CAN-2005-2096. * Thu Jun 09 2005 David Clissold 1.2.2-1 - Update to version 1.2.2. * Tue Nov 30 2004 David Clissold 1.2.1-2 - Add small security patch, backported from 1.2.2. * Tue Apr 20 2004 David Clissold 1.2.1-1 - Update to version 1.2.1. * Fri Feb 13 2004 David Clissold 1.1.4-4 - Build 64-bit library version. * Fri May 23 2003 David Clissold - Add patch for potential buffer overflow. See CERT VU#142121. * Fri Nov 22 2002 David Clissold - Add IBM ILA license. * Mon Mar 11 2002 David Clissold - Update to version 1.1.4 * Tue Mar 20 2001 Marc Stephenson - Build both 32- and 64-bit binaries * Thu Mar 08 2001 Marc Stephenson - Handle non-gcc IA64 compilers * Wed Mar 07 2001 Marc Stephenson - Add logic for default compiler - Generate real archive on Power - Add compatibility entry for Bull freeware * Tue Feb 20 2001 aixtoolbox - Account for different standard lib location in IA64 32-bit ABI * Fri Oct 27 2000 pkgmgr - Modify for AIX Freeware distribution * Mon Feb 7 2000 Jeff Johnson - compress man page. * Sun Mar 21 1999 Cristian Gafton - auto rebuild in the new build environment (release 5) * Wed Sep 09 1998 Cristian Gafton - link against glibc * Mon Jul 27 1998 Jeff Johnson - upgrade to 1.1.3 * Fri May 08 1998 Prospector System - translations modified for de, fr, tr * Wed Apr 08 1998 Cristian Gafton - upgraded to 1.1.2 - buildroot * Tue Oct 07 1997 Donnie Barnes - added URL tag (down at the moment so it may not be correct) - made zlib-devel require zlib * Thu Jun 19 1997 Erik Troan - built against glibc