debian/rules and wrong run-time library
Hi, This is follow to a few posts on debian-user.
I'm the maintainer of Swish-e (the source, not the debian maintainer). I used dh_make and
the Debian New Maintainers' Guide to create my debian directory basically without any
changes from what dh_make setup.
Swish-e build system uses autotools, and uses libtool to build a (shared on most platforms)
library called libswish-e. The swish-e binary is linked against this library. Libtool
makes all this magic happen.
Specifying the prefix works as expected. For example, building for a new prefix:
moseley@bumby:~/f$ ../swish-e/configure --prefix=$HOME/f2 >/dev/null \
&& make >/dev/null
&& make install >/dev/null
note that the run-time linkages are correct (they point to the libswish-e I just built):
moseley@bumby:~/f$ ldd ~/f2/bin/swish-e
libxml2.so.2 => /usr/lib/libxml2.so.2 (0x4001b000)
>>> libswish-e.so.2 => /home/moseley/f2/lib/libswish-e.so.2 (0x400fc000) <<<<<
libz.so.1 => /lib/libz.so.1 (0x40118000)
libm.so.6 => /lib/libm.so.6 (0x40125000)
libc.so.6 => /lib/libc.so.6 (0x40146000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
So notice that swish-e will use /home/moseley/f2/lib/libswish-e.so.2 as expected.
First problem is that using debian/rules to build ends up swish-e finding the wrong library:
moseley@bumby:~/f$ ldd /usr/bin/swish-e
libxml2.so.2 => /usr/lib/libxml2.so.2 (0x4001b000)
>>> libswish-e.so.2 => /usr/local/lib/libswish-e.so.2 (0x400fc000) <<<<<
libz.so.1 => /lib/libz.so.1 (0x40118000)
libm.so.6 => /lib/libm.so.6 (0x40125000)
libc.so.6 => /lib/libc.so.6 (0x40146000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Notice that it built swish-e and is using the library in /usr/local/lib (which is there from
building swish-e from soucre on my machine).
The configure line in as expected:
/configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \
--mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info
I don't see anything unusual in the rules file, so I'm not sure what else could be causing
that.
Also, I received a few errors during the buiding of the package:
dpkg-shlibdeps: warning: could not find any packages for
/usr/local/lib/libswish-e.so.2 (libswish-e.so.2)
dpkg-shlibdeps: warning: unable to find dependency information for shared
library libswish-e (soname 2, path /usr/local/lib/libswish-e.so.2,
dependency field Depends)
I assume it's thinking that the library is suppose to be installed separately. What needs
to be fixed there?
Then there is:
dh_gencontrol
dpkg-gencontrol: warning: unknown substitution variable ${misc:Depends}
Hum, that was added by dh_make.
Thanks,
--
Bill Moseley
moseley@hank.org
Reply to: