123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- %bcond_without compat
- %bcond_without sanitizers
- %bcond_with abitest
- %define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}
- # Compatible with the following zlib version.
- # see ZLIB_VERSION from https://github.com/zlib-ng/zlib-ng/blob/develop/zlib.h.in
- %global zlib_ver 1.3.1
- # Obsoletes zlib versions less than.
- %global zlib_obsoletes 1.3
- # ABI files for ix86 and s390x are not available upstream.
- %global supported_abi_test aarch64 ppc64le x86_64
- Name: zlib-ng
- Summary: Zlib replacement with optimizations
- Summary(ja): 最適化されたZlib代替パッケージ
- Version: 2.1.7
- Release: 1%{?_dist_release}
- Group: system
- Vendor: Project Vine
- Distribution: Vine Linux
- License: Zlib
- Url: https://github.com/zlib-ng/zlib-ng
- Source0: https://github.com/zlib-ng/zlib-ng/archive/%{version}/%{name}-%{version}.tar.gz
- Source99: Changelog.fedora
- Patch: far.diff
- BuildRequires: cmake >= 3.1
- BuildRequires: gcc-c++
- BuildRequires: cmake(GTest) gmock
- %if %{with abitest}
- BuildRequires: libabigail
- %endif
- %global __provides_exclude_from ^%{_libdir}/pkgconfig/zlib\.pc$
- %description
- zlib-ng is a zlib replacement that provides optimizations for "next generation"
- systems.
- %package devel
- Summary: Development files for %{name}
- Group: programming
- Requires: %{name}%{?_isa} = %{version}-%{release}
- %description devel
- The %{name}-devel package contains libraries and header files for developing
- application that use %{name}.
- %if %{with compat}
- %package compat
- Summary: Zlib implementation provided by %{name}
- Group: system
- Provides: zlib = %{zlib_ver}
- Provides: zlib%{?_isa} = %{zlib_ver}
- Conflicts: zlib%{?_isa}
- Obsoletes: zlib < %{zlib_obsoletes}
- %description compat
- zlib-ng is a zlib replacement that provides optimizations for "next generation"
- systems.
- The %{name}-compat package contains the library that is API and binary
- compatible with zlib.
- %package compat-devel
- Summary: Development files for %{name}-compat
- Group: programming
- Requires: %{name}-compat%{?_isa} = %{version}-%{release}
- Provides: zlib-devel = %{zlib_ver}
- Provides: zlib-devel%{?_isa} = %{zlib_ver}
- Conflicts: zlib-devel%{?_isa}
- Obsoletes: zlib-devel < %{zlib_obsoletes}
- Provides: pkgconfig(zlib) = %{zlib_ver}.zlib-ng
- %description compat-devel
- The %{name}-compat-devel package contains libraries and header files for
- developing application that use zlib.
- %package compat-static
- Summary: Static libraries for %{name}-compat
- Group: programming
- Requires: %{name}-compat-devel%{?_isa} = %{version}-%{release}
- Provides: zlib-static = %{zlib_ver}
- Provides: zlib-static%{?_isa} = %{zlib_ver}
- Conflicts: zlib-static%{?_isa}
- Obsoletes: zlib-static < %{zlib_obsoletes}
- %description compat-static
- The %{name}-compat-static package contains static libraries needed for
- developing applications that use zlib.
- %package -n compat32-zlib-ng-compat
- Summary: Zlib replacement with optimizations (32bit)
- Summary(ja): 最適化されたZlib代替パッケージ (32bit)
- Group: system,legacy
- Requires: zlib-ng-compat = %{version}-%{release}
- Provides: compat32-zlib = %{zlib_ver}
- %description -n compat32-zlib-ng-compat
- This package contains 32bit version of zlib-ng-compat.
- %package -n compat32-zlib-ng-compat-devel
- Summary: Development files for %{name}-compat (32bit)
- Summary(ja): zlib-ng-compatを使ったプログラム開発に必要なヘッダファイル/ライブラリ (32bit)
- Group: programming,legacy
- Requires: zlib-ng-compat = %{version}-%{release}
- Requires: zlib-ng-compat-devel = %{version}-%{release}
- Provides: compat32-zlib-devel = %{zlib_ver}
- %description -n compat32-zlib-ng-compat-devel
- This package contains 32bit version of zlib-ng-compat-devel.
- %endif
- %debug_package
- %prep
- %autosetup -p1 -n %{name}-%{version}
- cp -f %{SOURCE99} ./
- %build
- cat <<_EOF_
- ###########################################################################
- #
- # Build the default zlib-ng library
- #
- ###########################################################################
- _EOF_
- # zlib-ng uses a different macro for library directory.
- %global cmake_param %{?with_sanitizers:-DWITH_SANITIZER=ON}
- # Setting __cmake_builddir is not necessary in this step, but do it anyway for symmetry.
- %global __cmake_builddir %{_vpath_builddir}
- %cmake %{cmake_param}
- %cmake_build
- %if %{with compat}
- cat <<_EOF_
- ###########################################################################
- #
- # Build the compat mode library
- #
- ###########################################################################
- _EOF_
- %global __cmake_builddir %{_vpath_builddir}-compat
- # defining BUILD_SHARED_LIBS disables the static library
- %undefine _cmake_shared_libs
- # Disable new strategies in order to keep compatibility with zlib.
- %cmake %{cmake_param} -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF
- %cmake_build
- %endif
- %check
- cat <<_EOF_
- ###########################################################################
- #
- # Run the zlib-ng tests
- #
- ###########################################################################
- _EOF_
- %global __cmake_builddir %{_vpath_builddir}
- %ctest
- %ifarch ppc64le
- # Workaround Copr, that sets _target_cpu to ppc64le.
- %global target_cpu powerpc64le
- %else
- %global target_cpu %{_target_cpu}
- %endif
- %ifarch x86_64
- %global vendor pc
- %else
- %global vendor unknown
- %endif
- %if %{with abitest}
- %ifarch %{supported_abi_test}
- CHOST=%{target_cpu}-%{vendor}-linux-gnu sh test/abicheck.sh
- %endif
- %endif
- %if %{with compat}
- cat <<_EOF_
- ###########################################################################
- #
- # Run the compat mode tests
- #
- ###########################################################################
- _EOF_
- %global __cmake_builddir %{_vpath_builddir}-compat
- %ctest
- %if %{with abitest}
- %ifarch %{supported_abi_test}
- CHOST=%{target_cpu}-%{vendor}-linux-gnu sh test/abicheck.sh --zlib-compat
- %endif
- %endif
- %endif
- %install
- %global __cmake_builddir %{_vpath_builddir}
- %cmake_install
- %if %{with compat}
- %global __cmake_builddir %{_vpath_builddir}-compat
- %cmake_install
- %endif
- %files
- %license LICENSE.md
- %doc README.md Changelog.fedora
- %{_libdir}/libz-ng.so.*
- %files devel
- %{_includedir}/zconf-ng.h
- %{_includedir}/zlib-ng.h
- %{_includedir}/zlib_name_mangling-ng.h
- %{_libdir}/libz-ng.so
- %{_libdir}/pkgconfig/%{name}.pc
- %{_libdir}/cmake/zlib-ng/*
- %if %{with compat}
- %files compat
- %{_libdir}/libz.so.*
- %files compat-devel
- %{_includedir}/zconf.h
- %{_includedir}/zlib.h
- %{_includedir}/zlib_name_mangling.h
- %{_libdir}/libz.so
- %{_libdir}/pkgconfig/zlib.pc
- %{_libdir}/cmake/ZLIB/*
- %files compat-static
- %{_libdir}/libz.a
- %if %{build_compat32}
- %files -n compat32-%{name}-compat
- %defattr(-,root,root)
- %{_libdir}/libz.so.*
- %files -n compat32-%{name}-compat-devel
- %defattr(-,root,root)
- %{_libdir}/libz.so
- %{_libdir}/pkgconfig/zlib.pc
- %{_libdir}/cmake/ZLIB/*
- %endif
- %endif
- %changelog
- * Wed Jun 26 2024 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 2.1.7-1
- - new upstream release.
- * Sun Jun 09 2024 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 2.1.6-4
- - added compat32-* packages.
- * Tue Apr 09 2024 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 2.1.6-3
- - initial build for Vine Linux.
|