xmlsec1/xmlsec1.spec

249 lines
7.5 KiB
RPMSpec

#
# spec file for package xmlsec1
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{!?make_build:%global make_build make %{?_smp_mflags}}
%global libname libxmlsec1-1
%global libopenssl libxmlsec1-openssl1
%global libgcrypt libxmlsec1-gcrypt1
%global libgnutls libxmlsec1-gnutls1
%global libnss libxmlsec1-nss1
Name: xmlsec1
Version: 1.2.41
Release: 0
Summary: Library providing support for "XML Signature" and "XML Encryption" standards
License: MIT
URL: https://www.aleksey.com/xmlsec/
Source0: https://www.aleksey.com/xmlsec/download/xmlsec1-%{version}.tar.gz
Source1: https://www.aleksey.com/xmlsec/download/xmlsec1-%{version}.sig#/xmlsec1-%{version}.tar.gz.sig
Source2: %{name}.keyring
Source99: xmlsec1-rpmlintrc
Patch0: xmlsec1-ui_null.patch
BuildRequires: libgcrypt-devel
BuildRequires: libtool
# Needed certutil for tests
BuildRequires: mozilla-nss-tools
BuildRequires: pkgconfig
BuildRequires: pkgconfig(gnutls)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libxslt)
BuildRequires: pkgconfig(nspr)
BuildRequires: pkgconfig(nss)
BuildRequires: pkgconfig(openssl)
Recommends: %{libopenssl}
%description
XML Security Library is a C library based on LibXML2 and OpenSSL.
The library was created with a goal to support major XML security
standards "XML Digital Signature" and "XML Encryption".
%package -n %{libname}
Summary: Library providing support for "XML Signature" and "XML Encryption" standards
%description -n %{libname}
XML Security Library is a C library based on LibXML2 and OpenSSL.
The library was created with a goal to support major XML security
standards "XML Digital Signature" and "XML Encryption".
%package -n %{libgcrypt}
Summary: GCrypt crypto plugin for XML Security Library
Requires: %{libname} = %{version}
%description -n %{libgcrypt}
GCrypt plugin for XML Security Library provides GCrypt based crypto services
for the xmlsec library.
%package -n %{libgnutls}
Summary: GNUTls crypto plugin for XML Security Library
Requires: %{libname} = %{version}
%description -n %{libgnutls}
GNUTls plugin for XML Security Library provides GNUTls based crypto services
for the xmlsec library.
%package -n %{libnss}
Summary: NSS crypto plugin for XML Security Library
Requires: %{libname} = %{version}
%description -n %{libnss}
NSS plugin for XML Security Library provides NSS based crypto services
for the xmlsec library.
%package -n %{libopenssl}
Summary: OpenSSL crypto plugin for XML Security Library
Requires: %{libname} = %{version}
%description -n %{libopenssl}
OpenSSL plugin for XML Security Library provides OpenSSL based crypto services
for the xmlsec library.
%package devel
Summary: Libraries, includes for XML Signatures/Encryption
Requires: %{libname} = %{version}
Requires: libxml2-devel >= 2.6.0
Requires: libxslt-devel >= 1.1.0
Requires: openssl-devel >= 0.9.6
Requires: pkgconfig(zlib)
%description devel
Libraries, includes, etc. you can use to develop applications with XML Digital
Signatures and XML Encryption support.
%package openssl-devel
Summary: OpenSSL crypto plugin for XML Security Library
Requires: %{libopenssl} = %{version}
Requires: %{name}-devel = %{version}
%description openssl-devel
Libraries, includes, etc. for developing XML Security applications with OpenSSL
%package gcrypt-devel
Summary: GCrypt crypto plugin for XML Security Library
Requires: %{libgcrypt} = %{version}
Requires: %{name}-devel = %{version}
%description gcrypt-devel
Libraries, includes, etc. for developing XML Security applications with GCrypt.
%package gnutls-devel
Summary: GNUTls crypto plugin for XML Security Library
Requires: %{libgnutls} = %{version}
Requires: %{name}-devel = %{version}
Requires: %{name}-openssl-devel = %{version}
Requires: gnutls-devel >= 1.0.20
Requires: libgcrypt-devel >= 1.2.0
%description gnutls-devel
Libraries, includes, etc. for developing XML Security applications with GNUTls.
%package nss-devel
Summary: NSS crypto plugin for XML Security Library
Requires: %{libnss} = %{version}
Requires: %{name}-devel = %{version}
Requires: mozilla-nspr-devel
Requires: mozilla-nss-devel >= 3.2
%description nss-devel
Libraries, includes, etc. for developing XML Security applications with NSS.
%prep
%setup -q
%if 0%{?suse_version} < 1500
%patch -P 0 -p1
%endif
%build
# Allow for deprecations
export CFLAGS="%{optflags} -Wno-error=deprecated-declarations -std=c99"
export CXXFLAGS="%{optflags} -Wno-error=deprecated-declarations"
%configure \
--disable-static \
--disable-silent-rules \
--disable-md5
%make_build
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
# move installed docs to include them in -devel package via %%doc magic
rm -rf __tmp_doc ; mkdir __tmp_doc
mv %{buildroot}%{_datadir}/doc/xmlsec1/* __tmp_doc
rmdir %{buildroot}%{_datadir}/doc/xmlsec1
%check
# Relax the crypto policies for the test-suite
export GNUTLS_SYSTEM_PRIORITY_FILE=/dev/null
%make_build -j1 check check-keys check-dsig check-enc
%post -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig
%post -n %{libgcrypt} -p /sbin/ldconfig
%postun -n %{libgcrypt} -p /sbin/ldconfig
%post -n %{libgnutls} -p /sbin/ldconfig
%postun -n %{libgnutls} -p /sbin/ldconfig
%post -n %{libnss} -p /sbin/ldconfig
%postun -n %{libnss} -p /sbin/ldconfig
%post -n %{libopenssl} -p /sbin/ldconfig
%postun -n %{libopenssl} -p /sbin/ldconfig
%files
%license COPYING
%doc README.md ChangeLog
%{_mandir}/man1/xmlsec1.1%{?ext_man}
%{_bindir}/xmlsec1
%files -n %{libname}
%license COPYING
%{_libdir}/libxmlsec1.so.*
%files -n %{libgcrypt}
%license COPYING
%{_libdir}/libxmlsec1-gcrypt.so.*
%{_libdir}/libxmlsec1-gcrypt.so
%files -n %{libgnutls}
%license COPYING
%{_libdir}/libxmlsec1-gnutls.so.*
%{_libdir}/libxmlsec1-gnutls.so
%files -n %{libnss}
%license COPYING
%{_libdir}/libxmlsec1-nss.so.*
%{_libdir}/libxmlsec1-nss.so
%files -n %{libopenssl}
%license COPYING
%{_libdir}/libxmlsec1-openssl.so.*
%{_libdir}/libxmlsec1-openssl.so
%files devel
%license COPYING
%doc AUTHORS ChangeLog NEWS
%doc HACKING __tmp_doc/*
%{_bindir}/xmlsec1-config
%dir %{_includedir}/xmlsec1
%dir %{_includedir}/xmlsec1/xmlsec
%{_includedir}/xmlsec1/xmlsec/*.h
%{_libdir}/libxmlsec1.so
%{_libdir}/pkgconfig/xmlsec1.pc
%{_libdir}/xmlsec1Conf.sh
%{_datadir}/aclocal/xmlsec1.m4
%{_mandir}/man1/xmlsec1-config.1%{?ext_man}
%files openssl-devel
%license COPYING
%{_includedir}/xmlsec1/xmlsec/openssl/
%{_libdir}/pkgconfig/xmlsec1-openssl.pc
%files gcrypt-devel
%license COPYING
%{_includedir}/xmlsec1/xmlsec/gcrypt/
%{_libdir}/pkgconfig/xmlsec1-gcrypt.pc
%files gnutls-devel
%license COPYING
%{_includedir}/xmlsec1/xmlsec/gnutls/
%{_libdir}/pkgconfig/xmlsec1-gnutls.pc
%files nss-devel
%license COPYING
%{_includedir}/xmlsec1/xmlsec/nss/
%{_libdir}/pkgconfig/xmlsec1-nss.pc
%changelog