lintian rpath warning
I'm getting this warning from lintian:
$ lintian -i gimp-print_4.2.5-3_i386.changes
W: cupsys-driver-gimpprint: binary-or-shlib-defines-rpath ./usr/lib/cups/backend/epson /usr/lib
N:
N: The binary or shared library defines the `RPATH'. Usually this is a
N: bad thing. Most likely you will find a Makefile with a line like:
N: gcc test.o -o test -Wl,--rpath
N: or
N: gcc test.o -o test -R/usr/local/lib
N: Please contact debian-devel@lists.debian.org if you have questions
N: about this.
N:
W: cupsys-driver-gimpprint: binary-or-shlib-defines-rpath ./usr/lib/cups/backend/canon /usr/lib
W: cupsys-driver-gimpprint: binary-or-shlib-defines-rpath ./usr/lib/cups/filter/rastertoprinter /usr/lib
W: cupsys-driver-gimpprint: binary-or-shlib-defines-rpath ./usr/lib/cups/filter/commandtoepson /usr/lib
Looking at the build log, rpath /is/ being used, firstly when linking
libgimpprint:
/bin/sh ../../libtool --mode=link gcc -Wall -Wcast-align
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
-Wnested-externs -Wwrite-strings -pedantic -g -O2 -o libgimpprint.la
-version-info 2:0:1 -rpath /usr/lib print-lexmark.lo print-canon.lo
print-dither.lo print-escp2.lo print-escp2-data.lo print-pcl.lo
print-ps.lo print-util.lo print-color.lo print-weave.lo
print-version.lo print-dither-matrices.lo -lm -lz
However, this a libtool option, and does not actually result in
DT_RPATH being set in the shared library. When building all the cups
binaries, ld rpath is used, but is not mentioned in the
Makefile/Makefile.am:
/bin/sh ../../libtool --mode=link gcc -Wall -Wcast-align
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
-Wnested-externs -Wwrite-strings -pedantic -g -O2 -o epson epson.o
../../lib/libprintut.la -Wl,-rpath,/usr/lib -lcupsimage -ltiff -ljpeg
-lpng -lm -lz -lcups -L/usr/lib -lgnutls -lnsl -lz
gcc -Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes
-Wmissing-declarations -Wnested-externs -Wwrite-strings -pedantic -g
-O2 -o epson epson.o -Wl,-rpath -Wl,/usr/lib
../../lib/.libs/libprintut.al -lcupsimage -ltiff /usr/lib/libjpeg.so
-lpng -lm -lcups -L/usr/lib /usr/lib/libgnutls.so /usr/lib/libtasn1.so
/usr/lib/libgcrypt.so -lnsl -lz
What is making libtool use ld's -rpath option here? Is it something
to do with the libraries being linked, which are different between the
libtool and gcc commands? Why are libjpeg/libgnutls etc. absolute
paths, and why are the libgnutls dependencies expanded by libtool?
Thanks,
Roger
--
Roger Leigh
Printing on GNU/Linux? http://gimp-print.sourceforge.net/
GPG Public Key: 0x25BFB848 available on public keyservers
Reply to: