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: