%global maintainer cpuhouse %global _hardened_build 1 %global libname libzcloudflare %global libsoname %{expand:%(echo %{libname} | sed 's/^lib//g')} %global __provides_exclude_from ^%{_libdir}/%{name}/pkgconfig/minizip\\.pc$ Name: %{libname} Version: 1.2.8 Release: 3%{?dist}~%{maintainer} Summary: The compression and decompression library License: Zlib Vendor: %{maintainer} URL: https://github.com/cloudflare/zlib Source: https://github.com/cloudflare/zlib/archive/v1.2.8.tar.gz#/zlib-%{version}.tar.gz # https://github.com/madler/zlib/pull/210 Patch0: zlib-1.2.5-minizip-fixuncrypt.patch BuildRequires: gcc Provides: %{name} = %{version}-%{release} Provides: %{name}%{?_isa} = %{version}-%{release} Provides: cloudflare-zlib = %{version}-%{release} Provides: cloudflare-zlib%{?_isa} = %{version}-%{release} %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 Zlib development Requires: %{name}%{?_isa} = %{version}-%{release} Provides: cloudflare-zlib-devel = %{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. %package static Summary: Static libraries for Zlib development Requires: %{name}-devel%{?_isa} = %{version}-%{release} Provides: cloudflare-zlib-static = %{version}-%{release} %description static The zlib-static package includes static libraries needed to develop programs that use the zlib compression and decompression library. %prep %setup -q -n zlib-%{version} %patch0 -p1 -b .fixuncrypt iconv -f iso-8859-2 -t utf-8 < ChangeLog > ChangeLog.tmp mv ChangeLog.tmp ChangeLog sed -i 's/-lz/-l%{libsoname}/' zlib.pc.* %build export CC="gcc" export CFLAGS="%{optflags}" export LDFLAGS="$LDFLAGS -Wl,-z,relro -Wl,-z,now" export LDSHARED="$CC -shared" export MKFLAGS="" %ifarch x86_64 CFLAGS+=" %{?_hardened_build:-O3 -fPIC}" %endif %ifarch ppc64 CFLAGS+=" -O3" %endif %ifarch aarch64 CFLAGS+=" -DARM_NEON -O3" %endif %ifarch s390 s390x CFLAGS+=" -DDFLTCC" %endif LDSHARED+=" -Wl,-soname,%{libname}.so.1,--version-script,zlib.map" MKFLAGS+=" SHAREDLIB=%{libname}.so" MKFLAGS+=" SHAREDLIBV=%{libname}.so.%{version}" MKFLAGS+=" SHAREDLIBM=%{libname}.so.1" %ifarch s390 s390x MKFLAGS+=" OBJA=dfltcc.o PIC_OBJA=dfltcc.lo" %endif # no-autotools, %%configure is not compatible ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir}/%{libsoname} \ --includedir=%{_includedir}/%{libsoname} %make_build $MKFLAGS %check make test %install %make_install pushd %{buildroot}%{_libdir}/%{libsoname}/ find . -type l -delete for f in libz.*; do mv $f $(echo $f | sed 's/libz./%{libname}./g') done ln -s %{libname}.so.%{version} %{libname}.so.1 ln -s %{libname}.so.1 %{libname}.so popd %{__install} -d %{buildroot}%{_sysconfdir}/ld.so.conf.d echo %{_libdir}/%{libsoname} > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{libsoname}.conf %{__install} -p -D -m 0644 zlib.pc %{buildroot}%{_libdir}/pkgconfig/%{libsoname}.pc # Remove unwanted %{__rm} -rf %{buildroot}%{_libdir}/%{libsoname}/pkgconfig find %{buildroot} -name '*.la' -delete %ldconfig_scriptlets %files %license README %doc ChangeLog FAQ %dir %{_libdir}/%{libsoname} %{_libdir}/%{libsoname}/%{libname}.so.* %{_sysconfdir}/ld.so.conf.d/%{libsoname}.conf %files devel %license README %doc doc/algorithm.txt test/example.c %dir %{_includedir}/%{libsoname} %{_libdir}/%{libsoname}/%{libname}.so %{_libdir}/pkgconfig/%{libsoname}.pc %{_includedir}/%{libsoname}/zlib.h %{_includedir}/%{libsoname}/zconf.h # Conflicts with zlib %exclude %{_mandir}/man3/zlib.3* %files static %{_libdir}/%{libsoname}/%{libname}.a %changelog * Thu Jul 02 2020 Cpuhouse DevTeam - 1.2.8-3 - Package (and library) renamed to libzcloudflare - Enabled hardened build with -fPIC * Thu Jun 25 2020 Cpuhouse DevTeam - 1.2.8-2 - Added ldconfig file * Mon Jun 08 2020 Cpuhouse DevTeam - 1.2.8-1 - First package (spec adapted from Fedora ELN) # vim:number:sw=4:sts=4:ts=4:et:autoindent:syntax=spec