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