Initialize for gmp

This commit is contained in:
zyppe 2024-02-11 18:07:50 +08:00
commit 7ad8a5bea0
10 changed files with 2085 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
gmp-6.1.2.tar.xz

1
.gmp.metadata Normal file
View file

@ -0,0 +1 @@
0b5a8965f93890e2a358e67f6a73e894ee5892ec135d08293e1811e3829b8084 gmp-6.1.2.tar.xz

7
baselibs.conf Normal file
View file

@ -0,0 +1,7 @@
libgmp10
obsoletes "gmp-<targettype>"
libgmpxx4
gmp-devel
requires -gmp-<targettype>
requires "libgmp10-<targettype> = <version>"
requires "libgmpxx4-<targettype> = <version>"

31
gmp-6.1.2-conftest.patch Normal file
View file

@ -0,0 +1,31 @@
--- acinclude.m4.orig 2017-01-04 11:40:34.672561902 +0100
+++ acinclude.m4 2017-01-04 11:40:42.324648573 +0100
@@ -741,7 +741,7 @@
long i;
for (i = 0; i < 88 + 1; i++)
a[i] = ~0L;
- r = malloc (10000 * sizeof (unsigned long));
+ r = calloc (10000, sizeof (unsigned long));
r2 = r;
for (i = 0; i < 528; i += 23)
{
--- configure.orig 2017-01-04 11:42:54.678147652 +0100
+++ configure 2017-01-04 11:46:36.468659624 +0100
@@ -6776,7 +6776,7 @@
long i;
for (i = 0; i < 88 + 1; i++)
a[i] = ~0L;
- r = malloc (10000 * sizeof (unsigned long));
+ r = calloc (10000, sizeof (unsigned long));
r2 = r;
for (i = 0; i < 528; i += 23)
{
@@ -8394,7 +8394,7 @@
long i;
for (i = 0; i < 88 + 1; i++)
a[i] = ~0L;
- r = malloc (10000 * sizeof (unsigned long));
+ r = calloc (10000, sizeof (unsigned long));
r2 = r;
for (i = 0; i < 528; i += 23)
{

BIN
gmp-6.1.2.tar.xz.sig Normal file

Binary file not shown.

View file

@ -0,0 +1,25 @@
# HG changeset patch
# User Marco Bodrato <bodrato@mail.dm.unipi.it>
# Date 1634836009 -7200
# Node ID 561a9c25298e17bb01896801ff353546c6923dbd
# Parent e1fd9db13b475209a864577237ea4b9105b3e96e
mpz/inp_raw.c: Avoid bit size overflows
diff -r e1fd9db13b47 -r 561a9c25298e mpz/inp_raw.c
--- a/mpz/inp_raw.c Tue Dec 22 23:49:51 2020 +0100
+++ b/mpz/inp_raw.c Thu Oct 21 19:06:49 2021 +0200
@@ -88,8 +88,11 @@
abs_csize = ABS (csize);
+ if (UNLIKELY (abs_csize > ~(mp_bitcnt_t) 0 / 8))
+ return 0; /* Bit size overflows */
+
/* round up to a multiple of limbs */
- abs_xsize = BITS_TO_LIMBS (abs_csize*8);
+ abs_xsize = BITS_TO_LIMBS ((mp_bitcnt_t) abs_csize * 8);
if (abs_xsize != 0)
{

13
gmp-noexec.diff Normal file
View file

@ -0,0 +1,13 @@
Index: mpn/m4-ccas
===================================================================
--- mpn/m4-ccas.orig
+++ mpn/m4-ccas
@@ -100,6 +100,8 @@ fi
echo "$M4 $DEFS $ASM >$TMP"
$M4 $DEFS $ASM >$TMP || exit
+echo '.section .note.GNU-stack,"",%progbits' >> $TMP
+
echo "$CC"
$CC || exit

381
gmp.changes Normal file
View file

@ -0,0 +1,381 @@
* Tue Nov 16 2021 rguenther@suse.com
- Add gmp-6.2.1-CVE-2021-43618.patch to fix buffer overflow on
malformed input to mpz_inp_raw. [bsc#1192717, CVE-2021-43618]
* Fri Jan 29 2021 meissner@suse.com
- adjusted to be the same license as in factory (bsc#1180603)
* Tue May 26 2020 coolo@suse.com
- correct license statement (library itself is no GPL-3.0)
* Tue Oct 1 2019 vcizek@suse.com
- Install checksums for binary integrity verification which are
required when running in FIPS mode (bsc#1152692, jsc#SLE-9518)
- Run spec-cleaner on the spec
* Thu Feb 22 2018 fvogt@suse.com
- Use %%license (boo#1082318)
* Thu Feb 9 2017 dimstar@opensuse.org
- Explicitly BuildRequire m4
* Wed Jan 4 2017 rguenther@suse.com
- Update to GMP 6.1.2 release.
* Mini-GMP: Fixed a division bug, which on a machine with 64-bit
unsigned long affects approximately 1 out of 2^32 divisors.
* Mini-GMP: Fix mpz_set_str crash on inputs with a large number of
leading zeros. Also stricter input validation, rejecting inputs
with no digits.
* Handle more systems which require PIC code in static libraries (e.g.,
"hardened" Gentoo and Debian 9).
* Configuration for arm (-32 and -64) has been rewritten, fixing poor
code selection for many CPUs.
* Mini-GMP: Updated to the latest development version, including
new functions mpn_com and mpn_neg.
- Add gmp-6.1.2-conftest.patch to fix configure test.
* Thu Jun 30 2016 mpluskal@suse.com
- Use macro for configure (as bsc#870358) is already fixed
- Use xz compressed archives
- Update info pages dependencies
* Thu Jun 23 2016 astieger@suse.com
- gmp 6.1.1:
* Work around faulty cpuid on some recent Intel chips (this
allows GMP to run on Skylake Pentiums).
* Mon Nov 2 2015 rguenther@suse.com
- Update to GMP 6.1.0 release.
* New C++ functions gcd and lcm for mpz_class
* New public mpn functions mpn_divexact_1, mpn_zero_p, and mpn_cnd_swap
* New public mpq_cmp_z function, to efficiently compare rationals with
integers
* Support for more 32-bit arm processors
* Support for AVX-less modern x86 CPUs
* Speedups and bugfixes
- Includes gmp-6.0.0-ppc64-gcd.diff, now removed
- Update gmp keyring
* Tue Feb 24 2015 mpluskal@suse.com
- Remove old ppc related conditionals
* Tue Feb 24 2015 mpluskal@suse.com
- Cleanup spec file with spec-cleaner
- Refresh sources
- Add gpg signature
- Correct version number so that it matches actuall version
* Mon Nov 17 2014 schwab@suse.de
- Make gmp-noexec.diff compatible with arm
- Use correct version number
* Fri Nov 7 2014 afaerber@suse.de
- Fix tarball directory name to unbreak build
* Wed Mar 26 2014 rguenther@suse.com
- Update to GMP 6.0.0 release.
* includes powerpc64le support and obsoletes
gmp-support-powerpc64le-linux.patch and gmp-ppc64le-mod.patch
* The function mpz_invert now considers any number invertible in Z/1Z
* The mpn multiply code now handles operands of more than 2^31 limbs
correctly
* Plain division of large operands is faster and more monotonous in
operand size
* Major speedup for ARM, in particular ARM Cortex-A15, thanks to improved
assembly.
* Speedup for Intel Sandy Bridge, Ivy Bridge, Haswell, thanks to rewritten
and vastly expanded assembly support. Speedup also for the older Core 2
and Nehalem.
* Faster mixed arithmetic between mpq_class and double.
* With g++, optimise more operations when one argument is a simple
constant.
* Support for ARM64 alias Aarch64 alias ARMv8.
* New public functions mpn_sec_mul and mpn_sec_sqr, implementing
side-channel
silent multiplication and squaring.
* New public functions mpn_sec_div_qr and mpn_sec_div_r, implementing
side-channel silent division.
* New public functions mpn_cnd_add_n and mpn_cnd_sub_n. Side-channel
silent conditional addition and subtraction.
* New public function mpn_sec_powm, implementing side-channel silent
modexp.
* New public function mpn_sec_invert, implementing side-channel silent
modular inversion.
* Better support for applications which use the mpz_t type, but
nevertheless need to call some of the lower-level mpn functions. See
the documentation for mpz_limbs_read and related functions.
- gmp-6.0.0-ppc64-gcd.diff: Fix build on ppc64 and ppc64le
- Fix build on SLE11 by not using %%configure
* Wed Dec 4 2013 anton@samba.org
- gmp-support-powerpc64le-linux.patch: Add ppc64le ABIv2 support
- gmp-ppc64le-mod.patch: Fix ppc64le issues
* Wed Oct 2 2013 rguenther@suse.com
- Update to GMP 5.1.3 release.
* The internal functions mpn_sbpi1_div_qr_sec mpn_sbpi1_div_r_sec could
compute garbage with a low probability. They are now rewritten, and the
test code has been improved.
* A bug in the ia64 implementation of mpn_divrem_2, clobbering some
callee-save registers, has been fixed. This is an internal
function, with the bug manifesting itself as miscomputation in,
e.g., mpn_sqrtrem.
* The documentation now correctly says 'const' for input arguments.
* Wed May 22 2013 rguenther@suse.com
- Update to GMP 5.1.2 release.
* A bug in mpz_powm_ui triggered by base arguments of at least 15000
decimal digits or mod arguments of at least 7500 decimal digits has
been fixed.
* Wed Mar 27 2013 mmeister@suse.com
- Added url as source.
Please see http://en.opensuse.org/SourceUrls
* Wed Feb 20 2013 schwab@suse.de
- Update baselibs.conf for removal of libmp3
* Wed Feb 13 2013 rguenther@suse.com
- Update to GMP 5.1.1 release.
* Aarch64 alias ARM64 support now works.
* A possible buffer overrun in mpz_ior has been fixed.
* A rare sign flip in mpz_remove has been fixed.
* A bug causing problems with mpf numbers with absolute value >= 2^31 has
been fixed.
* Several bugs in mini-gmp have been fixed.
* Preliminary support for the x32 ABI under x86-64.
* Wed Dec 19 2012 rguenther@suse.com
- Update to GMP 5.1.0 release.
* Bug fixes and speedups
* Many new CPUs recognised
* New functions for multi-factorials, and primorial: mpz_2fac_ui,
mpz_mfac_uiui and mpz_primorial_ui
* The fat binary mechanism is now more robust in its CPU recognition
* Drops support for BSD compatibility library
* Thu Sep 13 2012 coolo@suse.com
- replace ; with and in license tag
* Wed Jul 4 2012 rguenther@suse.com
- Pick fix for the aborts from CPU detection code from the upstream
branch. [bnc#671262]
* Tue Jul 3 2012 bwiedemann@suse.com
- do not abort on kvm's x86_64 "CPU" on AMD (bnc#671262)
* Tue May 29 2012 coolo@suse.com
- do not abort on kvm's x86_64 "CPU", just use generic support for
unknown CPUs
* Mon May 7 2012 rguenther@suse.com
- Update to release GMP 5.0.5
* A bug causing AMD 11h processors to be treated like AMD 10h has been fixed.
* A bug affecting recent Intel Sandy Bridge CPUs resulting in
configuration failures has been fixed.
* Wed Feb 15 2012 rguenther@suse.com
- Remove redundant --host specification on %%configure.
* Fri Feb 10 2012 rguenther@suse.com
- Update to release GMP 5.0.4
* Thresholds in mpn_powm_sec for both fat and non-fat builds are now used
safely, plugging a one-word buffer overrun introduced in the 5.0.3 release
(for non-fat) and a multi-word buffer overrun that existed since 5.0 (for
fat). (We have not been able to provoke malign stack smashing in any of
the ~100 configurations explored by the GMP nightly builds, but the bug
should be assumed to be exploitable.)
* Two bugs in multiplication code causing incorrect computation with
extremely low probability have been fixed.
* A bug in the test suite causing buffer overruns during "make check",
sometimes leading to subsequent malloc crashes, has been fixed.
* Two bugs in the gcd code have been fixed. They could lead to incorrect
results, but for uniformly distributed random operands, the likelihood for
that is infinitesimally small. (There was also a third bug, but that was
an incorrect ASSERT, which furthermore was not enabled by default.)
* A bug affecting 32-bit PowerPC division has been fixed. The bug caused
miscomputation for certain divisors in the range 2^32 ... 2^64-1 (about 1
in 2^30 of these).
* Sat Feb 4 2012 jengelh@medozas.de
- Remove redundant tags/sections (see specfile guidelines)
* Mon Jan 30 2012 rguenther@suse.com
- Update to release GMP 5.0.3
* A slight timing leak of the powm_sec functions have been sealed. (This
leak could possibly be used to extract the most significant few bits of the
exponent. "Few" here means at most 10.)
* The mpz_nextprime function now runs a safer number of pseudo-random prime
tests.
* A bug in division code possibly causing incorrect computation was fixed.
* New CPUs recognised.
* IBM S/390 are now supported in both 31/32-bit and 64-bit mode.
- Dropped SUSE local patches for S/390 support.
* Tue Sep 27 2011 dmueller@suse.de
- avoid noexec stack patch on arm
* Mon Jun 20 2011 idonmez@novell.com
- Update to release GMP 5.0.2
* Many minor bugs related to portability fixed.
* The support for HPPA 2.0N now works, after an assembly bug fix.
* A test case type error has been fixed. The symptom of this bug
was spurious 'make check' failures.
* Fat builds are now supported for 64-bit x86 processors also under Darwin.
- Remove unknown configure option --disable-mpfr
* Mon Apr 18 2011 ro@suse.de
- remove outdated entries from baselibs.conf
* Tue Jan 25 2011 rguenther@novell.com
- Drop bogus provides/obsoletes of ABI incompatible gmp version.
* Mon Sep 13 2010 rguenther@novell.com
- Package BSB libmp bindings. [bnc#623910]
* Mon Sep 6 2010 rguenther@novell.com
- Update to release GMP 5.0.1.
* Major performance and memory usage improvements.
* Enable fat binaries on x86.
* Bump SO version to 10.
* Mon Jun 28 2010 jengelh@medozas.de
- use %%_smp_mflags
* Mon Jan 11 2010 rguenther@suse.de
- Update to bugfix release GMP 4.3.2.
* Fixed bug in mpf_eq.
* Fixed overflow issues in mpz_set_str, mpz_inp_str, mpf_set_str, and
mpf_get_str.
* Avoid unbounded stack allocation for unbalanced multiplication.
* Fixed bug in FFT multiplication.
* Fri Dec 11 2009 jengelh@medozas.de
- add baselibs.conf to specfile as source
* Mon Dec 7 2009 jengelh@medozas.de
- Fix building on SPARC. When rpmbuild is called with
- -target=sparcv9, %%%%_target_platform takes on the value
"sparcv9-suse-linux", but this does not fly for gmp, it requires
"sparc-suse-linux". This is similar to what binutils.spec does.
* Tue Nov 17 2009 rguenther@suse.de
- Fix obsoletes of old gmp package.
* Tue May 12 2009 rguenther@suse.de
- Update to bugfix release GMP 4.3.1.
* Fixed bug in mpn_gcdext, affecting also mpz_gcdext and mpz_invert.
* Fixed some minor documentation issues.
* Recognise more IBM "POWER" processor variants.
* Sat May 9 2009 rguenther@suse.de
- Fix baselibs.conf wrt package split. [bnc#501465]
* Wed Apr 15 2009 rguenther@suse.de
- Update to version 4.3.0.
* Speedups all over the board
* Fat binaries on x86_64
- Split shared libraries according to policy.
* Wed Dec 10 2008 olh@suse.de
- use Obsoletes: -XXbit only for ppc64 to help solver during distupgrade
(bnc#437293)
* Mon Nov 24 2008 olh@suse.de
- obsolete old -XXbit packages (bnc#437293)
* Mon Aug 4 2008 rguenther@suse.de
- Update to version 4.2.3.
* minor bugfixes
- Remove no longer applicable patches.
* Thu Apr 10 2008 ro@suse.de
- added baselibs.conf file to build xxbit packages
for multilib support
* Thu Jan 3 2008 rguenther@suse.de
- Fix std::FILE usage for C++ again.
- Move info postin to the correct sub-package.
* Wed Dec 12 2007 rguenther@suse.de
- Update to 4.2.2, which is now LGPLv3.
- Remove no longer applicable patches.
- Disable building of berkley MP compatibility library.
- Run testsuite only once.
- Do not package libtool .la files.
- Do not package static C++ binding library.
- Do not package CVS changelog.
* Tue May 22 2007 rguenther@suse.de
- Fix inline behavior for C99.
* Sat Jan 13 2007 meissner@suse.de
- Mark assembler code as not needing exec stack/heap by hacking
the m4 -> assembler wrapper script.
- Run "make check", as mandated by our packaging guidelines.
* Fri Oct 13 2006 aj@suse.de
- Fix build on x86-64.
* Fri Oct 13 2006 mjancar@suse.cz
- update to 4.2.1
* many bugfixes
* Mon May 15 2006 rguenther@suse.de
- Disable mpfr, which is now in new packages mpfr and mpfr-devel.
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Fri Jan 13 2006 kukuk@suse.de
- Create -devel subpackage
* Tue Oct 11 2005 meissner@suse.de
- fixed broken random2 code using patch from Richard Guenther.
* Sun Sep 18 2005 meissner@suse.de
- Fixed implicits.
* Wed Apr 13 2005 matz@suse.de
- Make it build on i386
* Sat Apr 9 2005 ro@suse.de
- skip testsuite on alpha
* Wed Feb 16 2005 mcihar@suse.cz
- update to 4.1.4
* Thu Nov 18 2004 ro@suse.de
- fixed file list
* Sun Sep 5 2004 schwab@suse.de
- Use autoreconf.
- Fix read-only section check.
* Tue Aug 10 2004 tcrhak@suse.cz
- update to 4.1.3
* Tue Mar 2 2004 tcrhak@suse.cz
- libtoolize, but preserve gmp wrappers for config.sub and config.guess
* Mon Mar 1 2004 meissner@suse.de
- make work on ppc64 again.
- libtoolize to add .so. suffixes on amd64 and ia64 again.
* Mon Mar 1 2004 tcrhak@suse.cz
- fixed bug #33857:
* applied some patches for 4.1.2
* use gmp's own config.sub (fixes the configure problem)
* added configure option --enable-cxx
* Fri Feb 27 2004 ro@suse.de
- try to fix build with regparm changes
* Sat Jan 10 2004 schwab@suse.de
- Fix quoting in autoconf macros.
* Fri Dec 5 2003 kukuk@suse.de
- Fix compiling on s390(x)
* Fri Nov 28 2003 schwab@suse.de
- Workaround gas bug causing invalid unwind information.
- Fix aliasing bug in testsuite.
* Wed Oct 15 2003 ro@suse.de
- use jobs macro instead of -jsomething
* Wed Oct 15 2003 adrian@suse.de
- fix build for mips
- build as non-root
* Sun Sep 14 2003 aj@suse.de
- Enable mpfr library.
* Thu Apr 24 2003 ro@suse.de
- fix install_info --delete call and move from preun to postun
* Wed Feb 12 2003 mmj@suse.de
- Add %%install_info macros [#23415]
* Wed Jan 15 2003 tcrhak@suse.cz
- update to version 4.1.2
* Wed Nov 20 2002 schwab@suse.de
- Work around automake bugs.
* Wed Sep 25 2002 uli@suse.de
- x86-64: compile mpf/cmp_si.c with -fno-cse-follow-jumps to work
around compiler bug
* Tue Sep 17 2002 ro@suse.de
- removed bogus self-provides
* Tue Jun 11 2002 meissner@suse.de
- Disabled all ppc64 assembler functions for now, reenabled make check.
* Mon Jun 10 2002 olh@suse.de
- add some basic support for ppc64, disable make check
* Wed May 22 2002 coolo@suse.de
- adding support for s390x
* Mon May 6 2002 schwab@suse.de
- Fix last change.
* Mon May 6 2002 meissner@suse.de
- varargs fixes. You cannot just cast functions pointers between
non-varargs and varargs functions, this _will_ fail on x86_64.
* Fri Jan 18 2002 tcrhak@suse.cz
- used macros %%{_lib} and %%{_libdir}
* Fri Dec 14 2001 tcrhak@suse.cz
- update to version 4.0
* Wed Aug 1 2001 dan@suse.cz
- use bzip instead of gzip
* Wed Jun 13 2001 bk@suse.de
- Add support for s390x and update s390 support
* Mon May 28 2001 pblaha@suse.cz
- fix include on ia64
* Wed Nov 15 2000 pblaha@suse.cz
- update to 3.1.1
* Tue Oct 10 2000 schwab@suse.de
- Fix umul_ppm for ia64.
* Wed Jun 7 2000 schwab@suse.de
- Recover ia64 support.
- Match "linux*" instead of "linux-gnu*".
* Wed May 31 2000 smid@suse.cz
- upgrade to 3.0.1
* Mon May 15 2000 schwab@suse.de
- Add basic support for ia64.
* Fri Apr 14 2000 smid@suse.cz
- buildroot added
* Fri Apr 7 2000 bk@suse.de
- added suse config update macro
* Thu Feb 10 2000 kukuk@suse.de
- Move /usr/info -> /usr/share/info
* Tue Dec 14 1999 kukuk@suse.de
- Create shared libraries (BUG#1508)
- Build libmp, too
- Add a lot of patches
* Mon Sep 13 1999 bs@suse.de
- ran old prepare_spec on spec file to switch to new prepare_spec.
* Fri Sep 3 1999 uli@suse.de
- added patch for PPC
* Wed Sep 1 1999 kukuk@suse.de
- Specfile cleanup
- Run make check
* Thu Jan 2 1997 florian@suse.de
- update to version 2.0.2

1497
gmp.keyring Normal file

File diff suppressed because it is too large Load diff

129
gmp.spec Normal file
View file

@ -0,0 +1,129 @@
#
# 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