libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Alternate SONAME values


From: Keith Packard
Subject: Re: Alternate SONAME values
Date: Fri, 08 Jul 2005 14:32:18 -0700

On Fri, 2005-07-08 at 14:10 +0530, Ganesan Rajagopal wrote:
> >>>>> "Keith" == Keith Packard <address@hidden> writes:
> 
> > No, I haven't. I have little experience with these systems, so I don't
> > even know if this scheme will work. Hence my question to this list where
> > I imagine there are people with experience on those systems. The key
> > question is whether the system uses SONAMES or filenames to locate
> > libraries.
> 
> Even if they do use file names to locate libraries, can't you continue to
> additionaly ship filenames matching the SONAMES? I mean having a symlink
> libXaw.so.6.0.0 -> libXaw6.so.6.0.0.

Yes, that is one possibility. It complicates the install process as
libtool always wants to install the bare .so version of the file
(libXaw.so), and this would give us three potential versions of that
file, depending on which library you happened to install last. Plus, it
means I can use automake to construct these libraries in the same
directory, which is obviously not a huge deal.

There are also packaging systems which dislike having multiple major
versions of the same library installed at the same time.  Gtk+, in
particular, appends '-2.0' to every library name precisely to avoid this
particular issue. We wanted to take advantage of distinct filenames for
all packages.

> In fact, thinking further about the scenario you presented with version-less
> file names:
> 
> =======
> Version 6 Xaw   -> libXaw.so.6.0.1, libXaw.so.6 
> Version 7 Xaw   -> libXaw.so.7.0.0, libXaw.so.7 
> Version 8 Xaw   -> libXaw.so.8.0.0, libXaw.so.8, libXaw.so 
> =======
> 
> Can't you just manually create and ship versioned .so file names? Like
> 
> =======
> Version 6 Xaw   -> libXaw.so.6.0.1, libXaw.so.6, libXaw6.so
> Version 7 Xaw   -> libXaw.so.7.0.0, libXaw.so.7, libXaw7.so 
> Version 8 Xaw   -> libXaw.so.8.0.0, libXaw.so.8, libXaw8.so, libXaw.so
> =======
> 
> You need to create libXaw6.so -> libXaw.so.6 links manually after
> libtool. This seems to be a simpler approach to tweaking the SONAMEs that
> libtool generates. Of course, I might still be missing something here, so
> I'll stop with this mail :-).

This is actually harder than it seems as I wouldn't be able to use
libtool to install the library, and automake really doesn't want you to
avoid that. I can't fix things up after the fact as the bare libXaw.so
would be trashed by the libtool install step.

> > And, of course, we actively discourage anyone from using any version of
> > Xaw; it's a terrible library.
> 
> Then why make this any easier ;-). What's wrong with the current scheme of
> not shipping .so symlinks with the library but shipping them in a -dev
> package, one for each library major version?

The install process for the packages isn't really a problem; rather it's
the automake install process which doesn't provide this distinction.

>  The -dev packages do conflict
> with each other. This already makes it possible, if not easy, to link to
> older libraries for some one who really cares.

Sure, but some packging systems (RPM?) don't even like run-time packages
to share the same library name with different major so versions.

-keith

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]