File e_nss.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) 2011-2025 Roumen Petrov
#

%global repository_build 1

# Do we build provider module? (1=yes 0=no)
%global enable_module 1

# Do we want to enable engine module? (1=yes 0=no)
%global enable_engine 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


# Disable non-working configurations

%if 0%{?suse_version} >= 1699
# Development builds - Tumbleweed ...
%endif

%if 0%{?sle_version} < 150600 && 0%{?sle_version} > 0
%undefine enable_module
%global enable_module 0
%endif

%if 0%{?sle_version} == 0 && 0%{?suse_version} < 1400
# SUSE Linux x - 10.1: suse_version <= 1010
# openSUSE 10.2 - 13.2: suse_version 1020 - 1320
# openSUSE Leap 42.x: suse_version 1315
%undefine enable_module
%global enable_module 0
%endif

%if 0%{?sles_version} == 11
# Note SLE 11 define sles_version but not sle_version.
%undefine enable_module
%global enable_module 0
%endif

%if 0%{?sles_version} == 11
# Creation of DSA certificate failed on SLE 11-SP4(openssl-0.9.8j-0.70.1),
# but pass of SLE 11-SP3(openssl-0.9.8j-0.50.1). Since there is no build
# macro to differentiate between them, let's exclude DSA tests on SLE 11.
%undefine enable_dsa_test
%global enable_dsa_test 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:	libopenssl mozilla-nspr mozilla-nss

BuildRequires:	libopenssl-devel mozilla-nspr-devel mozilla-nss-devel
BuildRequires:	openssl mozilla-nss-tools
%if %{repository_build}
BuildRequires:	autoconf automake libtool
%endif
BuildRoot:	%{_tmppath}/%{name}-%{version}-build

%if 0%{?sle_version} >= 120000
Source0:	https://roumenpetrov.info/e_nss/e_nss-%{version}.tar.xz
%else
Source0:	https://roumenpetrov.info/e_nss/e_nss-%{version}.tar.gz
%endif


# Default values for additional components

%define openssl_modulesdir	%{_libdir}/ossl-modules

%if 0%{?sle_version} >= 0150600
%define openssl_enginesdir	%{_libdir}/engines-3
%endif
%if 0%{?sle_version} >= 0150000 && 0%{?sle_version} < 0150600
%define openssl_enginesdir	%{_libdir}/engines-1.1
%endif
%if 0%{?sle_version} < 0150000
%define openssl_enginesdir	%{_libdir}/engines
%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 suse_version: 0%{?suse_version}
echo sle_version: 0%{?sle_version}
echo is_opensuse: 0%{?is_opensuse}
echo sles_version: 0%{?sles_version}

/bin/ls -l /usr/include/openssl/ || :

autoreconf -ifv
%configure --help
%endif

CPPFLAGS="$CPPFLAGS -DENABLE_CALL_TRACE"
CPPFLAGS="$CPPFLAGS -I/usr/include/nspr4 -I/usr/include/nss3"
export CPPFLAGS
%configure \
  --docdir=%{_docdir}/%{name} \
  --with-modulesdir=%{openssl_modulesdir} \
  --with-enginesdir=%{openssl_enginesdir} \
%if %{?enable_engine}
  --enable-engine \
%else
  --disable-engine \
%endif
%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 || :
ALGO=ec2
DIGEST=sha384
echo "cat dgst3-$ALGO-$DIGEST-sign ..."
cat tests/module/dgst3-$ALGO-$DIGEST-sign.out
cat tests/module/dgst3-$ALGO-$DIGEST-sign.err
echo "cat dgst3-$ALGO-$DIGEST-vrfy ..."
cat tests/module/dgst3-$ALGO-$DIGEST-vrfy.out
cat tests/module/dgst3-$ALGO-$DIGEST-vrfy.err


%install
make install DESTDIR=%{buildroot}
%if %{?enable_module}
rm %{buildroot}/%{openssl_modulesdir}/nss_prov.la
%endif
%if %{?enable_engine}
rm %{buildroot}/%{openssl_enginesdir}/*e_nss.la
%endif


#obsolete#%clean


%pre


%post


%files
%defattr(-,root,root)
%if 0%{?suse_version} >= 1500
%license Copyright
%endif
%doc AUTHORS Copyright INSTALL README.adoc
%doc NOTES-provider.adoc
%if %{?enable_module}
%dir %{openssl_modulesdir}
%attr(0755,root,root) %{openssl_modulesdir}/nss_prov.so
%endif
%if %{?enable_engine}
%dir %{openssl_enginesdir}
%attr(0755,root,root) %{openssl_enginesdir}/*e_nss.so
%endif
openSUSE Build Service is sponsored by