diff options
Diffstat (limited to 'abs')
| -rw-r--r-- | abs/core/p11-kit/PKGBUILD | 25 | ||||
| -rw-r--r-- | abs/core/p11-kit/libnssckbi-compat.patch | 57 | 
2 files changed, 78 insertions, 4 deletions
| diff --git a/abs/core/p11-kit/PKGBUILD b/abs/core/p11-kit/PKGBUILD index 6c74929..a0d282b 100644 --- a/abs/core/p11-kit/PKGBUILD +++ b/abs/core/p11-kit/PKGBUILD @@ -2,16 +2,31 @@  # Maintainer: Ionut Biru <ibiru@archlinux.org>  pkgname=p11-kit -pkgver=0.20.7 +pkgver=0.23.1  pkgrel=2  pkgdesc="Library to work with PKCS#11 modules"  arch=(i686 x86_64)  url="http://p11-glue.freedesktop.org"  license=('BSD')  depends=('glibc' 'libtasn1' 'libffi') -source=($url/releases/$pkgname-$pkgver.tar.gz{,.sig}) -md5sums=('6648cad01a3080b685b8b3bf7372c91a' -         'SKIP') +source=($url/releases/$pkgname-$pkgver.tar.gz{,.sig} +        libnssckbi-compat.patch) +md5sums=('96f073270c489c9a594e1c9413f42db8' +         'SKIP' +         '8c3f119005908cf4a3e0ef0a0a310f14') +validpgpkeys=('C0F67099B808FB063E2C81117BFB1108D92765AF') + +prepare() { +  cd $pkgname-$pkgver + +  # Build and install an additional library (libnssckbi-p11-kit.so) which +  # is a copy of p11-kit-trust.so but uses the same label for root certs as +  # libnssckbi.so ("Builtin Object Token" instead of "Default Trust") +  # https://bugs.freedesktop.org/show_bug.cgi?id=66161 +  patch -Np1 -i ../libnssckbi-compat.patch + +  autoreconf -vi +}  build() {    cd $pkgname-$pkgver @@ -30,6 +45,8 @@ package() {    cd  $pkgname-$pkgver    make DESTDIR="$pkgdir" install    install -Dm644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING + +  ln -srf "$pkgdir/usr/bin/update-ca-trust" "$pkgdir/usr/lib/p11-kit/trust-extract-compat"  }  # vim:set ts=2 sw=2 et: diff --git a/abs/core/p11-kit/libnssckbi-compat.patch b/abs/core/p11-kit/libnssckbi-compat.patch new file mode 100644 index 0000000..d1b70a3 --- /dev/null +++ b/abs/core/p11-kit/libnssckbi-compat.patch @@ -0,0 +1,57 @@ +diff -upr p11-kit-0.23.1.orig/trust/Makefile.am p11-kit-0.23.1/trust/Makefile.am +--- p11-kit-0.23.1.orig/trust/Makefile.am	2014-11-12 12:58:50.000000000 +0200 ++++ p11-kit-0.23.1/trust/Makefile.am	2015-03-30 16:43:35.275993032 +0300 +@@ -61,6 +61,20 @@ p11_kit_trust_la_LDFLAGS = \ +  + p11_kit_trust_la_SOURCES = $(TRUST_SRCS) +  ++libnssckbi_compatdir = $(libdir) ++libnssckbi_compat_LTLIBRARIES = \ ++	libnssckbi-p11-kit.la ++ ++libnssckbi_p11_kit_la_CFLAGS = \ ++	-DLIBNSSCKBI_COMPAT \ ++	$(p11_kit_trust_la_CFLAGS) ++ ++libnssckbi_p11_kit_la_LIBADD = $(p11_kit_trust_la_LIBADD) ++ ++libnssckbi_p11_kit_la_LDFLAGS = $(p11_kit_trust_la_LDFLAGS) ++ ++libnssckbi_p11_kit_la_SOURCES = $(p11_kit_trust_la_SOURCES) ++ + libtrust_testable_la_LDFLAGS = \ + 	-no-undefined +  +diff -upr p11-kit-0.23.1.orig/trust/module.c p11-kit-0.23.1/trust/module.c +--- p11-kit-0.23.1.orig/trust/module.c	2014-12-16 12:24:01.000000000 +0200 ++++ p11-kit-0.23.1/trust/module.c	2015-03-30 16:48:41.370360130 +0300 +@@ -196,7 +196,11 @@ create_tokens_inlock (p11_array *tokens, + 		const char *label; + 	} labels[] = { + 		{ "~/", "User Trust" }, ++#ifdef LIBNSSCKBI_COMPAT ++		{ DATA_DIR, "Builtin Object Token" }, ++#else + 		{ DATA_DIR, "Default Trust" }, ++#endif + 		{ SYSCONFDIR, "System Trust" }, + 		{ NULL }, + 	}; +@@ -521,9 +525,15 @@ sys_C_GetSlotInfo (CK_SLOT_ID id, + 		info->flags = CKF_TOKEN_PRESENT; + 		strncpy ((char*)info->manufacturerID, MANUFACTURER_ID, 32); +  +-		/* If too long, copy the first 64 characters into buffer */ +-		path = p11_token_get_path (token); ++#ifdef LIBNSSCKBI_COMPAT ++		/* Change description to match libnssckbi so HPKP works in Chromium */ ++		if (strcmp (p11_token_get_label (token), "Builtin Object Token" ) == 0) ++			path = "NSS Builtin Objects"; ++		else ++#endif ++			path = p11_token_get_path (token); + 		length = strlen (path); ++		/* If too long, copy the first 64 characters into buffer */ + 		if (length > sizeof (info->slotDescription)) + 			length = sizeof (info->slotDescription); + 		memset (info->slotDescription, ' ', sizeof (info->slotDescription)); | 
