p11-kit/p11-kit.spec
Ludwig Nussel 8af1cf2f17 - new version 0.20.3
* Fix problems reinitializing managed modules after fork
  * Fix bad bookeeping when fail initializing one of the modules
  * Fix case where module would be unloaded while in use [#74919]
  * Remove assertions when module used before initialized [#74919]
  * Fix handling of mmap failure and mapping empty files [#74773]
  * Stable p11_kit_be_quiet() and p11_kit_be_loud() functions
  * Require automake 1.12 or later
  * Build fixes for Windows [#76594 #74149]

OBS-URL: https://build.opensuse.org/package/show/Base:System/p11-kit?expand=0&rev=15
2014-08-29 06:55:53 +00:00

199 lines
6.5 KiB
RPMSpec

#
# spec file for package p11-kit
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
%define pkidir_cfg %{_sysconfdir}/pki
%define pkidir_static %{_datadir}/pki
%define trustdir_cfg %{pkidir_cfg}/trust
%define trustdir_static %{pkidir_static}/trust
Name: p11-kit
Version: 0.20.3
Release: 0
Summary: Library to work with PKCS#11 modules
License: BSD-3-Clause
Group: Development/Libraries/C and C++
Url: http://p11-glue.freedesktop.org/p11-kit.html
Source0: http://p11-glue.freedesktop.org/releases/%{name}-%{version}.tar.gz
Source1: http://p11-glue.freedesktop.org/releases/%{name}-%{version}.tar.gz.sig
Source99: baselibs.conf
# patch proposed upstream. If it gets rejected, need to implement
# this in ca-certificates.
Patch0: 0001-trust-allow-to-also-add-openssl-style-hashes-to-pem-d.diff
# PATCH-FIX-OPENSUSE
# trust-Print-label-of-certificate-when-complaining-.patch bnc#890908 lnussel@suse.de
Patch1: trust-Print-label-of-certificate-when-complaining-.patch
# PATCH-FIX-OPENSUSE
# trust-Dont-use-invalid-public-keys-for-looking-up-.patch bnc#890908 lnussel@suse.de
Patch2: trust-Dont-use-invalid-public-keys-for-looking-up-.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
BuildRequires: pkg-config
BuildRequires: pkgconfig(libffi) >= 3.0.0
BuildRequires: pkgconfig(libtasn1) >= 2.3
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
p11-kit provides a way to load and enumerate PKCS#11 modules, as well
as a standard configuration setup for installing PKCS#11 modules in
such a way that they're discoverable.
%package -n libp11-kit0
Summary: Library to work with PKCS#11 modules
Group: System/Libraries
%description -n libp11-kit0
p11-kit provides a way to load and enumerate PKCS#11 modules, as well
as a standard configuration setup for installing PKCS#11 modules in
such a way that they're discoverable.
%package tools
Summary: Library to work with PKCS#11 modules -- Tools
Group: Development/Libraries/C and C++
%description tools
p11-kit provides a way to load and enumerate PKCS#11 modules, as well
as a standard configuration setup for installing PKCS#11 modules in
such a way that they're discoverable.
%package devel
Summary: Library to work with PKCS#11 modules -- Development Files
Group: Development/Libraries/C and C++
Requires: libp11-kit0 = %{version}
%description devel
p11-kit provides a way to load and enumerate PKCS#11 modules, as well
as a standard configuration setup for installing PKCS#11 modules in
such a way that they're discoverable.
%package nss-trust
Summary: Adaptor to make NSS read the p11-kit trust store
Group: Productivity/Networking/Security
Requires: p11-kit = %{version}
Conflicts: mozilla-nss-certs
%if %{_lib} == lib64
Provides: libnssckbi.so()(64bit)
%else
Provides: libnssckbi.so
%endif
%description nss-trust
Adaptor library to make NSS read the p11-kit trust store. It has
to be installed intead of mozilla-nss-certs.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%build
# just because of patch0
autoreconf -f -i
%configure %--with-trust-paths=%{trustdir_cfg}:%{trustdir_static}
make %{?_smp_mflags} -C trust asn
make %{?_smp_mflags}
%install
%make_install
#
install -d m 755 %{buildroot}%{trustdir_cfg}/{anchors,blacklist}
install -d m 755 %{buildroot}%{trustdir_static}/{anchors,blacklist}
# Create pkcs11 config directory
test ! -e %{buildroot}%{_sysconfdir}/pkcs11/modules
install -d %{buildroot}%{_sysconfdir}/pkcs11/modules
# Remove sample config away to doc folder. Having the sample there would conflict
# with future versions of the library on file level. As replacement, we package
# the file as documentation file.
rm %{buildroot}%{_sysconfdir}/pkcs11/pkcs11.conf.example
find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print
#
install -d -m 755 %{buildroot}/etc/rpm/
cat <<'FIN' >%{buildroot}/etc/rpm/macros.%{name}
# Macros from %{name} package
%%pkidir_cfg %{pkidir_cfg}
%%pkidir_static %{pkidir_static}
%%trustdir_cfg %{trustdir_cfg}
%%trustdir_static %{trustdir_static}
FIN
#
# nss compat lib
ln -s %{_libdir}/pkcs11/p11-kit-trust.so %{buildroot}%{_libdir}/libnssckbi.so
#
# call update-ca-certificates when trust changes
rm %{buildroot}%{_libdir}/%{name}/trust-extract-compat
ln -s ../../sbin/update-ca-certificates %{buildroot}%{_libdir}/%{name}/p11-kit-extract-trust
export NO_BRP_STALE_LINK_ERROR=yes # *grr*
%clean
rm -rf %{buildroot}
%post -n libp11-kit0 -p /sbin/ldconfig
%postun -n libp11-kit0 -p /sbin/ldconfig
%files
%defattr(-,root,root)
%dir %{_libdir}/pkcs11
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/modules
%dir %{pkidir_cfg}
%dir %{trustdir_cfg}
%dir %{trustdir_cfg}/anchors
%dir %{trustdir_cfg}/blacklist
%dir %{pkidir_static}
%dir %{trustdir_static}
%dir %{trustdir_static}/anchors
%dir %{trustdir_static}/blacklist
%{_datadir}/%{name}/modules/p11-kit-trust.module
%{_libdir}/pkcs11/p11-kit-trust.so
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/p11-kit-extract-trust
%files -n libp11-kit0
%defattr(-,root,root)
# Package the example conf file as documentation. Like this we're sure that we will
# not introduce conflicts with this version of the library and future ones.
%doc p11-kit/pkcs11.conf.example
%doc AUTHORS ChangeLog COPYING NEWS README
%dir %{_sysconfdir}/pkcs11
%dir %{_sysconfdir}/pkcs11/modules/
%{_libdir}/libp11-kit.so.*
%{_libdir}/p11-kit-proxy.so
%files tools
%defattr(-,root,root)
%{_bindir}/p11-kit
%{_bindir}/trust
%files devel
%defattr(-,root,root)
%config /etc/rpm/macros.%{name}
%{_includedir}/p11-kit-1/
%{_libdir}/libp11-kit.so
%{_libdir}/pkgconfig/p11-kit-1.pc
%doc %dir %{_datadir}/gtk-doc
%doc %dir %{_datadir}/gtk-doc/html
%doc %{_datadir}/gtk-doc/html/p11-kit/
%files nss-trust
%defattr(-,root,root)
%{_libdir}/libnssckbi.so
%changelog