File e_nss-Fedora_35.spec of Package e_nss
#
# spec file for e_nss package
#
# This is free software; see Copyright file in the source
# distribution for precise wording.
#
# Copyright (c) 2019-2025 Roumen Petrov
#
%global repository_build 1
# Do we want to enable engine module? (1=yes 0=no)
%global enable_engine 1
# Do we build privider module? (1=yes 0=no)
%global enable_module 1
# Do we want to enable DSA publickey algorithms? (1=yes 0=no)
%global enable_dsa 1
# Do we want to enable tests with DSA certificates (1=yes 0=no)
%global enable_dsa_test 1
%if 0%{?rhel} > 0 && 0%{?rhel_version} == 0
%global rhel_version %{rhel}00
%endif
# Disable non-working configurations
%if 0%{?fedora} >= 99
# Development builds - Rawhide ...
%endif
%if 0%{?rhel_version} < 900 && 0%{?rhel_version} > 0
%undefine enable_module
%global enable_module 0
%endif
%if 0%{?rhel_version} >= 1000
%undefine enable_engine
%global enable_engine 0
%endif
%if 0%{?fedora} < 39 && 0%{?fedora} > 0
%undefine enable_module
%global enable_module 0
%endif
%if 0%{?fedora} >= 41
%undefine enable_engine
%global enable_engine 0
%endif
%if !%{?enable_dsa}
%undefine enable_dsa_test
%global enable_dsa_test 0
%endif
# norootforbuild
Url: https://roumenpetrov.info/e_nss/
Name: e_nss
Summary: OpenSSL loadable modules for Mozilla's NSS(Network Security Services)
Version: testing
Release: 1
License: MIT
Group: Productivity/Security
Requires: openssl nspr nss
BuildRequires: openssl-devel nspr-devel nss-devel
BuildRequires: openssl nss-tools
%if %{repository_build}
BuildRequires: autoconf
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?rhel_version} > 0 && 0%{?rhel_version} < 600
Source0: https://roumenpetrov.info/e_nss/e_nss-%{version}.tar.gz
%else
Source0: https://roumenpetrov.info/e_nss/e_nss-%{version}.tar.xz
%endif
# Default values for additional components
%define openssl_enginesdir %{_libdir}/engines
%define openssl_modulesdir %{_libdir}/ossl-modules
%if 0%{?rhel_version} > 0
%define e_nss_docdir %{_docdir}/%{name}-%{version}
%else
%define e_nss_docdir %{_docdir}/%{name}
%endif
# autoconf before 2.60 does not support --docdir
%define use_docdir 1
%if 0%{?rhel_version} > 0 && 0%{?rhel_version} < 600
%undefine use_docdir
%define use_docdir 0
%endif
%description
Cryptographic module, either engine or provider, that use key and/or
certificates stored in Mozilla NSS(Network Security Services)
database to perform cryptographic operations.
Module support RSA, EC, and DSA(optionally) keys.
%changelog
# Not managed, please see source repository for changes.
%prep
%setup -q
%build
%if %{repository_build}
echo fedora: 0%{?fedora}
echo rhel_version: 0%{?rhel_version}
echo rhel: 0%{?rhel}
echo centos_version: 0%{?centos_version}
echo centos: 0%{?centos}
/bin/ls -l /usr/include/openssl/ || :
# RedHat 5 uses libtool version 1.5.22 while the package is distributed with version 2.4.6
rm -f m4/libtool.m4 m4/lt*.m4
libtoolize --force --install --copy
autoreconf -ifv
%configure --help
%endif
CPPFLAGS="$CPPFLAGS -I/usr/include/nspr4 -I/usr/include/nss3"
export CPPFLAGS
%configure \
%if %{use_docdir}
--docdir=%{e_nss_docdir} \
%endif
%if %{?enable_engine}
--enable-engine \
%else
--disable-engine \
%endif
--with-enginesdir=%{openssl_enginesdir} \
--with-modulesdir=%{openssl_modulesdir} \
%if %{?enable_dsa}
--enable-dsa \
%else
--disable-dsa \
%endif
%if %{?enable_dsa_test}
--enable-dsa-tests \
%else
--disable-dsa-tests \
%endif
--enable-tests
cat config.h
head -30 Makefile
make
%check
make check
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT/
%if %{?enable_engine}
rm $RPM_BUILD_ROOT/%{openssl_enginesdir}/*e_nss.la
%endif
%if %{?enable_module}
rm $RPM_BUILD_ROOT/%{openssl_modulesdir}/nss_prov.la
%endif
%if !%{use_docdir}
%if 0%{?rhel_version} > 0
mv $RPM_BUILD_ROOT/%{_docdir}/%{name} $RPM_BUILD_ROOT/%{_docdir}/%{name}-%{version}
%endif
%endif
%clean
rm -rf $RPM_BUILD_ROOT
%pre
%post
%files
%defattr(-,root,root)
%doc AUTHORS Copyright INSTALL README.adoc
%doc NOTES-provider.adoc
%if %{?enable_engine}
%dir %{openssl_enginesdir}
%attr(0755,root,root) %{openssl_enginesdir}/*e_nss.so
%endif
%if %{?enable_module}
%dir %{openssl_modulesdir}
%attr(0755,root,root) %{openssl_modulesdir}/nss_prov.so
%endif