Package: libmateweather1
Version: 1.20.0-1
Severity: normal

Dear Maintainer,

Trying to install the amd64 and i386 versions of this package results in the 
following error:

# 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), 
LANGUAGE=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

Reply via email to