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.

src:ros-ros-comm

Top 10 summary

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.

Missing

# of packages per missingUnsatisfied dependency
4python3-genpy:armhf
4python3-roscpp-msg:armhf
4python3-rosgraph-msgs:armhf
4python3-rosgraph:armhf
4python3-roslib:armhf
4python3-rospkg:armhf
4python3-std-msgs:armhf

Conflict

# of packages per conflictConflict
20libaprutil1-dev:amd64
10libapr1-dev:armhf
7libapr1-dev:amd64
5libassuan-dev:amd64
5libgpgme11-dev:armhf
4python3-minimal:armhf
4python3-numpy:amd64
4python3-yaml:amd64
4python3.12-minimal:amd64
4python3.12:amd64

missing

The packages in the third column cannot satisfy their (possibly transitive) dependencies because of the unsatisfied dependency in the last column. This is mostly because the binary package providing the dependency in the last column is Multi-Arch:no. Some of these packages need to be Multi-Arch:foreign instead. In some other cases, Build-Depends can be annotated with :native. The depchains column shows the dependency chain(s) from the packages in the third column to the unsatisfied dependency in the last column. The "(*)" placeholder in the depchains column represents any package in the third column. 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 unsatisfied dependency (last column) and then by shared dependency chain (fourth column). The groups are sorted by the number of packages missing the dependency in the last column. Within each group, the output is sorted by the number of packages sharing the same dependency chain.

