[Aptitude-devel] Bug#1070028: aptitude: Extremely alarming warning when pkgs for a foreign architecture will be removed (2 or 3 bugs)
Manny
debbug.aptitude at sideload.33mail.com
Sun Apr 28 21:31:41 BST 2024
Package: aptitude
Version: 0.8.13-3
Severity: normal
X-Debbugs-Cc: debbug.aptitude at sideload.33mail.com
Aptitude gives a quite extreme warning if it is tasked with removing
packages from a foreign architecture. Packages for i386 were
originally installed to support wine32. The following transcript shows
an upgrade from Bullseye to Bookworm.
===8<----------------------------------------
$ aptitude full-upgrade --show-resolver-actions
The following NEW packages will be installed:
…
The following packages will be REMOVED:
…
The following packages will be upgraded:
…
The following packages are RECOMMENDED but will NOT be installed:
e2fsprogs-l10n exfatprogs laptop-detect libatm1 libnss-systemd libpam-cap os-prober thin-provisioning-tools
2130 packages upgraded, 384 newly installed, 451 to remove and 0 not upgraded.
Need to get 0 B/5,556 MB of archives. After unpacking 1,720 MB will be used.
The following packages have unmet dependencies:
virtualbox : Depends: python3 (< 3.10) but 3.11.2-1+b1 is to be installed
asymptote : Depends: libgsl27 (>= 2.7.1) but it is not going to be installed
python3-virtualenv : Depends: python3-pip-whl but it is not going to be installed
Depends: python3-setuptools-whl but it is not going to be installed
filezilla : Depends: libfilezilla34 (>= 0.41.0) but it is not going to be installed
libsemanage1 : Depends: libsemanage-common (= 3.1-1) but 3.4-1 is to be installed
The following actions will resolve these dependencies:
Remove the following packages:
1) libsemanage1 [3.1-1+b2 (now)]
2) virtualbox [6.1.26-dfsg-3 (now)]
3) virtualbox-ext-pack [6.1.26-1 (now)]
4) virtualbox-qt [6.1.26-dfsg-3 (now)]
Install the following packages:
5) libfilezilla-common [0.41.0-2 (stable)]
6) libfilezilla34 [0.41.0-2 (stable)]
7) libgsl27 [2.7.1+dfsg-5 (stable)]
8) python3-pip-whl [23.0.1+dfsg-1 (stable)]
9) python3-setuptools-whl [66.1.1-1 (stable)]
Upgrade the following packages:
10) libgslcblas0 [2.6+dfsg-2 (now) -> 2.7.1+dfsg-5 (stable)]
Leave the following dependencies unresolved:
11) virtualbox-dkms recommends virtualbox (>= 6.1.26-dfsg-3)
12) virtualbox-guest-additions-iso recommends virtualbox (>= 6.1.22)
Accept this solution? [Y/n/q/?] y
The following NEW packages will be installed:
…
The following packages will be REMOVED:
…
The following packages will be upgraded:
…
The following packages are RECOMMENDED but will NOT be installed:
e2fsprogs-l10n exfatprogs laptop-detect libatm1 libnss-systemd libpam-cap os-prober thin-provisioning-tools
2130 packages upgraded, 389 newly installed, 464 to remove and 0 not upgraded.
Need to get 0 B/5,560 MB of archives. After unpacking 1,526 MB will be used.
Do you want to continue? [Y/n/?] y
The following ESSENTIAL packages will be REMOVED!
libcrypt1:i386 libgcc-s1:i386
WARNING: Performing this action will probably cause your system to break!
Do NOT continue unless you know EXACTLY what you are doing!
To continue, type the phrase "I am aware that this is a very bad idea": yikes!
$ aptitude remove wine32:i386; # I would have liked to keep this to manage a Garmin satnav but it’s apparently causing the extreme messaging
$ aptitude full-upgrade --show-resolver-actions
…
WARNING: Performing this action will probably cause your system to break!
Do NOT continue unless you know EXACTLY what you are doing!
To continue, type the phrase "I am aware that this is a very bad idea": wtf
$ aptitude why libcrypt1:i386
i A libcrypt1:i386 Depends libc6:i386 (>= 2.25)
i A libc6:i386 Depends libgcc-s1:i386
$ aptitude why libgcc-s1:i386
i libwine:i386 Depends libc6:i386 (>= 2.29)
i A libc6:i386 Depends libgcc-s1:i386
$ aptitude why libwine:i386
Manually installed, current version 5.0.3-3, priority optional
No dependencies require to install libwine:i386
$ aptitude remove libwine:i386
$ aptitude why libcrypt1:i386
Automatically installed, current version 1:4.4.18-4, priority optional
No dependencies require to install libcrypt1:i386
$ aptitude why libc6:i386
Automatically installed, current version 2.31-13+deb11u8, priority optional
No dependencies require to install libc6:i386
$ aptitude why zlib1g:i386
Automatically installed, current version 1:1.2.11.dfsg-2+deb11u2, priority required
No dependencies require to install zlib1g:i386
$ aptitude why libgcc-s1:i386
Automatically installed, current version 10.2.1-6, priority optional
No dependencies require to install libgcc-s1:i386
$ aptitude remove libcrypt1:i386 libc6:i386 zlib1g:i386 libgcc-s1:i386
The following packages will be REMOVED:
libc6:i386 libcom-err2:i386{u} libcrypt1:i386 libgcc-s1:i386{u} libgssapi-krb5-2:i386{u} libidn2-0:i386{u} libk5crypto3:i386{u} libkeyutils1:i386{u} libkrb5-3:i386{u} libkrb5support0:i386{u}
libnsl2:i386{u} libnss-nis:i386{u} libnss-nisplus:i386{u} libssl1.1:i386{u} libtirpc3:i386{u} libunistring2:i386{u} zlib1g:i386
0 packages upgraded, 0 newly installed, 17 to remove and 2217 not upgraded.
Need to get 0 B of archives. After unpacking 21.9 MB will be freed.
Do you want to continue? [Y/n/?] y
The following ESSENTIAL packages will be REMOVED!
libcrypt1:i386 libgcc-s1:i386
WARNING: Performing this action will probably cause your system to break!
Do NOT continue unless you know EXACTLY what you are doing!
To continue, type the phrase "I am aware that this is a very bad idea": why are those packages “essential”?
$ aptitude search '?essential'; # this demonstrates a 2nd bug
i apt - commandline package manager
i base-files - Debian base system miscellaneous files
i base-passwd - Debian base system master password and group files
i bash - GNU Bourne Again SHell
i bsdutils - basic utilities from 4.4BSD-Lite
i coreutils - GNU core utilities
i dash - POSIX-compliant shell
i debianutils - Miscellaneous utilities specific to Debian
i diffutils - File comparison utilities
i dpkg - Debian package management system
i findutils - utilities for finding files--find, xargs
i grep - GNU grep, egrep and fgrep
i gzip - GNU compression utilities
i hostname - utility to set/show the host name or domain name
i init-system-helpers - helper tools for all init systems
i libc-bin - GNU C Library: Binaries
i login - system login tools
i ncurses-base - basic terminal type definitions
i ncurses-bin - terminal-related programs and man pages
i perl-base - minimal Perl system
i sed - GNU stream editor for filtering/transforming text
i sysvinit-utils - System-V-like utilities
i tar - GNU version of the tar archiving utility
i util-linux - miscellaneous system utilities
$ dpkg-query -Wf '${Package;-40}${Essential}\n' | grep yes
base-files yes
base-passwd yes
bash yes
bsdutils yes
coreutils yes
dash yes
debianutils yes
diffutils yes
dpkg yes
findutils yes
grep yes
gzip yes
hostname yes
init-system-helpers yes
libc-bin yes
login yes
ncurses-base yes
ncurses-bin yes
perl-base yes
sed yes
sysvinit-utils yes
tar yes
util-linux yes
===8<----------------------------------------
The warning seemed misplaced. It did not make sense that i386 packages
on an amd64 architecture would be “essential” and warrant forcing the
user to type “I am aware that this is a very bad idea”. But this
warning triggers enough terror to likely cause most people to doubt
themselves:
> WARNING: Performing this action will probably cause your system to break!
> Do NOT continue unless you know EXACTLY what you are doing!
> To continue, type the phrase "I am aware that this is a very bad idea":
I was performing an offline dist upgrade. I could not consciously
assert that I had enough confidence to say I knew exactly what I was
doing. I did a search of essential packages to try to get to the
bottom of why aptitude detects the packages libcrypt1:i386 and
libgcc-s1:i386 are “essential”. It seemed important to gain more
understanding of the situation given the gravity of this warning. As
you can see from the search, those two packages are not even
considered essential. Of course that just means there’s something
further that I do not understand. So I had to shutdown and travel to
where I could get online to look for answers. It turns out other
people have encountered the same extreme warning over the same foreign
arch packages. One accounting is here:
https://web.archive.org/web/20240301234748/www.sobyte.net/post/2023-07/dpkg-i386/
Another post was in stackexchange.
There are 3 bugs here:
1) Triggering an extreme yet false warning
2) Inconsistency between different functions of the same the tool. The
“aptitude search '?essential'” command indicates no i386 packages are
essential. If an essential package is not in that list, then the
full-upgrade procedure should either not treat it as such, or it
should tell users why it is essential. It does not supply enough
information for users to investigate.
3) The packages libcrypt1:i386 and libgcc-s1:i386 were needed by
wine32:i386. There was no apparent reason for aptitude to call for
their removal. This is an earlier transcript excerpt that compelled me
to remove it:
===8<----------------------------------------
The following packages have unmet dependencies:
virtualbox : Depends: python3 (< 3.10) but 3.11.2-1+b1 is to be installed
asymptote : Depends: libgsl27 (>= 2.7.1) but it is not going to be installed
python3-virtualenv : Depends: python3-pip-whl but it is not going to be installed
Depends: python3-setuptools-whl but it is not going to be installed
sip-tester : Depends: libgsl27 (>= 2.7.1) but it is not going to be installed
filezilla : Depends: libfilezilla34 (>= 0.41.0) but it is not going to be installed
wine32:i386 : Depends: libc6:i386 (>= 2.28) but it is not going to be installed
Depends: libwine:i386 (= 5.0.3-3) but it is not going to be installed
libsemanage1 : Depends: libsemanage-common (= 3.1-1) but 3.4-1 is to be installed
===8<----------------------------------------
It probably needs to say why the wine32:i386 dependencies are not
going to be installed.
-- Package-specific info:
Terminal: screen.xterm-256color
$DISPLAY is set.
which aptitude: /usr/bin/aptitude
aptitude version information:
aptitude 0.8.13
Compiler: g++ 12.1.0
Compiled against:
apt version 6.0.0
NCurses version 6.3
libsigc++ version: 2.10.8
Gtk+ support disabled.
Qt support disabled.
Current library versions:
NCurses version: ncurses 6.4.20221231
cwidget version: 0.5.18
Apt version: 6.0.0
More information about the Aptitude-devel
mailing list