forcemerge 628729 629666
severity 628729 serious
thanks

This was previously reported by Evan Broder in bug #628799, with essentially the same patch. We don't need to worry about -ldl not existing since the only libc on Debian is glibc. (If this assumption is incorrect, then we'd need to be more clever, e.g., use autoconf.)

Attached is a debdiff to incorporate Evan's patch and close all open FTBFSes against this package.

--
Geoffrey Thomas
geo...@mit.edu

On Sun, 21 Aug 2011, Christine Spang wrote:

tags 629666 + patch
thanks

The problem here is that libpam/Makefile is making an erroneous check
for "/usr/lib/libdl.so", and only if this file exists does it link to
libdl, which contains the symbols that the build is erroring out because
it can't find.

Is there any reason *not* to unconditionally link to libdl? libdl.so is
never in /usr/lib these days (perhaps because of multiarch support?). I
have attached a patch that does exactly that.

cheers,
Christine
diff -Nru google-authenticator-20110413.68230188bdc7/debian/changelog 
google-authenticator-20110413.68230188bdc7/debian/changelog
--- google-authenticator-20110413.68230188bdc7/debian/changelog 2011-04-13 
02:20:20.000000000 -0400
+++ google-authenticator-20110413.68230188bdc7/debian/changelog 2011-08-21 
21:48:21.000000000 -0400
@@ -1,3 +1,13 @@
+google-authenticator (20110413.68230188bdc7-1.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Change build dependencies to list a concrete package (Closes: #638802).
+  * Unconditionally link -ldl (since Debian always uses glibc), to fix a
+    FTBFS caused by libdl.so moving to multiarch paths (Closes: #628729,
+    #629666). Patch from Evan Broder <e...@ebroder.net>.
+
+ -- Geoffrey Thomas <geo...@mit.edu>  Sun, 21 Aug 2011 21:45:15 -0400
+
 google-authenticator (20110413.68230188bdc7-1) unstable; urgency=low
 
   * Upstream update.
diff -Nru google-authenticator-20110413.68230188bdc7/debian/control 
google-authenticator-20110413.68230188bdc7/debian/control
--- google-authenticator-20110413.68230188bdc7/debian/control   2011-02-25 
15:11:45.000000000 -0500
+++ google-authenticator-20110413.68230188bdc7/debian/control   2011-08-21 
21:31:43.000000000 -0400
@@ -2,7 +2,7 @@
 Section: admin
 Priority: optional
 Maintainer: LENART Janos <o...@debian.org>
-Build-Depends: debhelper (>= 7.0.5), libpam-dev
+Build-Depends: debhelper (>= 7.0.5), libpam0g-dev
 Standards-Version: 3.9.1
 Homepage: http://code.google.com/p/google-authenticator/
 Vcs-hg: https://google-authenticator.googlecode.com/hg/
diff -Nru 
google-authenticator-20110413.68230188bdc7/debian/patches/make-multiarch-friendly
 
google-authenticator-20110413.68230188bdc7/debian/patches/make-multiarch-friendly
--- 
google-authenticator-20110413.68230188bdc7/debian/patches/make-multiarch-friendly
   1969-12-31 19:00:00.000000000 -0500
+++ 
google-authenticator-20110413.68230188bdc7/debian/patches/make-multiarch-friendly
   2011-08-21 21:45:02.000000000 -0400
@@ -0,0 +1,39 @@
+Description: Switch the Makefile to be multiarch-friendly
+ google-authenticator looks for /usr/lib/libdl.so to determine whether
+ or not to link -ldl, but since the multiarch transition process moved
+ libdl to a different location, that test no longer finds it, leading
+ to a FTBFS on multiarch-enabled systems.
+ .
+ Work around that by just always linking libdl, which we definitely
+ always want to do with glibc.
+Author: Evan Broder <e...@ebroder.net>
+Origin: vendor
+Bug: http://code.google.com/p/google-authenticator/issues/detail?id=74
+
+Index: ubuntu/libpam/Makefile
+===================================================================
+--- ubuntu.orig/libpam/Makefile        2011-05-31 11:40:31.878079519 -0700
++++ ubuntu/libpam/Makefile     2011-05-31 11:52:43.952386500 -0700
+@@ -47,18 +47,17 @@
+                      pam_google_authenticator_unittest
+ 
+ google-authenticator: google-authenticator.o base32.o hmac.o sha1.o
+-      $(CC) -g $(LDFLAGS) $(shell [ -f /usr/lib/libdl.so ] && echo " -ldl") \
+-            -o $@ $+
++      $(CC) -g $(LDFLAGS)                                                   \
++            -o $@ $+ -ldl
+ 
+ demo: demo.o pam_google_authenticator_demo.o base32.o hmac.o sha1.o
+       $(CC) -g $(LDFLAGS) -rdynamic                                         \
+-            $(shell [ -f /usr/lib/libdl.so ] && echo " -ldl") -o $@ $+
++            -o $@ $+ -ldl
+ 
+ pam_google_authenticator_unittest: pam_google_authenticator_unittest.o        
\
+                                    base32.o hmac.o sha1.o
+       $(CC) -g $(LDFLAGS) -rdynamic -lc                                     \
+-              $(shell [ -f /usr/lib/libdl.so ] && echo " -ldl")               
\
+-              -o $@ $+
++              -o $@ $+ -ldl
+ 
+ pam_google_authenticator.so: base32.o hmac.o sha1.o
+ pam_google_authenticator_testing.so: base32.o hmac.o sha1.o
diff -Nru google-authenticator-20110413.68230188bdc7/debian/patches/series 
google-authenticator-20110413.68230188bdc7/debian/patches/series
--- google-authenticator-20110413.68230188bdc7/debian/patches/series    
2011-02-25 14:12:04.000000000 -0500
+++ google-authenticator-20110413.68230188bdc7/debian/patches/series    
2011-08-21 21:45:02.000000000 -0400
@@ -1 +1,2 @@
 debian-create-central-makefile
+make-multiarch-friendly

Reply via email to