Date: Sunday, April 19, 2015 @ 11:12:14
  Author: bluewind
Revision: 131672

upgpkg: lib32-p11-kit 0.23.1-2

fix FS#44633, missing libnssckbi-compat.patch

Added:
  lib32-p11-kit/trunk/libnssckbi-compat.patch
Modified:
  lib32-p11-kit/trunk/PKGBUILD

-------------------------+
 PKGBUILD                |   20 +++++++++++++---
 libnssckbi-compat.patch |   57 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 74 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2015-04-19 09:06:00 UTC (rev 131671)
+++ PKGBUILD    2015-04-19 09:12:14 UTC (rev 131672)
@@ -5,7 +5,7 @@
 _pkgbasename=p11-kit
 pkgname=lib32-$_pkgbasename
 pkgver=0.23.1
-pkgrel=1
+pkgrel=2
 pkgdesc="Library to work with PKCS#11 modules (32-bit)"
 arch=(x86_64)
 url="http://p11-glue.freedesktop.org";
@@ -12,11 +12,25 @@
 license=('BSD')
 depends=(lib32-glibc lib32-libtasn1 lib32-libffi $_pkgbasename)
 options=(!libtool)
-source=($url/releases/$_pkgbasename-$pkgver.tar.gz{,.sig})
+source=($url/releases/$_pkgbasename-$pkgver.tar.gz{,.sig}
+        libnssckbi-compat.patch)
 validpgpkeys=(C0F67099B808FB063E2C81117BFB1108D92765AF)
 md5sums=('96f073270c489c9a594e1c9413f42db8'
-         'SKIP')
+         'SKIP'
+         '8c3f119005908cf4a3e0ef0a0a310f14')
 
+prepare() {
+  cd "$srcdir/$_pkgbasename-$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() {
   export CC="gcc -m32"
   export CXX="g++ -m32"

Added: libnssckbi-compat.patch
===================================================================
--- libnssckbi-compat.patch                             (rev 0)
+++ libnssckbi-compat.patch     2015-04-19 09:12:14 UTC (rev 131672)
@@ -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));

Reply via email to