On Sun, 13 Nov 2011, Antoine Jacoutot wrote:

> Log message:
> Sync dependencies after move from libusb to libusb-compat and fix a
> couple of fallouts. Note that these ports are only the ones that used to
> have a direct dependency on devel/libusb so there may be some other
> hidden ports that may break because of the switch. If that's the case,
> no need to start ranting all over but instead tell me which one(s)
> break. Thanks.

I'm sorry to bring bad news, but this broke security/gnupg2 in a
bad way:

(gdb) run --pinentry-program /usr/local/bin/pinentry-curses 
--enable-ssh-support --daemon --log-file ~/.gnupg/gpg-agent.log --write-env-file
Starting program: /usr/local/bin/gpg-agent --pinentry-program 
/usr/local/bin/pinentry-curses --enable-ssh-support --daemon --log-file 
~/.gnupg/gpg-agent.log --write-env-file
Ohhhh jeeee: ... this is a bug (global.c:121:global_init)

Program received signal SIGSEGV, Segmentation fault.
[Switching to process 2746, thread 0x2037b1800]
__pth_ring_append (r=0x150, rn=0x20113a9c0) at pth_ring.c:159
159         if (r->r_hook == NULL) {
(gdb) bt
#0  __pth_ring_append (r=0x150, rn=0x20113a9c0) at pth_ring.c:159
#1  0x000000021052985e in pth_mutex_acquire (mutex=0x20113a9c0, 
tryonly=Variable "tryonly" is not available.
) at pth_sync.c:101
#2  0x0000000000406ee0 in gcry_pth_mutex_lock (lock=Variable "lock" is not 
available.
) at gpg-agent.c:280
#3  0x000000020630938d in lock_fsm () from /usr/local/lib/libgcrypt.so.15.0
#4  0x000000020630943b in fips_new_state () from 
/usr/local/lib/libgcrypt.so.15.0
#5  0x000000020630965c in _gcry_fips_signal_error () from 
/usr/local/lib/libgcrypt.so.15.0
#6  0x0000000206303844 in _gcry_logv () from /usr/local/lib/libgcrypt.so.15.0
#7  0x0000000206303eb8 in _gcry_log () from /usr/local/lib/libgcrypt.so.15.0
#8  0x0000000206303f0f in _gcry_bug () from /usr/local/lib/libgcrypt.so.15.0
#9  0x000000020630484a in global_init () from /usr/local/lib/libgcrypt.so.15.0
#10 0x0000000206304c0f in _gcry_vcontrol () from 
/usr/local/lib/libgcrypt.so.15.0
#11 0x0000000206302cdd in gcry_control () from /usr/local/lib/libgcrypt.so.15.0
#12 0x0000000000408037 in main (argc=8, argv=0x7f7ffffea178) at gpg-agent.c:598

This is because the new libusb brings "-pthread" in and you cannot
mix GNU pth with libpthread, at least until (I think) we'll be able
to have a working devel/pth built using the "--enable-syscall-hard"
option that provides replacement syscalls wrapping libpthread ones.

So, for now, we are forced to lose smartcard support unless someone
can jump in with a fix for this giant mess...

Ciao,
David

Index: Makefile
===================================================================
RCS file: /cvs/ports/security/gnupg2/Makefile,v
retrieving revision 1.13
diff -u -p -r1.13 Makefile
--- Makefile    13 Nov 2011 13:54:05 -0000      1.13
+++ Makefile    22 Nov 2011 13:17:09 -0000
@@ -4,7 +4,7 @@ COMMENT =       gnu privacy guard - a free PG
 
 DISTNAME =     gnupg-2.0.18
 CATEGORIES =   security
-REVISION =     0
+REVISION =     1
 
 MASTER_SITES =         ftp://ftp.gnupg.org/gcrypt/gnupg/ \
                ftp://gd.tuwien.ac.at/privacy/gnupg/gnupg/ \
@@ -25,8 +25,8 @@ PERMIT_PACKAGE_FTP =  Yes
 PERMIT_DISTFILES_CDROM =Yes
 PERMIT_DISTFILES_FTP =         Yes
 
-WANTLIB +=             assuan bz2 c gcrypt gpg-error pthread
-WANTLIB +=             ksba pth readline termcap usb z
+WANTLIB +=             assuan bz2 c gcrypt gpg-error
+WANTLIB +=             ksba pth readline termcap z
 
 EXTRACT_SUFX =                 .tar.bz2
 
@@ -35,8 +35,7 @@ MODULES =             devel/gettext
 FLAVORS =              ldap
 FLAVOR ?=
 
-LIB_DEPENDS =          devel/libusb-compat \
-                       archivers/bzip2 \
+LIB_DEPENDS =          archivers/bzip2 \
                        security/libassuan \
                        security/libgcrypt \
                        security/libksba \
@@ -61,9 +60,12 @@ USE_GROFF =          Yes
 
 CONFIGURE_STYLE =      gnu
 CONFIGURE_ENV =        CPPFLAGS="-I${LOCALBASE}/include" \
-                       LDFLAGS="-L${LOCALBASE}/lib -pthread" 
+                       LDFLAGS="-L${LOCALBASE}/lib"
 CONFIGURE_ARGS =       docdir=${LOCALBASE}/share/doc/gnupg2 \
                        --enable-gpgtar
+
+# XXX pth/pthread segfault woes
+CONFIGURE_ARGS +=      --disable-ccid-driver
 
 # Avoid conflict with gnupg-1.x
 post-install:

Reply via email to