[Live-devel] shared library

Benjamin Drung bdrung at debian.org
Sat Dec 8 11:11:40 PST 2012


Am Samstag, den 08.12.2012, 06:26 -0800 schrieb Ross Finlayson:
> I'm not planning any changes to the 'build system' itself.  I would
> hope, however, that things like shared libraries could be accommodated
> by using a different "config.*" file - e.g., perhaps named something
> like "config.linux-with-shared-libraries" or
> "config.debian-with-shared-libraries" - and then using the exiting
> "genMakefiles" tool.  So that's the approach that I would pursue
> first.

Adding shared library support requires adding an additional make target
that builds the additional .so files, because we want to keep the static
library. This cannot be done by just adding some variables to
config.linux-with-shared-libraries.

> (And as for the suggestion of switching to using 'CMake', see
> <http://lists.live555.com/pipermail/live-devel/2012-July/015600.html>)

Thanks for the pointer. Can you point me to the latest proposed revision
of cmake config files?

The current 'build system' is suboptimal from a packager point of view.
It cannot be adjusted by setting CFLAGS or LDFLAGS [1]. It has no
install target to install the library and it's headers. Converting to
cmake and add shared library support could maybe take less work than
converting the current build system to support shared libraries.

> Personally, though, I don't particularly like shared libraries; in
> this day and age (with disk space and memory being so abundant)
> they're just more trouble than they're worth.

Shared libraries have a benefit: You don't have to rebuild the
applications using the libraries when fixing a bug in the library.
Building and uploading the library is enough to get it used by all
application. If the ABI breaks and all applications needs a rebuild,
this is catches by having a different binary package name. If the
library provides only a static version, new uploads of the library will
be unnoticed and the applications won't get rebuild.

>   (The only 'dynamic link' that I hope you put in Debian distributions
> is a 'link' to the URL "http://www.live555.com/liveMedia/", so that
> people can download the latest version of the code; the only version
> that we support :-)

The homepage field of the liblivemedia package points to
http://www.live555.com. Should I change it to point to the URL mentioned
above?

> But of course, you're welcome to try building shared libraries if you
> wish.

I cannot do it properly without your help. Are you willing to maintain
one variable with the SONAME version. The rules for changing this
version are following:

#------------------------------------------------------------------------------------
# The following is the libtool / shared library version. This doesn't have to
# do anything with the release version. It MUST conform to the following rules:
#
#  1. Start with version information of `0:0:0' for each libtool library.
#  2. Update the version information only immediately before a public release of
#     your software. More frequent updates are unnecessary, and only guarantee
#     that the current interface number gets larger faster.
#  3. If the library source code has changed at all since the last update, then
#     increment revision (`c:r:a' becomes `c:r+1:a').
#  4. If any interfaces have been added, removed, or changed since the last update,
#     increment current, and set revision to 0.
#  5. If any interfaces have been added since the last public release, then increment
#     age.
#  6. If any interfaces have been removed since the last public release, then set age
#     to 0.

SHARED_VERSION_INFO="0:0:0"

[1] See 010_propagate_cflags.diff and 301_hardening.patch on
http://patch-tracker.debian.org/package/liblivemedia/2012.11.30-1

-- 
Benjamin Drung
Debian & Ubuntu Developer



More information about the live-devel mailing list