# of packages per missing# of packages per depchainpackages with missing (possibly transitive) dependenciesDepchainsUnsatisfied dependency
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospy python3-genpy:armhf
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devpython3-rospy
1librviz-dev-pseudo(*)librviz-devpython3-rospy
1python3-rospy-pseudo(*)python3-rospy
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospy python3-roscpp-msg:armhf
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devpython3-rospy
1librviz-dev-pseudo(*)librviz-devpython3-rospy
1python3-rospy-pseudo(*)python3-rospy
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospy python3-rosgraph-msgs:armhf
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devpython3-rospy
1librviz-dev-pseudo(*)librviz-devpython3-rospy
1python3-rospy-pseudo(*)python3-rospy
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospy python3-rosgraph:armhf
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devpython3-rospy
1librviz-dev-pseudo(*)librviz-devpython3-rospy
1python3-rospy-pseudo(*)python3-rospy
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospy python3-roslib:armhf
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devpython3-rospy
1librviz-dev-pseudo(*)librviz-devpython3-rospy
1python3-rospy-pseudo(*)python3-rospy
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospy python3-rospkg:armhf
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devpython3-rospy
1librviz-dev-pseudo(*)librviz-devpython3-rospy
1python3-rospy-pseudo(*)python3-rospy
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospy python3-std-msgs:armhf
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devpython3-rospy
1librviz-dev-pseudo(*)librviz-devpython3-rospy
1python3-rospy-pseudo(*)python3-rospy

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 depchainpackages with (possibly transitive) conflicting dependenciesDepchain 1Depchain2Conflict
20 1libactionlib-dev-pseudo(*)libactionlib-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libactionlib-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev libaprutil1-dev:amd64
1libbondcpp-dev-pseudo(*)libbondcpp-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libbondcpp-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libcamera-info-manager-dev-pseudo(*)libcamera-info-manager-devlibimage-transport-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libcamera-info-manager-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libcollada-parser-dev-pseudo(*)libcollada-parser-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libcollada-parser-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libdiagnostic-aggregator-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libdiagnostic-updater-dev-pseudo(*)libdiagnostic-updater-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libdiagnostic-updater-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1liblaser-geometry-dev-pseudo(*)liblaser-geometry-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)liblaser-geometry-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libmessage-filters-dev-pseudo(*)libmessage-filters-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libmessage-filters-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libmrpt-ros1bridge-dev-pseudo(*)libmrpt-ros1bridge-devlibcv-bridge-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libmrpt-ros1bridge-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libopencv-apps-dev-pseudo(*)libopencv-apps-devlibcv-bridge-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libopencv-apps-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libpcl-conversions-dev-pseudo(*)libpcl-conversions-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libpcl-conversions-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1librosbag-dev-pseudo(*)librosbag-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)librosbag-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libroscpp-dev-pseudo(*)libroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libself-test-dev-pseudo(*)libself-test-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libself-test-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libtf2-kdl-dev-pseudo(*)libtf2-kdl-devlibtf2-ros-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libtf2-kdl-devlibtf2-ros-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libtf2-ros-dev-pseudo(*)libtf2-ros-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libtf2-ros-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libtf2-sensor-msgs-dev-pseudo(*)libtf2-sensor-msgs-devlibtf2-ros-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libtf2-sensor-msgs-devlibtf2-ros-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1libtopic-tools-dev-pseudo(*)libtopic-tools-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)libtopic-tools-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1liburdf-dev-pseudo(*)liburdf-devlibrosconsole-bridge-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)liburdf-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
1liburdf-parser-plugin-dev-pseudo(*)liburdf-parser-plugin-devliburdf-devlibrosconsole-bridge-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev(*)liburdf-parser-plugin-devliburdf-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibaprutil1-dev
10 1libactionlib-dev-pseudo(*)libactionlib-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libactionlib-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev libapr1-dev:armhf
1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libdiagnostic-aggregator-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1liblaser-geometry-dev-pseudo(*)liblaser-geometry-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)liblaser-geometry-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1libmrpt-ros1bridge-dev-pseudo(*)libmrpt-ros1bridge-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libmrpt-ros1bridge-devlibcv-bridge-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1libopencv-apps-dev-pseudo(*)libopencv-apps-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libopencv-apps-devlibcv-bridge-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1libpcl-conversions-dev-pseudo(*)libpcl-conversions-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libpcl-conversions-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1librosbag-dev-pseudo(*)librosbag-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)librosbag-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1libtf2-kdl-dev-pseudo(*)libtf2-kdl-devlibtf2-ros-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libtf2-kdl-devlibtf2-ros-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1libtf2-ros-dev-pseudo(*)libtf2-ros-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libtf2-ros-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1libtf2-sensor-msgs-dev-pseudo(*)libtf2-sensor-msgs-devlibtf2-ros-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libtf2-sensor-msgs-devlibtf2-ros-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev
7 1libbondcpp-dev-pseudo(*)libbondcpp-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libbondcpp-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev libapr1-dev:amd64
1libcollada-parser-dev-pseudo(*)libcollada-parser-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libcollada-parser-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1libdiagnostic-updater-dev-pseudo(*)libdiagnostic-updater-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libdiagnostic-updater-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1libmessage-filters-dev-pseudo(*)libmessage-filters-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libmessage-filters-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1libroscpp-dev-pseudo(*)libroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1libself-test-dev-pseudo(*)libself-test-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libself-test-devlibroscpp-devlibrosconsole-devliblog4cxx-devlibapr1-dev
1libtopic-tools-dev-pseudo(*)libtopic-tools-devlibrosconsole-devliblog4cxx-devlibapr1-dev(*)libtopic-tools-devlibrosconsole-devliblog4cxx-devlibapr1-dev
5 1libmrpt-ros1bridge-dev-pseudo(*)libmrpt-ros1bridge-devlibrosbag-storage-devlibgpgme-devlibassuan-dev(*)libmrpt-ros1bridge-devlibrosbag-storage-devlibgpgme-devlibassuan-dev libassuan-dev:amd64
1libpcl-ros-dev-pseudo(*)libpcl-ros-devlibrosbag-devlibrosbag-storage-devlibgpgme-devlibassuan-dev(*)libpcl-ros-devlibrosbag-devlibrosbag-storage-devlibgpgme-devlibassuan-dev
1librosbag-dev-pseudo(*)librosbag-devlibrosbag-storage-devlibgpgme-devlibassuan-dev(*)librosbag-devlibrosbag-storage-devlibgpgme-devlibassuan-dev
1librosbag-storage-dev-pseudo(*)librosbag-storage-devlibgpgme-devlibassuan-dev(*)librosbag-storage-devlibgpgme-devlibassuan-dev
1librviz-dev-pseudo(*)librviz-devlibrosbag-devlibrosbag-storage-devlibgpgme-devlibassuan-dev(*)librviz-devlibrosbag-devlibrosbag-storage-devlibgpgme-devlibassuan-dev
5 1libmrpt-ros1bridge-dev-pseudo(*)libmrpt-ros1bridge-devlibrosbag-storage-devlibgpgme-dev(*)libmrpt-ros1bridge-devlibrosbag-storage-devlibgpgme-dev libgpgme11-dev:armhf
1libpcl-ros-dev-pseudo(*)libpcl-ros-devlibrosbag-devlibrosbag-storage-devlibgpgme-dev(*)libpcl-ros-devlibrosbag-devlibrosbag-storage-devlibgpgme-dev
1librosbag-dev-pseudo(*)librosbag-devlibrosbag-storage-devlibgpgme-dev(*)librosbag-devlibrosbag-storage-devlibgpgme-dev
1librosbag-storage-dev-pseudo(*)librosbag-storage-devlibgpgme-dev(*)librosbag-storage-devlibgpgme-dev
1librviz-dev-pseudo(*)librviz-devlibrosbag-devlibrosbag-storage-devlibgpgme-dev(*)librviz-devlibrosbag-devlibrosbag-storage-devlibgpgme-dev
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospypython3-numpypython3python3-minimal(*)libdiagnostic-aggregator-devpython3-rospypython3-numpypython3python3-minimal python3-minimal:armhf
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devlibtf2-ros-devlibactionlib-devpython3python3-minimal(*)libinteractive-markers-devpython3-rospypython3-numpypython3python3-minimal
1librviz-dev-pseudo(*)librviz-devpython3-rospypython3-numpypython3python3-minimal(*)librviz-devlibmap-msgs-devros-message-generationpython3python3-minimal
1python3-rospy-pseudo(*)python3-rospypython3-numpypython3python3-minimal(*)python3-rospypython3-numpypython3python3-minimal
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospypython3-numpy(*)libdiagnostic-aggregator-devpython3-rospypython3-numpy python3-numpy:amd64
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devpython3-rospypython3-numpy(*)libinteractive-markers-devpython3-rospypython3-numpy
1librviz-dev-pseudo(*)librviz-devpython3-rospypython3-numpy(*)librviz-devpython3-rospypython3-numpy
1python3-rospy-pseudo(*)python3-rospypython3-numpy(*)python3-rospypython3-numpy
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospypython3-yaml(*)libdiagnostic-aggregator-devpython3-rospypython3-yaml python3-yaml:amd64
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devpython3-rospypython3-yaml(*)libinteractive-markers-devpython3-rospypython3-yaml
1librviz-dev-pseudo(*)librviz-devpython3-rospypython3-yaml(*)librviz-devpython3-rospypython3-yaml
1python3-rospy-pseudo(*)python3-rospypython3-yaml(*)python3-rospypython3-yaml
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospypython3-numpypython3python3.12python3.12-minimal(*)libdiagnostic-aggregator-devpython3-rospypython3-numpypython3python3-minimalpython3.12-minimal python3.12-minimal:amd64
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devpython3-rospypython3-numpypython3python3.12python3.12-minimal(*)libinteractive-markers-devlibtf2-ros-devlibactionlib-devpython3python3-minimalpython3.12-minimal
1librviz-dev-pseudo(*)librviz-devlibmap-msgs-devros-message-generationpython3python3.12python3.12-minimal(*)librviz-devpython3-rospypython3-numpypython3python3-minimalpython3.12-minimal
1python3-rospy-pseudo(*)python3-rospypython3-numpypython3python3.12python3.12-minimal(*)python3-rospypython3-numpypython3python3-minimalpython3.12-minimal
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospypython3-numpypython3python3.12(*)libdiagnostic-aggregator-devpython3-rospypython3-numpypython3python3.12 python3.12:amd64
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devpython3-rospypython3-numpypython3python3.12(*)libinteractive-markers-devlibtf2-ros-devlibactionlib-devpython3python3.12
1librviz-dev-pseudo(*)librviz-devlibmap-msgs-devros-message-generationpython3python3.12(*)librviz-devpython3-rospypython3-numpypython3python3.12
1python3-rospy-pseudo(*)python3-rospypython3-numpypython3python3.12(*)python3-rospypython3-numpypython3python3.12
4 1libdiagnostic-aggregator-dev-pseudo(*)libdiagnostic-aggregator-devpython3-rospypython3-numpypython3(*)libdiagnostic-aggregator-devpython3-rospypython3-numpypython3 python3:amd64
1libinteractive-markers-dev-pseudo(*)libinteractive-markers-devpython3-rospypython3-numpypython3(*)libinteractive-markers-devlibtf2-ros-devlibactionlib-devpython3
1librviz-dev-pseudo(*)librviz-devlibmap-msgs-devros-message-generationpython3(*)librviz-devpython3-rospypython3-numpypython3
1python3-rospy-pseudo(*)python3-rospypython3-numpypython3(*)python3-rospypython3-numpypython3

generated: 20241216T000000Z


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.