Hints on packaging a library
Jonas Smedegaard
dr at jones.dk
Thu Aug 26 16:54:59 UTC 2010
On Thu, Aug 26, 2010 at 11:31:43AM -0400, Alexandre Quessy wrote:
>I was wondering if someone had hints on how to package a library. The
>things I want to package are often distributed with at least an
>executable which uses them.
My approach would be to suggest look at some library packages and try
understand how each and every bit of information in them works.
...but it seems this is what you are doing already. :-)
Feel free to ask about bits and pieces of the packages I am involved in
- I do try to have reasoning for every little comma in them, and would
be happy to either clarify or be proven wrong (and then correct the bits
revealed as being just casual or whatever).
>The packages I am working and contain libraries on are: scenic,
>spinframework. I am also interested in packaging lyd.
Lyd? What is that? It is the danish (and norwegian) word for sound, but
I never heard of it being a code project.
>For now, I used CDBS, but I would like to give a try to dh 7, to
>compare. :) Whatever works first...
>Any examples of packages I should check out?
As you might know by now, I only have CDBS examples :-)
Feel free to pick and interrogate me about any of the 140+ packages
which contains libraries from this list:
http://qa.debian.org/developer.php?login=dr@jones.dk
(in worst case you dig up something I haven't polished for some time,
but that will be beneficial to the community to then get it straightened
up - and perhaps you might learn something in that process too?)
>I looked at liblo, which is a library I know and use. It's pretty
>straightforward.
Yeah, that one is almost as simple as it can get.
The rules file of that one could be much simpler if I wasn't so fond of
some modern CDBS surplus, and .install files could be slightly trimmed
if (or when) switching to debhelper 7. But apart from that, liblo is
probably as it gets.
But beware - partly it has to do with the library itself being quite
simple: There are not really any build-dependencies, so no development
dependencies to keep track of.
A more realistic example is liblrdf - using d-shlibs, patching source so
needing autotools reconfiguration (with the extra juggling it brings
when not taking the easy route of agressive gitignore use).
>I found some info about the soversion (liblyd0, for example) in the
>Debian policy manual.
>http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-shlibs
>There is no debian/shlibs file in the Git repo for the packaging of
>liblo. I guess it's generated by the debian/rules file?
That manual section describes how an shlibs file must end in the binary
package, and that it _may_ end there by putting a similarly named file
in the source package which then is installed with a debhelper script.
I prefer to resolve information dynamically whenever possible, and use
d-shlibs for (most of) the library parts. Might be that I got it wrong
(I am certainly no expert in this area) but apparently the community is
happy with e.g. uw-imap, libgd2, ghostscript, jbig2dec and other library
packages that I maintain - none of which needs a shlibs file in the
source package.
>It seems like the versioning of the shlibs rely on the
>LO_SO_VERSION=7:0:0 in configure.ac. Some project may not provide this
>upstream.
If upstream do not maintain SONAME properly then you have a coding
issue, not just a packaging one. You can patch code during packaging
but packaging tools do not solve broken software, so don't look there
for magic solutions to broken upstream code.
Kind regards,
- Jonas
--
* Jonas Smedegaard - idealist & Internet-arkitekt
* Tlf.: +45 40843136 Website: http://dr.jones.dk/
[x] quote me freely [ ] ask before reusing [ ] keep private
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20100826/06d4fcfd/attachment.pgp>
More information about the pkg-multimedia-maintainers
mailing list