# # spec file for package gmp # # Copyright (c) 2022-2023 ZhuningOS # Name: gmp Version: 6.1.2 Release: 4.9.1 Summary: The GNU MP Library License: GPL-3.0-or-later AND (LGPL-3.0-or-later OR GPL-2.0-or-later) Group: System/Libraries URL: https://gmplib.org/ Source0: https://gmplib.org/download/%{name}/%{name}-%{version}.tar.xz Source1: https://gmplib.org/download/%{name}/%{name}-%{version}.tar.xz.sig Source2: %{name}.keyring Source3: baselibs.conf Patch0: gmp-noexec.diff Patch1: gmp-6.1.2-conftest.patch Patch2: gmp-6.2.1-CVE-2021-43618.patch BuildRequires: fipscheck BuildRequires: gcc-c++ BuildRequires: m4 BuildRequires: xz %description A library for calculating huge numbers (integer and floating point). %package -n libgmp10 Summary: Shared library for the GNU MP Library License: LGPL-3.0-or-later OR GPL-2.0-or-later Group: System/Libraries %description -n libgmp10 A library for calculating huge numbers (integer and floating point). %package -n libgmpxx4 Summary: C++ bindings for the GNU MP Library License: LGPL-3.0-or-later OR GPL-2.0-or-later Group: System/Libraries Requires: libgmp10 >= %{version} %description -n libgmpxx4 A library for calculating huge numbers (integer and floating point). This package contains C++ bindings C++ bindings for the GNU MP Library. %package devel Summary: Include Files and Libraries for Development with the GNU MP Library Group: Development/Languages/C and C++ License: GPL-3.0-or-later AND (LGPL-3.0-or-later OR GPL-2.0-or-later) Requires: libgmp10 = %{version} Requires: libgmpxx4 = %{version} Requires(pre): %{install_info_prereq} Requires(preun): %{install_info_prereq} %description devel These libraries are needed to develop programs which calculate with huge numbers (integer and floating point). %prep %setup -q %patch0 %patch1 %patch2 -p1 %build export CFLAGS="%{optflags} -fexceptions" %configure \ --enable-cxx \ --enable-fat make %{?_smp_mflags} %check # do not disable "make check", FIX THE BUGS! make %{?_smp_mflags} check %install %make_install rm %{buildroot}%{_libdir}/libgmp.la rm %{buildroot}%{_libdir}/libgmpxx.la rm %{buildroot}%{_libdir}/libgmpxx.a # the hmac hashes: # # this is a hack that re-defines the __os_install_post macro # for a simple reason: the macro strips the binaries and thereby # invalidates a HMAC that may have been created earlier. # solution: create the hashes _after_ the macro runs. # # this shows up earlier because otherwise the %expand of # the macro is too late. # remark: This is the same as running # openssl dgst -sha256 -hmac 'orboDeJITITejsirpADONivirpUkvarP' %{expand:%%global __os_install_post {%__os_install_post %{_bindir}/fipshmac %{buildroot}%{_libdir}/libgmp.so.10 }} %post -n libgmp10 -p /sbin/ldconfig %post -n libgmpxx4 -p /sbin/ldconfig %postun -n libgmp10 -p /sbin/ldconfig %postun -n libgmpxx4 -p /sbin/ldconfig %post devel %install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info} %preun devel %install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info} %files -n libgmp10 %license COPYING* %{_libdir}/libgmp.so.10* %{_libdir}/.libgmp.so.10.hmac %files -n libgmpxx4 %{_libdir}/libgmpxx.so.4* %files devel %doc AUTHORS README NEWS %doc demos %{_infodir}/gmp.info*%{ext_info} %{_libdir}/libgmp.a %{_libdir}/libgmp.so %{_libdir}/libgmpxx.so %{_includedir}/gmp.h %{_includedir}/gmpxx.h %changelog