libpurple0:i386, libtinfo6:i386 and libasound2:i386 uninstallable
Hi. I wanted to install wine to test a MinGW build of GNU Libidn.
Installing wine32:i386
fails due to conflicting files in libtinfo6/libasound2:
podman run -it --rm docker.io/kpengboy/trisquel:11.0
dpkg --add-architecture i386
apt update
apt install -y wine32
See output:
...
Unpacking libtinfo6:i386 (6.3-2+11.0trisquel0) ...
dpkg: error processing archive /tmp/apt-dpkg-install-FEF4qr/052-libtinfo6_6.3-2+11.0trisquel0_i386.deb (--unpack):
trying to overwrite shared '/usr/share/doc/libtinfo6/changelog.Debian.gz', which is different from other instances of package libtinfo6:i386
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
...
Unpacking libasound2:i386 (1.2.6.1-1ubuntu1+11.0trisquel1) ...
dpkg: error processing archive /tmp/apt-dpkg-install-FEF4qr/173-libasound2_1.2.6.1-1ubuntu1+11.0trisquel1_i386.deb (--unpack):
trying to overwrite shared '/usr/share/doc/libasound2/changelog.Debian.gz', which is different from other instances of package libasound2:i386
...
Errors were encountered while processing:
/tmp/apt-dpkg-install-FEF4qr/052-libtinfo6_6.3-2+11.0trisquel0_i386.deb
/tmp/apt-dpkg-install-FEF4qr/173-libasound2_1.2.6.1-1ubuntu1+11.0trisquel1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Re-running it outputs:
root@c2eedb931c64:/# apt install -y wine32
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
wine32:i386 is already the newest version (6.0.3~repack-1).
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
libaa1:i386 : Depends: libtinfo6:i386 (>= 6) but it is not going to be installed
libasound2-plugins:i386 : Depends: libasound2:i386 (>= 1.2.5) but it is not going to be installed
libcaca0:i386 : Depends: libtinfo6:i386 (>= 6) but it is not going to be installed
libedit2:i386 : Depends: libtinfo6:i386 (>= 6) but it is not going to be installed
libllvm15:i386 : Depends: libtinfo6:i386 (>= 6) but it is not going to be installed
libncurses6:i386 : Depends: libtinfo6:i386 (= 6.3-2+11.0trisquel0) but it is not going to be installed
libncursesw6:i386 : Depends: libtinfo6:i386 (= 6.3-2+11.0trisquel0) but it is not going to be installed
libsdl2-2.0-0:i386 : Depends: libasound2:i386 (>= 1.0.27) but it is not going to be installed
libsndio7.0:i386 : Depends: libasound2:i386 (>= 1.0.17) but it is not going to be installed
libwine:i386 : Depends: libasound2:i386 (>= 1.0.16) but it is not going to be installed
Recommends: libvkd3d-shader1:i386 (>= 1.2) but it is not installable
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
root@c2eedb931c64:/#
Running --fix-broken:
root@c2eedb931c64:/# apt --fix-broken install
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
libasound2:i386 libtinfo6:i386
The following NEW packages will be installed:
libasound2:i386 libtinfo6:i386
0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded.
279 not fully installed or removed.
Need to get 804 kB of archives.
After this operation, 1865 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://ftp.acc.umu.se/mirror/trisquel/packages aramo-updates/main i386 libtinfo6 i386 6.3-2+11.0trisquel0 [364 kB]
Get:2 http://ftp.acc.umu.se/mirror/trisquel/packages aramo-updates/main i386 libasound2 i386 1.2.6.1-1ubuntu1+11.0trisquel1 [440 kB]
Fetched 804 kB in 0s (6710 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 13391 files and directories currently installed.)
Preparing to unpack .../libtinfo6_6.3-2+11.0trisquel0_i386.deb ...
Unpacking libtinfo6:i386 (6.3-2+11.0trisquel0) ...
dpkg: error processing archive /var/cache/apt/archives/libtinfo6_6.3-2+11.0trisquel0_i386.deb (--unpack):
trying to overwrite shared '/usr/share/doc/libtinfo6/changelog.Debian.gz', which is different from other instances of package libtinfo6:i386
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Preparing to unpack .../libasound2_1.2.6.1-1ubuntu1+11.0trisquel1_i386.deb ...
Unpacking libasound2:i386 (1.2.6.1-1ubuntu1+11.0trisquel1) ...
dpkg: error processing archive /var/cache/apt/archives/libasound2_1.2.6.1-1ubuntu1+11.0trisquel1_i386.deb (--unpack):
trying to overwrite shared '/usr/share/doc/libasound2/changelog.Debian.gz', which is different from other instances of package libasound2:i386
Errors were encountered while processing:
/var/cache/apt/archives/libtinfo6_6.3-2+11.0trisquel0_i386.deb
/var/cache/apt/archives/libasound2_1.2.6.1-1ubuntu1+11.0trisquel1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@c2eedb931c64:/#
The reason seems to be the udeb rebuilding of these two packages for amd64 resulting in different changelog file compared to the i386 version, causing conflicts. Ironically both packages comes from dummy rebuilds:
https://gitlab.trisquel.org/trisquel/package-helpers/-/blob/aramo/helpers/make-ncurses https://gitlab.trisquel.org/trisquel/package-helpers/-/blob/aramo/helpers/make-alsa-lib
Any ideas how to resolve this? Or workaround the problem?
Speculating about solutions: fixing #52 would probably have solved this: the only reason the problem happens is because amd64 and i386 packages differs. The only reason Trisquel rebuilds the amd64 package in the first place is to get a udeb, which causes the non-udeb package to also be replaced.
Another solution is to rebuild the package for both amd64 and i386, so at least they are consistent inside Trisquel.
/Simon