Below are two tables showing the two problem classes that prevent co-installation of Multi-Arch:same binaries
For every M-A:same package we create a dummy package with the -pseudo prefix which depends on that package for amd64 and a dummy architecture generated from amd64 (called armhf here).
A machine parsable version can be retrieved in dose yaml format
Hover over a package name with your cursor for architecture and version information. Hovering over the arrows in the depchain columns will show the dependency that led from one package in the chain to the next.
The following is a summary of the full "missing" and "conflict" tables below. It only shows the first and last columns of the full tables and only displays the top 10 rows.
|# of packages per conflict||Conflict|
The packages in the third column cannot satisfy their (possibly transitive) dependencies because the last package(s) in the first depchain have an unsatisfied conflict which is shown in the last column. The second depchain column shows the dependency chain(s) to the package which the last package(s) in the first depchain conflict with. Sometimes, multiple dependency chains sharing the same conflict exist. Hovering over the arrows in the depchains column with your cursor will show the dependency that led from one package in the chain to the next.
The output is first grouped by the shared conflicting dependency (last column) and then by the shared dependency chains (fourth and fifth column). The groups are sorted by the number of packages sharing the conflict in the last column. Within each group, the output is sorted by the number of packages sharing the same dependency chains.
|# of packages per conflict||# of packages per depchain||packages with (possibly transitive) conflicting dependencies||Depchain 1||Depchain2||Conflict|
|3||1||libdpdk-dev-pseudo||(*) → libdpdk-dev → libipsec-mb-dev → libipsec-mb1 →||(*) → libdpdk-dev → libipsec-mb-dev → libipsec-mb1||libipsec-mb1:armhf|
|1||librte-meta-all-pseudo||(*) → librte-meta-all → librte-crypto-ipsec-mb22 → libipsec-mb1 →||(*) → librte-meta-all → librte-crypto-ipsec-mb22 → libipsec-mb1|
|1||librte-meta-allpmds-pseudo||(*) → librte-meta-allpmds → librte-crypto-ipsec-mb22 → libipsec-mb1 →||(*) → librte-meta-allpmds → librte-crypto-ipsec-mb22 → libipsec-mb1|
|2||1||librte-crypto-ipsec-mb22-pseudo||(*) → librte-crypto-ipsec-mb22 → libipsec-mb1 →||(*) → librte-crypto-ipsec-mb22 → libipsec-mb1||libipsec-mb1:amd64|
|1||librte-meta-crypto-pseudo||(*) → librte-meta-crypto → librte-crypto-ipsec-mb22 → libipsec-mb1 →||(*) → librte-meta-crypto → librte-crypto-ipsec-mb22 → libipsec-mb1|
|1||1||libdpdk-dev-pseudo||(*) → libdpdk-dev → libipsec-mb-dev →||(*) → libdpdk-dev → libipsec-mb-dev||libipsec-mb-dev:armhf|
The JSON data used to generate these pages was computed using botch, the bootstrap/build ordering tool chain. The source code of botch can be redistributed under the terms of the LGPL3+ with an OCaml linking exception. The source code can be retrieved from https://salsa.debian.org/debian-bootstrap-team/botch
The html pages were generated by code which can be retrieved from https://salsa.debian.org/debian-bootstrap-team/boott and which can be redistributed under the terms of the AGPL3+
For questions and bugreports please contact j [dot] schauer [at] email [dot] de.