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

Bug#1072218: apt dist-upgrade fails to install essential packages but exits successfully



Package: apt
Version: 2.6.1
Severity: wishlist

Control: affects -1 + mmdebstrap

Hi David,

do you remember our conversation in #debian-dpkg from 2018?

     } elsif ($options->{variant} eq 'apt') {
         # if we just want to install Essential:yes packages, apt and their
         # dependencies then we can make use of libapt treating apt as
         # implicitly essential. An upgrade with the (currently) empty status
         # file will trigger an installation of the essential packages plus apt. 
         #
         # 2018-09-02, #debian-dpkg on OFTC, times in UTC+2
         # 23:39 < josch> I'll just put it in my script and if it starts
         #                breaking some time I just say it's apt's fault. :P
         # 23:42 < DonKult> that is how it usually works, so yes, do that :P (<- 
         #                  and please add that line next to it so you can
         #                  remind me in 5+ years that I said that after I wrote 
         #                  in the bugreport: "Are you crazy?!? Nobody in his
         #                  right mind would even suggest depending on it!")
         @dl_debs = run_apt_download_progress({
                 APT_ARGV => ['dist-upgrade'],
                 dryrun   => $options->{dryrun},
             },
         );

Well, it is now even six years later. It is time!

The problem first showed up yesterday in the sbuild autopkgtest for riscv:

https://ci.debian.net/data/autopkgtest/testing/riscv64/s/sbuild/47087233/log.gz

Log is also attached for when it gets deleted from ci.d.n but the important
bits are these:

      MarkInstall util-linux:riscv64 < none -> 2.40.1-2 @un uN Ib > FU=0
      Installing libblkid1:riscv64 as PreDepends of util-linux:riscv64
        MarkInstall libblkid1:riscv64 < none -> 2.40.1-2 @un uN > FU=0
      Installing libcap-ng0:riscv64 as PreDepends of util-linux:riscv64
        MarkInstall libcap-ng0:riscv64 < none -> 0.8.5-1 @un uN > FU=0
      Installing libcrypt1:riscv64 as PreDepends of util-linux:riscv64
        MarkInstall libcrypt1:riscv64 < none -> 1:4.4.36-4 @un uN > FU=0
      Installing libmount1:riscv64 as PreDepends of util-linux:riscv64
        MarkInstall libmount1:riscv64 < none -> 2.40.1-2 @un uN > FU=0
      Installing libpam0g:riscv64 as PreDepends of util-linux:riscv64
        MarkInstall libpam0g:riscv64 < none -> 1.5.3-7 @un uN Ib > FU=0
        Installing libaudit1:riscv64 as Depends of libpam0g:riscv64
          libaudit1:riscv64 Depends on libaudit-common:riscv64 < none | 1:3.1.2-2 @un uH > (>= 1:3.1.2-2.1) can't be satisfied!
          libpam0g:riscv64 Depends on libaudit1:riscv64 < none @un H > (>= 1:2.2.1) can't be satisfied! (dep)
        util-linux:riscv64 PreDepends on libpam0g:riscv64 < none @un H > (>= 0.99.7.1) can't be satisfied! (dep)
    [...]
    Setting up usrmerge (39) ...
    Can't exec "mountpoint": No such file or directory at /usr/lib/usrmerge/convert-usrmerge line 431.
    Failed to execute mountpoint -q /lib/modules/: No such file or directory
    E: usrmerge failed.
    dpkg: error processing package usrmerge (--install):
     installed usrmerge package post-installation script subprocess returned error exit status 1

Because apt decides not to install util-linux, the usrmerge postinst fails.
This all boils down to mmdebstrap using the funny "apt dist-upgrade" trick to
let apt choose all the Essential:yes packages plus itself for the mmdebstrap
"apt" chroot variant.

How hard would it be to let apt dist-upgrade fail if it is unable to install an
Essential:yes package?

This bug is certainly wishlist and might as well be marked as wontfix without
much value being lost. But I thought that given your comment back in 2018
including your spot-on prediction (only off by one year!) I should absolutely
share this with you. :)

Thanks!

cheers, josch

Attachment: 47087233.gz
Description: application/gzip


Reply to: