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]
pgpBmSAUROIfB.pgp
Description: PGP signature