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

Re: glibc_2.3.6-6_i386.changes REJECTED

Le Mar 11 Avril 2006 15:08, Goswin von Brederlow a écrit :
> > riiiiight, but that makes a nasty circular dependency I thought we 
> > should avoid at any rate ? Shouldn't libc-bin rather conflicts with
> > bad version of the libc ?

> I think that circle is unavoidable.

right, I forgot about the dpkg conflict bug.

but we will need a way to have an answer to that kind of problem. 
kdelibs had it (and currently we have merged the -bin into the kdelibs 
package, which is eluding the problem rather than fixing it), now libc 
faces it, and I think many libs may. the point is that with multiarch, 
you still can have only *one* version of the binaries.

So maybe the famous looooong standing bug will have to be fixed one way 
or another, because it's the only clean way I see to avoid loops (using 
a conflicts instead of a looping depends). With that fixed, we could 
use ${shlibs:Conflicts} for -bin packages that are to be tied to some 
lib package.

> Pierre Habouzit <pierre.habouzit@m4x.org> writes:
> > libc6 preinst calls /usr/bin/ldd to know which ld_so is used on the
> > system. that means that libc-bin has to be extracted *before* libc6
> > is. Though, that part seems to be quite brittle, and I assume we
> > could use another tool than
> That wasn't mentioned in the mail, only ldconfig. I can't see why
> preinst would need to call ldd, after all the ld.so should be the
> same accross the arch and is hardcoded into every binary, including
> libc6 itself. Why isn't that probed during build time? Might be
> tricky on cross compiles but otherwise it is trivial.
> Will dpkg run both libc6.preinst and libc-bin.preinst before
> unpacking either of them or run preinst and unpack each of them in
> turn?
> Worst case it needs a /usr/lib/libc6/ldd.arch-os in libc6.deb and
> call that directly.

we agree on this, it's a problem I've spotted dowgrading from a 
libc6+libc-bin to the current libc6 scheme (that's a good way to know 
what may cause a problem the upgrade).

The ldconfig problem was obvious, this one a bit less ;) still, it may 
suck if there some scenario where preinst of current libc6 could be 
used instead of the new one (I'm a but rusty on my maintainer scripts 
call interleaves... and have not checked if it's possible). If not, 
then that can be dealt with like you said, else we will have to take 
care of ldd, because of the current preinst script.

> > else, you are right, the only thing we have to be sure, is that *a*
> > libc-bin is extracted before libc6 postinst runs, and that should
> > always be OK, since libc6 depends upon libc-bin.
> When doing a full upgrade (stable->unstable) could it happen that apt
> breaks the libc6<->libc-bin depends cycle and put them into seperate
> dpkg calls? I don't remember how smart/stupid libapt was there. It
> might be best to add "apt-get install libc6 libc-bin" to the upgrade
> instructions.

like said, there is an easy way to solve that problem for good: put 
ldconfig/ldd into a "ldconfig" pacakge, that libc6 *and* libc-bin will 
depend upon. no circular dependency is needed, and we can also be sure 
it will always be pulled in before libc6 is.

and libc-bin other things still can remain in a separate package to 
prepare multiarch[1], nothing really vital for the packaging system 
remains in it.

[1] and please, the fact that multiarch will or will not happen for etch
    is not relevant, having a multiarch libc *is* a vital step in the
    multiarch direction, and that has to happen the soonest possible
·O·  Pierre Habouzit
··O                                                madcoder@debian.org
OOO                                                http://www.madism.org

Attachment: pgp4k6JAIrLTL.pgp
Description: PGP signature

Reply to: