Package: ibverbs-providers
Version: 17.1-2
Severity: normal

Dear Maintainer,

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

# apt-get install ibverbs-providers:amd64 ibverbs-providers:i386
[...]
Unpacking ibverbs-providers:i386 (17.1-1) ...
Processing triggers for libc-bin (2.27-3) ...
dpkg: dependency problems prevent configuration of ibverbs-providers:i386:
 ibverbs-providers:amd64 (17.1-1) breaks libcxgb3-1 and is installed.
  ibverbs-providers:i386 (17.1-1) provides libcxgb3-1.
 ibverbs-providers:amd64 (17.1-1) breaks libipathverbs1 and is installed.
  ibverbs-providers:i386 (17.1-1) provides libipathverbs1.
 ibverbs-providers:amd64 (17.1-1) breaks libmlx4-1 and is installed.
  ibverbs-providers:i386 (17.1-1) provides libmlx4-1.
 ibverbs-providers:amd64 (17.1-1) breaks libmlx5-1 and is installed.
  ibverbs-providers:i386 (17.1-1) provides libmlx5-1.
 ibverbs-providers:amd64 (17.1-1) breaks libmthca1 and is installed.
  ibverbs-providers:i386 (17.1-1) provides libmthca1.
 ibverbs-providers:amd64 (17.1-1) breaks libnes1 and is installed.
  ibverbs-providers:i386 (17.1-1) provides libnes1.

dpkg: error processing package ibverbs-providers:i386 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 ibverbs-providers:i386
E: Sub-process /usr/bin/dpkg returned an error code (1)


So the source of the issue seems to be that ibverbs-providers:
* Provides a bunch of virtual packages
* Breaks + Replaces these virtual packages

Apt seems to consider that this means ibverbs-providers:amd64 breaks 
ibverbs-providers:i386 through the virtual packages 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:
http://www.chiark.greenend.org.uk/doc/debian-policy/policy.html/ch-relationships.html#s7.6.1

| For this usage of Replaces, virtual packages (see Virtual packages - 
Provides, 
| Section 7.5) are not considered when looking at a Replaces field. The 
packages 
| 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

Seems like something to try to see if it fixes the issue.


-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.15.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages ibverbs-providers depends on:
ii  libc6        2.27-3
ii  libibverbs1  17.1-2

ibverbs-providers recommends no packages.

ibverbs-providers suggests no packages.

-- no debconf information

Reply via email to