Package: dpkg-cross Version: 2.5.3 Severity: normal Tags: patch User: [email protected] Usertags: origin-ubuntu ubuntu-patch lucid
dpkg-cross mishandles the dependency_libs lines in many .la files. Attached are two examples. libusb: in: dependency_libs=' -L/usr/arm-linux-gnueabi/lib' out: dependency_libs=' want: dependency_libs='' libanthy: in: dependency_libs=' -lm /usr/lib/libanthydic.la' out: dependency_libs=' -lm /usr/lib/libanthydic.la' want: dependency_libs=' -lm /usr/arm-linux-gnueabi/lib/libanthydic.la' This is no doubt another cause of a number of problems such as http://lists.debian.org/debian-devel/2007/12/msg00416.html. I spent quite a bit of time scratching my head over this before realising that dpkg-cross wasn't behaving as it's clearly intended to behave ... Here's a patch to correct this. === modified file 'dpkg-cross' --- dpkg-cross 2010-01-07 23:47:08 +0000 +++ dpkg-cross 2010-01-14 16:20:48 +0000 @@ -664,10 +664,11 @@ sub sub_build { while (<FROM>) { if (/^libdir=/) { print TO "libdir=\'$crosslib\'\n"; - } elsif (/^dependency_libs=/) { - s/( )?-L\S+//g; - s:\S+/([\w\.\-]+\.la)$:$crosslib/$1:g; - print TO; + } elsif (/^dependency_libs='(.*)'$/ or /^dependency_libs=(.*)/) { + my $deplibs = $1; + $deplibs =~ s/( )?-L\S+//g; + $deplibs =~ s:\S+/([\w\.\-]+\.la)$:$crosslib/$1:g; + print TO "dependency_libs='$deplibs'\n"; } else { print TO; } Thanks, -- Colin Watson [[email protected]]
# libusb.la - a libtool library file # Generated by ltmain.sh - GNU libtool 1.5.26 Debian 1.5.26-4 (1.1220.2.493 2008/02/01 16:58:18) # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='libusb-0.1.so.4' # Names of this library. library_names='libusb-0.1.so.4.4.4 libusb-0.1.so.4 libusb.so' # The name of the static archive. old_library='libusb.a' # Libraries that this one depends upon. dependency_libs=' -L/usr/arm-linux-gnueabi/lib' # Version information for libusb. current=8 age=4 revision=4 # Is this an already installed library? installed=yes # Should we warn about portability when linking against -modules? shouldnotlink=no # Files to dlopen/dlpreopen dlopen='' dlpreopen='' # Directory that this library needs to be installed in: libdir='/usr/lib'
# libanthy.la - a libtool library file # Generated by ltmain.sh - GNU libtool 1.5.6 (1.1220.2.95 2004/04/11 05:50:42) Debian: 224 $ # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='libanthy.so.0' # Names of this library. library_names='libanthy.so.0.1.0 libanthy.so.0 libanthy.so' # The name of the static archive. old_library='libanthy.a' # Libraries that this one depends upon. dependency_libs=' -lm /usr/lib/libanthydic.la' # Version information for libanthy. current=1 age=1 revision=0 # Is this an already installed library? installed=yes # Should we warn about portability when linking against -modules? shouldnotlink=no # Files to dlopen/dlpreopen dlopen='' dlpreopen='' # Directory that this library needs to be installed in: libdir='/usr/lib'

