Debian package

Jef Driesen jefdriesen at telenet.be
Thu Feb 28 23:52:08 PST 2013


Hi,

With all the recent discussions on the Debian/Ubuntu packaging, I would 
like to pick up this topic again.

On 2013-02-21 12:13, Cristian Ionescu-Idbohrn wrote:
> On Thu, 21 Feb 2013, Jef Driesen wrote:
>> >
>> > So we are calling v0.3 libdivecomputer1?
>>
>> How about using the libtool "-release 0.x" option? If I interpret 
>> the libtool
>> documentation correctly, then the soname will become 
>> "libdivecomputer-0.x.so".
>> Thus each release will get a different soname. The distro package 
>> can be named
>> similarly. The libtool documentation even says: "In general, you 
>> should only
>> use -release for package-internal libraries or for ones whose 
>> interfaces
>> change very frequently." So I think this applies to libdivecomputer.
>
> That may work.  But don't take my word for it.  I'm just an amateur 
> :)

I don't have any experience with Debian packaging either. I'm 
definitely willing to make whatever changes are necessary to make 
packaging libdivecomputer in the distributions easier. But at this point 
we need someone with a bit more experience in this area to step up and 
say whether these changes actually help or not. It makes little sense to 
start changing the soname, if there are no real benefits.

Note that if we adopt something like this, I can't retroactive apply 
this to the v0.3 release because it's already out. But I assume 
distributions can backport this when necessary.

>> When we eventually arrive at v1.0, we can drop the -release option 
>> again and
>> switch back to using the -version-info option. I realize the soname 
>> would
>> again become libdivecomputer.so.0, but I assume that by that time 
>> all the
>> current v0.x releases are likely obsolete and unmaintained. If not, 
>> we can
>> always start with libdivecomputer.so.1 instead.
>
> So, let's see what we have:
>
> 	libdivecomputer0:
> 		/usr/lib/x86_64-linux-gnu/libdivecomputer.so.0
> 		/usr/lib/x86_64-linux-gnu/libdivecomputer.so.0.0.0
>
> and compare for example to:
>
> 	libgstreamer0.10-0:
> 		/usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
> 		/usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0.30.0
>

I took a quick look at the gstreamer source. They are not using the 
libtool -release option, but instead hardcode the library name as 
libgstreamer_ at GST_API_VERSION@. I think that in the end, this gives more 
or less the same result.

Jef


More information about the subsurface mailing list