Trying to install the amd64 and i386 versions of this package results in the
# apt-get install libmateweather1:i386 libmateweather1:amd64
dpkg: dependency problems prevent configuration of libmateweather1:amd64:
libmateweather1:i386 (1.20.0-1) breaks libmateweather and is installed.
libmateweather1:amd64 (1.20.0-1) provides libmateweather.
dpkg: error processing package libmateweather1:amd64 (--configure):
dependency problems - leaving unconfigured
So the source of the issue seems to be that libquazip5-1:
* Provides the libmateweather virtual package
* Breaks AND Conflicts with the libmateweather virtual package!
* Replaces the libmateweather virtual package
Apt seems to consider that this means libmateweather1:amd64 breaks
libmateweather1:i386 through the libmateweather virtual package which prevents
them from being coinstalled.
One strange thing is that, if I understand 7.6.1 of the Debian Policy Manual
correctly, Breaks + Replaces is not supposed to be used on virtual packages:
| For this usage of Replaces, virtual packages (see Virtual packages -
| Section 7.5) are not considered when looking at a Replaces field. The
| declared as being replaced must be mentioned by their real names.
Maybe that's why Apt is confused in this multi-arch configuration.
Note that, based on 7.6.2, the usual pattern for virtual packages would be
Provides + Conflicts + Replaces:
| In this situation, the package declared as being replaced can be a virtual
| package, so for example, all mail transport agents (MTAs) would have the
| following fields in their control files:
| Provides: mail-transport-agent
| Conflicts: mail-transport-agent
| Replaces: mail-transport-agent
| ensuring that only one MTA can be unpacked at any one time
Finally libmateweather may well have been a real package at some point. However
currently its only existence is through the Provides of libmateweather1. Still
the goal it to state that libmateweather1 breaks this old package (to ensure
upgrades), then a Breaks + version number would probably be the right thing to
(see 7.5 of the policy):
| If a relationship field has a version number attached, only real packages
| be considered to see whether the relationship is satisfied (or the
| violated, for a conflict or breakage). In other words, if a version number is
| specified, this is a request to ignore all Provides for that package name and
| consider only real packages. The package manager will assume that a package
| providing that virtual package is not of the "right" version. A Provides
| may not contain version numbers, and the version number of the concrete
| which provides a particular virtual package will not be considered when
| considering a dependency on or conflict with the virtual package name.
In any case it does not seem like libmateweather1 should combine Breaks and
Note that libmate-panel-applet-4-1 has a similar issue with libmatepanelapplet.
-- System Information:
Debian Release: buster/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Foreign Architectures: amd64
Kernel: Linux 4.16.0-1-686-pae (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8),
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages libmateweather1 depends on:
ii libatk1.0-0 2.28.1-1
ii libc6 2.27-3
ii libcairo-gobject2 1.15.10-3
ii libcairo2 1.15.10-3
ii libgdk-pixbuf2.0-0 2.36.11-2
ii libglib2.0-0 2.56.1-2
ii libgtk-3-0 3.22.29-3
ii libmateweather-common 1.20.0-1
ii libpango-1.0-0 1.42.0-1
ii libpangocairo-1.0-0 1.42.0-1
ii libsoup2.4-1 2.62.1-1
ii libxml2 2.9.4+dfsg1-6.1
libmateweather1 recommends no packages.
libmateweather1 suggests no packages.
-- no debconf information