Bug#1065482: dselect-upgrade does not convert pre-depends on virtual package to automatic installation
Package: apt
Version: 2.6.1
Severity: minor
X-Debbugs-Cc: sjr@debian.org
Hi,
testing in docker:
$ docker run --rm -it debian
root@239c2646db6b:/# apt-get update
Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 Packages [8786 kB]
Get:5 http://deb.debian.org/debian bookworm-updates/main amd64 Packages [12.7 kB]
Get:6 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages [144 kB]
Fetched 9197 kB in 1s (8973 kB/s)
Reading package lists... Done
root@239c2646db6b:/# apt-cache dumpavail | dpkg --update-avail
Replacing available packages info, using -.
Information about 63465 packages was updated.
root@239c2646db6b:/# dpkg --clear-selections
root@239c2646db6b:/# dpkg --set-selections <<EOF
> apt install
> e2fsprogs install
> tzdata install
> mount install
> usr-is-merged install
> EOF
root@239c2646db6b:/# apt-get dselect-upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages have unmet dependencies:
base-files : PreDepends: awk
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
E: Internal error, problem resolver broke stuff
If I add "mawk install" to the list, the dselect-upgrade becomes a
no-op, and all packages (including mawk) are marked as automatically
installed.
If I add "vim install" to the list, vim and its dependencies are
installed in addition, and vim is the only package marked manually
installed.
This is very close to the desired behaviour, where I'd like to specify
as few packages as possible in the dpkg selection, and have apt find a
valid solution that has as many packages marked auto-installed as
possible.
Since mawk is already installed at this point, the PreDepends should
also behave like a normal Depends, and simply pull in the existing
package that provides awk (and ideally keep the behaviour where awk is
marked auto-installed, since it is not explicitly requested).
Presumably, the auto flag on mawk is deduced because it is pulled in by
an essential package, that makes sense and should probably stay that
way.
Simon
-- System Information:
Debian Release: 12.5
APT prefers stable-security
APT policy: (500, 'stable-security'), (500, 'proposed-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 6.1.0-18-amd64 (SMP w/20 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages apt depends on:
ii adduser 3.134
ii debian-archive-keyring 2023.3+deb12u1
ii gpgv 2.2.40-1.1
ii libapt-pkg6.0 2.6.1
ii libc6 2.36-9+deb12u4
ii libgcc-s1 12.2.0-14
ii libgnutls30 3.7.9-2+deb12u2
ii libseccomp2 2.5.4-1+b3
ii libstdc++6 12.2.0-14
ii libsystemd0 252.22-1~deb12u1
Versions of packages apt recommends:
ii ca-certificates 20230311
Versions of packages apt suggests:
pn apt-doc <none>
ii aptitude 0.8.13-5
ii dpkg-dev 1.21.22
ii gnupg 2.2.40-1.1
pn powermgmt-base <none>
-- no debconf information
Reply to: