nettle/nettle.spec

212 lines
5.8 KiB
RPMSpec
Raw Normal View History

# Recent so-version, so we do not bump accidentally.
2020-05-04 06:28:50 +00:00
%global nettle_so_ver 8
%global hogweed_so_ver 6
# Set to 1 when building a bootstrap for a bumped so-name.
2021-01-11 14:28:12 +00:00
%global bootstrap 0
%if 0%{?bootstrap}
2020-05-04 06:28:50 +00:00
%global version_old 3.5.1
%global nettle_so_ver_old 7
%global hogweed_so_ver_old 5
%endif
# RHEL 9 and later include nettle in the gnutls module boundary,
# and HMAC is calculated there with its own tool.
%if %{defined rhel} && 0%{?rhel} < 9
%bcond_without fips
%endif
2012-06-18 11:00:41 +00:00
Name: nettle
Version: 3.9.1
Release: %{?autorelease}%{!?autorelease:1%{?dist}}
2012-06-18 11:00:41 +00:00
Summary: A low-level cryptographic library
License: LGPL-3.0-or-later OR GPL-2.0-or-later
2012-06-18 11:00:41 +00:00
URL: http://www.lysator.liu.se/~nisse/nettle/
2016-02-03 10:36:28 +00:00
Source0: %{name}-%{version}-hobbled.tar.xz
2022-06-03 08:24:40 +00:00
#Source0: http://www.lysator.liu.se/~nisse/archive/%%{name}-%%{version}.tar.gz
%if 0%{?bootstrap}
Source1: %{name}-%{version_old}-hobbled.tar.xz
2020-05-04 06:28:50 +00:00
Source2: nettle-3.5-remove-ecc-testsuite.patch
%endif
Patch: nettle-3.8-zeroize-stack.patch
Source100: gmp-6.2.1.tar.xz
# Taken from the main gmp package
Source101: gmp-6.2.1-intel-cet.patch
Source102: gmp-6.2.1-zeroize-allocator.patch
2012-06-18 11:00:41 +00:00
BuildRequires: make
2018-07-23 12:33:43 +00:00
BuildRequires: gcc
%if !%{with fips}
BuildRequires: gmp-devel
%endif
BuildRequires: m4
BuildRequires: libtool, automake, autoconf, gettext-devel
%if %{with fips}
2018-07-23 12:33:43 +00:00
BuildRequires: fipscheck
%endif
2012-06-18 11:00:41 +00:00
%package devel
Summary: Development headers for a low-level cryptographic library
Requires: %{name} = %{version}-%{release}
2013-02-06 12:34:06 +00:00
Requires: gmp-devel%{?_isa}
2012-06-18 11:00:41 +00:00
%description
Nettle is a cryptographic library that is designed to fit easily in more
or less any context: In crypto toolkits for object-oriented languages
(C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in
kernel space.
%description devel
Nettle is a cryptographic library that is designed to fit easily in more
or less any context: In crypto toolkits for object-oriented languages
(C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in
2013-11-26 10:15:26 +00:00
kernel space. This package contains the files needed for developing
applications with nettle.
2012-06-18 11:00:41 +00:00
%prep
2020-05-04 06:35:05 +00:00
%autosetup -Tb 0 -p1
%if %{with fips}
mkdir -p bundled_gmp
pushd bundled_gmp
tar --strip-components=1 -xf %{SOURCE100}
patch -p1 < %{SOURCE101}
patch -p1 < %{SOURCE102}
popd
# Prevent -lgmp appearing in the compiler command line in dependent components
sed -i '/^Libs.private:/d' hogweed.pc.in
%endif
%if 0%{?bootstrap}
mkdir -p bootstrap_ver
pushd bootstrap_ver
tar --strip-components=1 -xf %{SOURCE1}
patch -p1 < %{SOURCE2}
# Disable -ggdb3 which makes debugedit unhappy
sed s/ggdb3/g/ -i configure
2020-05-04 06:52:43 +00:00
sed 's/ecc-192.c//g' -i Makefile.in
sed 's/ecc-224.c//g' -i Makefile.in
popd
%endif
2012-06-18 11:00:41 +00:00
# Disable -ggdb3 which makes debugedit unhappy
sed s/ggdb3/g/ -i configure
2020-05-04 06:28:50 +00:00
sed 's/ecc-secp192r1.c//g' -i Makefile.in
sed 's/ecc-secp224r1.c//g' -i Makefile.in
2012-06-18 11:00:41 +00:00
%build
%if %{with fips}
pushd bundled_gmp
autoreconf -ifv
%configure --disable-cxx --disable-shared --enable-fat --with-pic
%make_build
popd
%endif
autoreconf -ifv
# For annocheck
export ASM_FLAGS="-Wa,--generate-missing-build-notes=yes"
%configure --enable-shared --enable-fat \
%if %{with fips}
--with-include-path=$PWD/bundled_gmp --with-lib-path=$PWD/bundled_gmp/.libs \
%endif
%{nil}
%make_build
2012-06-18 11:00:41 +00:00
%if 0%{?bootstrap}
pushd bootstrap_ver
autoconf
%configure --with-tests
%make_build
popd
%endif
%if %{with fips}
2019-07-16 08:43:37 +00:00
%define fipshmac() \
fipshmac -d $RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_libdir}/%1.* \
file=`basename $RPM_BUILD_ROOT%{_libdir}/%1.*.hmac` && \
mv $RPM_BUILD_ROOT%{_libdir}/$file $RPM_BUILD_ROOT%{_libdir}/.$file && \
ln -s .$file $RPM_BUILD_ROOT%{_libdir}/.%1.hmac
%if 0%{?bootstrap}
%define bootstrap_fips 1
%endif
%define __spec_install_post \
%{?__debug_package:%{__debug_install_post}} \
%{__arch_install_post} \
%{__os_install_post} \
2019-07-16 08:43:37 +00:00
%fipshmac libnettle.so.%{nettle_so_ver} \
%fipshmac libhogweed.so.%{hogweed_so_ver} \
%{?bootstrap_fips:%fipshmac libnettle.so.%{nettle_so_ver_old}} \
%{?bootstrap_fips:%fipshmac libhogweed.so.%{hogweed_so_ver_old}} \
%{nil}
%endif
2012-06-18 11:00:41 +00:00
2012-06-18 11:00:41 +00:00
%install
%if 0%{?bootstrap}
make -C bootstrap_ver install-shared-nettle DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
make -C bootstrap_ver install-shared-hogweed DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
chmod 0755 $RPM_BUILD_ROOT%{_libdir}/libnettle.so.%{nettle_so_ver_old}.*
chmod 0755 $RPM_BUILD_ROOT%{_libdir}/libhogweed.so.%{hogweed_so_ver_old}.*
%endif
%make_install
2012-06-18 11:00:41 +00:00
make install-shared DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
mkdir -p $RPM_BUILD_ROOT%{_infodir}
install -p -m 644 nettle.info $RPM_BUILD_ROOT%{_infodir}/
rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
rm -f $RPM_BUILD_ROOT%{_bindir}/nettle-lfib-stream
rm -f $RPM_BUILD_ROOT%{_bindir}/pkcs1-conv
rm -f $RPM_BUILD_ROOT%{_bindir}/sexp-conv
rm -f $RPM_BUILD_ROOT%{_bindir}/nettle-hash
rm -f $RPM_BUILD_ROOT%{_bindir}/nettle-pbkdf2
chmod 0755 $RPM_BUILD_ROOT%{_libdir}/libnettle.so.%{nettle_so_ver}.*
chmod 0755 $RPM_BUILD_ROOT%{_libdir}/libhogweed.so.%{hogweed_so_ver}.*
2012-06-18 11:00:41 +00:00
%check
make check
%files
2019-07-15 10:43:16 +00:00
%doc AUTHORS NEWS README
2015-04-30 09:56:29 +00:00
%license COPYINGv2 COPYING.LESSERv3
%{_infodir}/nettle.info.*
%{_libdir}/libnettle.so.%{nettle_so_ver}
%{_libdir}/libnettle.so.%{nettle_so_ver}.*
%{_libdir}/libhogweed.so.%{hogweed_so_ver}
%{_libdir}/libhogweed.so.%{hogweed_so_ver}.*
%if 0%{?bootstrap}
%{_libdir}/libnettle.so.%{nettle_so_ver_old}
%{_libdir}/libnettle.so.%{nettle_so_ver_old}.*
%{_libdir}/libhogweed.so.%{hogweed_so_ver_old}
%{_libdir}/libhogweed.so.%{hogweed_so_ver_old}.*
%endif
%if %{with fips}
%{_libdir}/.libhogweed.so.*.hmac
%{_libdir}/.libnettle.so.*.hmac
%endif
2012-06-18 11:00:41 +00:00
%files devel
2015-04-30 09:56:29 +00:00
%doc descore.README nettle.html nettle.pdf
2012-06-18 11:00:41 +00:00
%{_includedir}/nettle
%{_libdir}/libnettle.so
%{_libdir}/libhogweed.so
%{_libdir}/pkgconfig/hogweed.pc
%{_libdir}/pkgconfig/nettle.pc
%ldconfig_scriptlets
2012-06-18 11:00:41 +00:00
%changelog
%autochangelog