Re: SASL/LDAP/DB dependency hell. (was: Accepted cyrus-sasl 1.5.27-3.4 (i386 source))
On Wed, Apr 09, 2003 at 11:07:12AM -0400, Stephen Frost wrote:
> * Andreas Metzler (firstname.lastname@example.org) wrote:
> > Actually it is much simpler, many packages are simply not compileable
> > anymore:
> > libldap2-dev depends on libsasl-dev 
> > libsasl-dev depends on libdb2-dev (>= 184.108.40.206-7) 
> > libdb3-dev conflicts with libdb2-dev
> Being not compileable is certainly not a very good thing. One would
> intuitively think that the better thing to do if you're compiling new
> things is to have a 'libdb-dev', which is what we do elsewhere. Of
> course, that means that things which are recompiled are done so with the
> latest version. That is a problem for some people with regard to libdb
> because they have heard of problems with the latest version of libdb.
> I'm not sure I agree with that reasoning personally.
Packages need to know in advance which version of libdb they're going to
be compiled against, because changes in the on-disk format mean that
when they move from one to the next they'll have to convert databases.
Programs that are still using the 1.85 API don't have access to the
DB->upgrade() call and so need to have support in their maintainer
scripts for this. See man-db's config/postinst scripts for an example.
Certainly if I'd known about #180379 at the time I wouldn't have
upgraded man-db to db3, but of course db2 was doomed on sparc (#111288),
so rock and hard place, etc. I don't think it's reasonable to dismiss
doubts like that if they have some reasonable foundation.
Also see #103102 for a real example of the very bad things that happen
if you upgrade a package from one version of libdb to another without
Colin Watson [email@example.com]