On Wed, 25 Jun 2003, Stefan van der Eijk wrote:

> >> >No, the one in /usr/lib is a link to the one in /lib, but they are
> >> >not the same files, but that isn't relevant. But why is there no
> >> >libdb-3.so file (if we are going to go with the naming used for
> >> >libdb40).
>
> >> >>What's the problem exactly?
>
> >> >The fact that the versioned library file doesn't have it's version
> >> >trailing the .so.
>
> >> Yes.
>
> > So what should happen if a package has a build requirement on a specific
> > version of a library (e.g. libfoo.so.1.0.7)?
> Then you'll need to specify this specific BuildRequires in the .spec file,
> with the package name.
>
> BuildRequires: libfoo-deve >=1.0.7 or something like that.
I suppose this should only happen like your example with a > or >=.

> > Or is this impossible unless a versioning scheme like with db3 & db4 is
> > used? If it should work you're right to want different dependency names.
> We're seeing that more and more of these dependencies have version numbers
> in them for the major part. Good example are the glib1.2-devel and
> glib2-devel packages.

Yes, but here libglib-2.0 is a different library, no versioning is done on
the -x.y part. Except that there is no libglib-1.2.so but instead only a
libglib.so. It's all consistent though, a library provides a file where
the SONAME matches the filename, and zero or more symlinks for linking
against it during build-time. Maybe this has been suggested before, but
what's against naming the provides and requires for a library libfoo.so
"libfoo-devel" so if you have libfoo-1.2.so you get "libfoo-1.2-devel"?
libdb4.0-devel should then get (amongst others)
provides: libdb-4.0-devel libdb-4-devel libdb-devel

> >> >Stefan, I think the problem isn't the naming of the requirements,
>
> >> Well, you can't disagree that using the ".so" is at least confusing.
> >> It's very difficult to tell where it came from.
>
> >> If we would change the naming, then even _if_ packaging is incorrect,
> >> it wouldn't fool the system --> and that's one of my main motivations
> >> to change the naming.
>
> >> >it's the method. We shouldn't be chopping off the bit that follows
> >> > .so, we should be finding the file that links to the library listed.
>
> >> I don't follow you here...
>
> > For a regular dependendy to libdb-4.0.so one might expect a -devel
> > dependency on libdb-4.so, or even libdb.so. Note that libtool doesn't
> > get this right either (or does it use the same code?), judging from
> > /usr/lib/libdb-4.0.la:
> >   library_names='libdb-4.0.so libdb-4.0.so libdb-4.0.so'
> >
> > At least, I would expect it to be:
> >   library_names='libdb-4.0.so libdb-4.so libdb.so'
>
> Yes, this is confusing. And I don't intend to these inconsitancies :-) As
> unix is consistanly inconsistant.
>
> I'm aiming to make the -devel dependencies smart enough that it won't be
> fooled by these inconsitancies. By introducing a different naming scheme
> the confusion is over...

So you want indeed distinguish between a -ldb, a -ldb-4, and a -ldb-4.0?
These should all get different dependencies so you get the correct
behavior if/when a db4.2 or db5.0 gets released.


    Christiaan


Reply via email to