tiff5/tipa: libtiff5:amd64 and libtiff5:i386 cannot be installed together

Bug #2051013 reported by Markus Kitsinger
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SavOS
Fix Released
High
Rob Savoury

Bug Description

Base Ubuntu version:
22.04 (jammy)

Distribution in use:
Kubuntu

All SavOS PPAs used:
backports
build-tools
curl34
display
encryption
ffmpeg4
ffmpeg5
ffmpeg6
ffmpeg
fonts
games
gimp
gpg
graphics
handbrake
inkscape
minisign
mpv
multimedia
telegram
utilities

All other PPAs used:
adoptium (eclipse temurin JDK)
azlux (a few utilities)
docker
fish shell release 3
git-core
git-lfs
github-cli
google-chrome
waterfox
javinator9889 (discord)
libreoffice fresh
mwt (zoom)
nrbrtx's libssl1 ppa
phoerious's keepassxc ppa
signal
slack
sublime-text
syncthing
tomtomtom's yt-dlp ppa
winehq

Bug details:

I get the following error when trying to run `apt-get upgrade`:

```
The following packages have unmet dependencies:
 libtiff5 : Breaks: libtiff5:i386 (!= 4.4.0-4ubuntu3.3+22.04.sav1) but 4.4.0-4ubuntu3.3+22.04.sav0 is installed
 libtiff5:i386 : Breaks: libtiff5 (!= 4.4.0-4ubuntu3.3+22.04.sav0) but 4.4.0-4ubuntu3.3+22.04.sav1 is installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
```

`apt-get install -f --allow-downgrades` has the following output:
```
The following additional packages will be installed:
  libtiff5:i386
The following packages will be upgraded:
  libtiff5:i386
1 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.
432 not fully installed or removed.
Need to get 0 B/217 kB of archives.
After this operation, 1,024 B of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 278799 files and directories currently installed.)
Preparing to unpack .../libtiff5_4.4.0-4ubuntu3.3+22.04.sav1_i386.deb ...
Unpacking libtiff5:i386 (4.4.0-4ubuntu3.3+22.04.sav1) over (4.4.0-4ubuntu3.3+22.04.sav0) ...
dpkg: error processing archive /var/cache/apt/archives/libtiff5_4.4.0-4ubuntu3.3+22.04.sav1_i386.deb (--unpack):
 trying to overwrite shared '/usr/share/doc/libtiff5/changelog.Debian.gz', which is different from other instances of package libtiff5:i386
Errors were encountered while processing:
 /var/cache/apt/archives/libtiff5_4.4.0-4ubuntu3.3+22.04.sav1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
```

I am using other third party apt repos, but given that the libtiff5 packages in question are from your multimedia PPA, I don't think my other apt repos are relevant.

Revision history for this message
Rob Savoury (savoury1) wrote (last edit ):

Thanks for reporting this issue. The background is that since Ubuntu 20.04 Focal there is an i386 whitelist (see [1] [2] for more information) that determines which packages for Ubuntu >= 20.04 will be built for i386 architecture. This is due to Ubuntu no longer offering a full i386 port for newer releases. The result of that is some real headaches for PPA maintainers such as myself, in certain packaging situations such as this one!

In the case of tiff, new libtiff6 is now packaged at my PPAs (currently at version 4.6.0) but libtiff5 had already been updated to 4.4.0 (the final version with the libtiff5 SONAME) at my PPAs. So it is useful to backport new security fixes (patches for various CVE issues) for libtiff5 at my PPAs, due libtiff5 being required by so much other software and due many people already having 4.4.0 version installed on their systems. But, with src:tiff already at 4.6.0 and libtiff5 being built by src:tiff 4.4.0 the older has to use a different source name.

Simply renaming src:tiff to src:tiff5 (with similar renaming often done for "official" Debian/Ubuntu packages where an older library is still required) results in Launchpad not building libtiff5:i386 for Ubuntu >= 20.04 due src:tiff5 being a new source package name that is NOT on the Launchpad i386 whitelist. To work around this issue for various packages that are required in the build process I sometimes choose a non-related source package that IS on the Launchpad i386 whitelist to allow successful builds of i386 binaries on Ubuntu >= 20.04, when the actual source I am building is NOT on the i386 whitelist.

In this case I chose src:tipa for i386 builds of libtiff5, but I did not consider the fact that the changelog file would not be equal to that from the amd64 builds of libtiff5 (created from src:tiff5 packaging). So, I have now done rebuilds of libtiff5 for both amd64 AND i386 using the "borrowed" src:tipa (and again, that unrelated source name is simply being used due it being on the Launchpad i386 whitelist). This means the changelog file will now be identical and the amd64 and i386 packages should be co-installable (ie. for Wine use).

[1] https://wiki.ubuntu.com/i386
[2] https://discourse.ubuntu.com/t/community-process-for-32-bit-compatibility/12598

Changed in savos:
assignee: nobody → Rob Savoury (savoury1)
importance: Undecided → High
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.