On Mon, Jun 12, 2000 at 05:25:36PM +0200, Ron Rademaker wrote:
> I'm making a debian package that contains 1 thing: a shared library, it
> the first thing I'm ever packaging. Now lintian gives an error that
> there's no shlibs, it also says stuff about it being intential and so. I
> think I don't need this shlibs, but I want to make sure. There's no binary
> that depends on the shared library and as far as I understood from the
> packaging manual that's what this shlibs is for, right?
If you're packaging a shared library, you'll always need a .shlibs file for
it. Obviously a shared library is no use without some binary that's going
to use it, right? What the .shlibs file does is list libaries & version
numbers in the appropriate package, and the package that a binary linked
against that libary should depend on. Ie. so if we're compiling bash, which
is linked against libreadline 4, ie:
$ ldd /bin/bash
libreadline.so.4 => /lib/libreadline.so.4 (0x4001e000)
--snip--
$ dpkg -S /lib/libreadline.so.4
libreadline4: /lib/libreadline.so.4
$
So it (dpkg-shlibs) goes and looks in /var/lib/dpkg/info/libreadline4.shlibs,
which consists of:
libreadline 4 libreadline4 (>= 4.1)
libhistory 4 libreadline4 (>= 4.1)
Thus the ${shlibs:Depends} will be substituted with 'libreadline4 (>= 4.1)',
along with the packages in the shlibs files of other package libaries which
ldd output.
> So my question now is: what should I do? Just ignore the error or make
> some kind of dummy shlibs? Or mail the lintian maintainer (like the error
> says)? Or am I wrong and do I need a shlibs after all, if yes: what should
> it look like??
It's likely that you'll need a shlibs file. The only exception will be for
a program like muttzilla, or similar where the shared lib only provides
a standard API for another program (ie. it is a plugin). If this is the case,
it probably wouldn't hurt to create a .shlibs file anyway, and stick it in
the package.
If you're using debhelper, putting a .shlibs into a package is _easy_.
Just put:
dh_makeshlibs
in your debian/rules, in a suitable place (I do it just before
dh_installdeb). Read the manpage for dh_makeshlibs for more info.
Otherwise I think you have to put a 'shlibs' file in the DEBIAN directory
under your install root. (correct me if I'm wrong, this is just the result
of what debhelper does automatically...)
>
> Ron Rademaker
>
> PS. Could you cc to me when replying, I'm not subscribed to this list.
No probs :)
Hope this helps,
Timshel
--
Timshel Knoll <[EMAIL PROTECTED]> Second year Computer Science, RMIT
http://yallara.cs.rmit.edu.au/~tiknoll/
For GnuPG public key: finger [EMAIL PROTECTED]
PGP signature