Re: Bug#974552: upgrade-reports: libc6/libcrypt split breaks perl during buster->bullseye upgrade
- To: Niko Tyni <ntyni@debian.org>
- Cc: Sven Joachim <svenjoac@gmx.de>, 974552@bugs.debian.org, Niels Thykier <niels@thykier.net>, Alois Wohlschlager <alois1@gmx-topmail.de>, debian-glibc@lists.debian.org
- Subject: Re: Bug#974552: upgrade-reports: libc6/libcrypt split breaks perl during buster->bullseye upgrade
- From: Aurelien Jarno <aurelien@aurel32.net>
- Date: Fri, 20 Nov 2020 09:30:23 +0100
- Message-id: <[🔎] 20201120083023.GG2297@aurel32.net>
- Mail-followup-to: Niko Tyni <ntyni@debian.org>, Sven Joachim <svenjoac@gmx.de>, 974552@bugs.debian.org, Niels Thykier <niels@thykier.net>, Alois Wohlschlager <alois1@gmx-topmail.de>, debian-glibc@lists.debian.org
- In-reply-to: <[🔎] 20201116163919.GA29652@urchin.earth.li>
Hi,
On 2020-11-16 16:39, Niko Tyni wrote:
> On Fri, Nov 13, 2020 at 08:48:19PM +0100, Sven Joachim wrote:
> > On 2020-11-13 18:23 +0100, Niels Thykier wrote:
> >
> > > Control: reassign -1 perl-base
> > > Control: affects -1 upgrade-reports
> > > Control: severity -1 grave
> > >
> > > Hi Perl team,
> > >
> > > I have reassigned this bug to perl because perl-base being essential
> > > must remain functional during an upgrade and AFAICT perl-base fails in
> > > this case here.
> > >
> > > If it is a direct linkage, then you might be needing a Pre-Depends. If
> > > it is an indirect linkage then I am not sure how to fix it. :-/
> >
> > I don't think perl-base is doing anything wrong here, it already uses
> > Pre-Depends. AFAICS the problem is that libcrypt.so.1 can temporarily
> > go missing if libc6 2.31-4 is unpacked before libcrypt1, breaking the
> > assumption that binaries from essential packages are always usable.
I don't understand what happened there. Sure there has been the perl
transition, but the fact that perl depends on libcrypt1, it is the case
for more than 6 months.
> Indeed. As perl-base isn't upgraded yet at that point, there's nothing
> we can do on that side.
>
> Apparently the new libc6 is still considered to satisfy the old perl-base
> pre-dependency even when it (libc6) is only unpacked and its dependencies
> are not yet satisfied. This seems similar to this paragraph from Debian
> policy, section 7.2:
>
> When a package declaring a pre-dependency is about to be unpacked
> the pre-dependency can be satisfied if the depended-on package
> is either fully configured, or even if the depended-on package(s)
> are only in the “Unpacked” or the “Half-Configured” state,
> provided that they have been configured correctly at some point
> in the past (and not removed or partially removed since). In this
> case, both the previously-configured and currently “Unpacked”
> or “Half-Configured” versions must satisfy any version clause
> in the Pre-Depends field.
>
> The libc6 package has been configured correctly in the past, when
> it still contained libcrypt1.
>
> As to the fix, I suspect we need a pre-dependency from libc6 to libcrypt1
> for one release cycle, so that libc6 cannot be unpacked before libcrypt1
> is fully installed.
This has been tried, that works for upgrade, but then apt refuses to
allow new installation of libc6+libxcrypt1, which makes it impossible to
install foreign-arch versions on an existing system.
> 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.
This is something we can try indeed.
Aurelien
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien@aurel32.net http://www.aurel32.net
Reply to: