retitle 683011 FTBFS on arm* and kfreebsd*: libnss-ldap missing files 
(debian/tmp/usr/lib/*/*), aborting
tags 683011 +patch
thanks

It appeared the arm* and kfreebsd* failures are the same or at least
related. At the very least other behaviours seem the same on those
architectures.

Specifically it seems to be that the library is installed with different naming on different architectures and arm* and kfreebsd* are very different from all the others.
Comparing file lists from the testing version:

amd64/mips/mipsel/sparc:
/lib/libnss_ldap-2.11.2.so
/lib/libnss_ldap.so.2
/usr/lib/libnss_ldap.so

i386/ia64/powerpc/s390:
/lib/libnss_ldap-2.11.1.so
/lib/libnss_ldap.so.2
/usr/lib/libnss_ldap.so

s390x:
/lib/libnss_ldap-.so
/lib/libnss_ldap.so.
/usr/lib/libnss_ldap.so


arm* and kfreebsd*
/lib/nss_ldap.so
/lib/nss_ldap.so.1
/usr/lib/libnss_ldap.so

The difference in filenames between amd64/mips/mipsel/sparc,
i386/ia64/powerpc/s390, and s390x doesn't seem to exist in the
unstable version. In the unstable version all the architectures
that built successfully have
/lib/<multiarch triplet>/libnss_ldap-2.13.so
/lib/<multiarch triplet>/libnss_ldap.so.2
/usr/lib/<multiarch triplet>/libnss_ldap.so

It seems in the multiarchified version on arm* and kfreebsd* nothing
is put in /usr/lib and so the build fails. I decided not to focus directly on this and instead look at why those four architectures were being treated so inconsistently from the rest of debian.

Looking more deeply it seems that the build-system compares the final two parts of the systems triplet to see if they match "linux" or "linux-gnu", armel, armhf and the kfreebsd architectures fail this test. I prepared (if this patch is to be upstreamed then it will need more work to correctly detect all gnu based systems, likely
this will require some form of wildcard matching to be implemented)

With this patch armhf and armel, kfreebsd-i386 and kfreebsd-amd64
all end up with the same files as other architectures.

Unfortunately it seems after applying this patch one of the
autotools demands that automake1.9 is installed before it will build the package, I don't know if there is anything that can be done to prevent this or if it will simply have to be added to the build-depends.

Also before this patch is applied someone should consider what if any impact making the naming behaviour arm* and kfreebsd* match that on other architectures will have on other packages? is this library purely some form of plugin? or is it used by
binaries/libraries in other packages?

I am ccing those involved in the previous nmu and the rc bug
it fixed (which seems somewhat related to this bug) to see if they have opinions on this.

diff -urN libnss-ldap-264/debian/patches/series libnss-ldap-264.new/debian/patches/series
--- libnss-ldap-264/debian/patches/series	2012-08-07 23:09:12.000000000 +0000
+++ libnss-ldap-264.new/debian/patches/series	2012-08-07 22:17:41.000000000 +0000
@@ -4,3 +4,4 @@
 debian_conf
 uid_t
 link
+treat-all-debian-systems-like-linux.patch
diff -urN libnss-ldap-264/debian/patches/treat-all-debian-systems-like-linux.patch libnss-ldap-264.new/debian/patches/treat-all-debian-systems-like-linux.patch
--- libnss-ldap-264/debian/patches/treat-all-debian-systems-like-linux.patch	1970-01-01 00:00:00.000000000 +0000
+++ libnss-ldap-264.new/debian/patches/treat-all-debian-systems-like-linux.patch	2012-08-07 22:54:54.000000000 +0000
@@ -0,0 +1,26 @@
+Index: nss_ldap-264/configure.in
+===================================================================
+--- nss_ldap-264.orig/configure.in	2012-08-07 22:54:21.000000000 +0000
++++ nss_ldap-264/configure.in	2012-08-07 22:54:26.000000000 +0000
+@@ -98,7 +98,7 @@
+ esac
+ 
+ AM_CONDITIONAL(GCC, test "$GCC" = "yes")
+-AM_CONDITIONAL(GLIBC, test "$target_os" = "linux" -o "$target_os" = "linux-gnu")
++AM_CONDITIONAL(GLIBC, test "forcedpass" = "forcedpass")
+ AM_CONDITIONAL(AIX, test "$TARGET_OS" = AIX)
+ AM_CONDITIONAL(HPUX, test "$TARGET_OS" = HPUX)
+ 
+Index: nss_ldap-264/configure
+===================================================================
+--- nss_ldap-264.orig/configure	2008-10-30 20:50:15.000000000 +0000
++++ nss_ldap-264/configure	2012-08-07 22:54:48.000000000 +0000
+@@ -3422,7 +3422,7 @@
+ 
+ 
+ 
+-if test "$target_os" = "linux" -o "$target_os" = "linux-gnu"; then
++if test "forcedpass" = "forcedpass"; then
+   GLIBC_TRUE=
+   GLIBC_FALSE='#'
+ else

Reply via email to