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

Re: Bug#974552: upgrade-reports: libc6/libcrypt split breaks perl during buster->bullseye upgrade



Am Freitag, den 20.11.2020, 09:13 +0000 schrieb Niko Tyni:
> I don't think this is related to the recent perl 5.30 -> 5.32
> transition.
> The report is about a buster -> bullseye upgrade, and perl in
> bullseye
> was still at 5.30 at the time.
> 
> In any case, the report says perl (presumably perl-base as well) was
> still at the buster version when the breakage happened, so it didn't
> have the libcrypt1 dependency.

This is indeed the case. perl-base was only upgraded to the bullseye
version after I manually fixed the breakage. (Indeed, when I wrote
"Perl" I actually meant "perl-base", but perl itself was also at the
buster version FWIW.)

> FWIW the breakage can be reproduced just by manually unpacking the
> new
> libc6 on a buster system.
> 
> I don't know why it hasn't been encountered earlier.

I found out by now that the problem actually has been encountered
earlier(#946599, where it broke libc's maintainer scripts). In my case,
it broke the check-support-status hook providd by debian-security-
support. (I'm not sure whether it's such a great idea for dpkg to run
hooks when dependencies are broken, but that's what was happening on my
system.)

> > 
> Yeah, I missed the libcrypt1 -> libc6 dependency. That prevents this
> option. (I wonder if the circular dependency is a factor in apt
> choosing
> the upgrade order that results in this breakage.)

I'm not sure what's going on here, as libcrypt1's libc6 Depends should
be satisfied by the buster version. So it seems to me like installing
libcrypt1 before upgrading libc6 should be strictly better than doing
it the other way round, even purely in terms of satisfaction of
dependencies.

Maybe it's worth investigating why apt decides to proceed the "wrong"
way anyway, should I try setting up a VM to reproduce the problem?

> > > Another option might be to have the new libc6 Conflict with old
> > > versions
> > > of Essential:yes packages that need libcrypt1, forcing those
> > > Essential:yes
> > > packages to get upgraded first. A quick check based on libcrypt1
> > > reverse
> > > dependencies in sid shows perl-base, login and util-linux. I'm
> > > not sure
> > > if this list is exhaustive, though.

Having libc6 Conflict with one of those packages should be enough,
right?

--
Alois

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


Reply to: