Below are two tables showing the two problem classes that prevent cross compilation on the dependency level. This example tries to satisfy the crossbuild dependencies of all source packages on amd64 as the build architecture for a dummy architecture generated from amd64 (called armhf here) as the host architecture in current Debian sid.

A machine parsable version can be retrieved in dose yaml format

Bugs are associated with packages on this page if they carry the usertag "cross-satisfiability" of the user "debian-cross@lists.debian.org".

You can get an overview of all bugs tagged like that in the Debian bts

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:opam

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
17dh-ocaml:armhf (>= 0.9)

Conflict

# of packages per conflictConflict
90cpp-12:amd64
90cpp:armhf
90gcc-12:armhf
90gcc:armhf
89binutils-x86-64-linux-gnu:armhf
89binutils:amd64
2make:armhf
1build-essential:amd64
1g++-12:armhf
1g++:armhf

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
17 17src:cairo-ocaml (RFA: #932166) src:cryptgps src:cudf src:gd4o (RFA: #934045) src:jsonm src:lablgl src:ocaml-csv src:ocaml-dtools src:ocaml-lastfm src:ocaml-unix-errno src:ocamlgraph src:ocamlpam src:opam src:perl4caml src:xml-light src:xmlm src:xmlrpc-light(*) dh-ocaml:armhf (>= 0.9)

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
90 90src:advi src:ben src:camlimages src:camljava src:camlp-streams src:camlp5 src:camomile src:cothreads src:dose3 src:eliom src:extlib src:findlib src:freetennis src:janest-base src:js-of-ocaml src:js-of-ocaml-ocamlbuild src:lablgtk-extras src:lablgtk2 src:lablgtk3 src:lambda-term src:ledit src:mlpost src:nss-passwords src:nurpawiki src:ocaml-afl-persistent src:ocaml-ao src:ocaml-batteries src:ocaml-bigarray-compat src:ocaml-bitstring src:ocaml-cry src:ocaml-domain-name src:ocaml-dssi src:ocaml-extunix src:ocaml-gen src:ocaml-getopt src:ocaml-integers src:ocaml-ladspa src:ocaml-mad src:ocaml-magic src:ocaml-migrate-parsetree src:ocaml-mm src:ocaml-mmap src:ocaml-mtime src:ocaml-num src:ocaml-odoc src:ocaml-parsexp src:ocaml-portaudio src:ocaml-ptime src:ocaml-pulseaudio src:ocaml-qcheck src:ocaml-sedlex src:ocaml-sha src:ocaml-shout src:ocaml-speex src:ocaml-sqlite3 src:ocaml-stdcompat src:ocaml-taglib src:ocaml-topkg src:ocaml-uucd src:ocaml-uuseg src:ocaml-visitors src:ocaml-x509 src:ocamlbuild src:ocamlcreal src:ocamlnet src:ocamlviz src:ocsigenserver src:ocsipersist src:ocurl src:opam src:ounit (ITA: #934213) src:parmap src:pcre-ocaml src:ppx-custom-printf src:ppx-deriving src:ppx-fields-conv src:ppx-optcomp src:ppx-sexp-conv src:ppx-variants-conv src:ppxlib src:pxp (RFA: #636021) src:pyml src:react src:ulex0.8 src:unison-2.51+4.13.1 src:unison-2.52 src:uutf src:wyrd src:xen src:xmlm(*)build-essentialgccgcc-12cpp-12(*)ocamlgccgcc-12cpp-12 cpp-12:amd64
90 90src:advi src:ben src:camlimages src:camljava src:camlp-streams src:camlp5 src:camomile src:cothreads src:dose3 src:eliom src:extlib src:findlib src:freetennis src:janest-base src:js-of-ocaml src:js-of-ocaml-ocamlbuild src:lablgtk-extras src:lablgtk2 src:lablgtk3 src:lambda-term src:ledit src:mlpost src:nss-passwords src:nurpawiki src:ocaml-afl-persistent src:ocaml-ao src:ocaml-batteries src:ocaml-bigarray-compat src:ocaml-bitstring src:ocaml-cry src:ocaml-domain-name src:ocaml-dssi src:ocaml-extunix src:ocaml-gen src:ocaml-getopt src:ocaml-integers src:ocaml-ladspa src:ocaml-mad src:ocaml-magic src:ocaml-migrate-parsetree src:ocaml-mm src:ocaml-mmap src:ocaml-mtime src:ocaml-num src:ocaml-odoc src:ocaml-parsexp src:ocaml-portaudio src:ocaml-ptime src:ocaml-pulseaudio src:ocaml-qcheck src:ocaml-sedlex src:ocaml-sha src:ocaml-shout src:ocaml-speex src:ocaml-sqlite3 src:ocaml-stdcompat src:ocaml-taglib src:ocaml-topkg src:ocaml-uucd src:ocaml-uuseg src:ocaml-visitors src:ocaml-x509 src:ocamlbuild src:ocamlcreal src:ocamlnet src:ocamlviz src:ocsigenserver src:ocsipersist src:ocurl src:opam src:ounit (ITA: #934213) src:parmap src:pcre-ocaml src:ppx-custom-printf src:ppx-deriving src:ppx-fields-conv src:ppx-optcomp src:ppx-sexp-conv src:ppx-variants-conv src:ppxlib src:pxp (RFA: #636021) src:pyml src:react src:ulex0.8 src:unison-2.51+4.13.1 src:unison-2.52 src:uutf src:wyrd src:xen src:xmlm(*)ocamlgcccpp(*)build-essentialgcccpp cpp:armhf
90 90src:advi src:ben src:camlimages src:camljava src:camlp-streams src:camlp5 src:camomile src:cothreads src:dose3 src:eliom src:extlib src:findlib src:freetennis src:janest-base src:js-of-ocaml src:js-of-ocaml-ocamlbuild src:lablgtk-extras src:lablgtk2 src:lablgtk3 src:lambda-term src:ledit src:mlpost src:nss-passwords src:nurpawiki src:ocaml-afl-persistent src:ocaml-ao src:ocaml-batteries src:ocaml-bigarray-compat src:ocaml-bitstring src:ocaml-cry src:ocaml-domain-name src:ocaml-dssi src:ocaml-extunix src:ocaml-gen src:ocaml-getopt src:ocaml-integers src:ocaml-ladspa src:ocaml-mad src:ocaml-magic src:ocaml-migrate-parsetree src:ocaml-mm src:ocaml-mmap src:ocaml-mtime src:ocaml-num src:ocaml-odoc src:ocaml-parsexp src:ocaml-portaudio src:ocaml-ptime src:ocaml-pulseaudio src:ocaml-qcheck src:ocaml-sedlex src:ocaml-sha src:ocaml-shout src:ocaml-speex src:ocaml-sqlite3 src:ocaml-stdcompat src:ocaml-taglib src:ocaml-topkg src:ocaml-uucd src:ocaml-uuseg src:ocaml-visitors src:ocaml-x509 src:ocamlbuild src:ocamlcreal src:ocamlnet src:ocamlviz src:ocsigenserver src:ocsipersist src:ocurl src:opam src:ounit (ITA: #934213) src:parmap src:pcre-ocaml src:ppx-custom-printf src:ppx-deriving src:ppx-fields-conv src:ppx-optcomp src:ppx-sexp-conv src:ppx-variants-conv src:ppxlib src:pxp (RFA: #636021) src:pyml src:react src:ulex0.8 src:unison-2.51+4.13.1 src:unison-2.52 src:uutf src:wyrd src:xen src:xmlm(*)ocamlgccgcc-12(*)build-essentialgccgcc-12 gcc-12:armhf
90 90src:advi src:ben src:camlimages src:camljava src:camlp-streams src:camlp5 src:camomile src:cothreads src:dose3 src:eliom src:extlib src:findlib src:freetennis src:janest-base src:js-of-ocaml src:js-of-ocaml-ocamlbuild src:lablgtk-extras src:lablgtk2 src:lablgtk3 src:lambda-term src:ledit src:mlpost src:nss-passwords src:nurpawiki src:ocaml-afl-persistent src:ocaml-ao src:ocaml-batteries src:ocaml-bigarray-compat src:ocaml-bitstring src:ocaml-cry src:ocaml-domain-name src:ocaml-dssi src:ocaml-extunix src:ocaml-gen src:ocaml-getopt src:ocaml-integers src:ocaml-ladspa src:ocaml-mad src:ocaml-magic src:ocaml-migrate-parsetree src:ocaml-mm src:ocaml-mmap src:ocaml-mtime src:ocaml-num src:ocaml-odoc src:ocaml-parsexp src:ocaml-portaudio src:ocaml-ptime src:ocaml-pulseaudio src:ocaml-qcheck src:ocaml-sedlex src:ocaml-sha src:ocaml-shout src:ocaml-speex src:ocaml-sqlite3 src:ocaml-stdcompat src:ocaml-taglib src:ocaml-topkg src:ocaml-uucd src:ocaml-uuseg src:ocaml-visitors src:ocaml-x509 src:ocamlbuild src:ocamlcreal src:ocamlnet src:ocamlviz src:ocsigenserver src:ocsipersist src:ocurl src:opam src:ounit (ITA: #934213) src:parmap src:pcre-ocaml src:ppx-custom-printf src:ppx-deriving src:ppx-fields-conv src:ppx-optcomp src:ppx-sexp-conv src:ppx-variants-conv src:ppxlib src:pxp (RFA: #636021) src:pyml src:react src:ulex0.8 src:unison-2.51+4.13.1 src:unison-2.52 src:uutf src:wyrd src:xen src:xmlm(*)ocamlgcc(*)build-essentialgcc gcc:armhf
89 89src:advi src:ben src:camlimages src:camljava src:camlp-streams src:camlp5 src:camomile src:cothreads src:dose3 src:eliom src:extlib src:findlib src:freetennis src:janest-base src:js-of-ocaml src:js-of-ocaml-ocamlbuild src:lablgtk-extras src:lablgtk2 src:lablgtk3 src:lambda-term src:ledit src:mlpost src:nss-passwords src:nurpawiki src:ocaml-afl-persistent src:ocaml-ao src:ocaml-batteries src:ocaml-bigarray-compat src:ocaml-bitstring src:ocaml-cry src:ocaml-domain-name src:ocaml-dssi src:ocaml-extunix src:ocaml-gen src:ocaml-getopt src:ocaml-integers src:ocaml-ladspa src:ocaml-mad src:ocaml-magic src:ocaml-migrate-parsetree src:ocaml-mm src:ocaml-mmap src:ocaml-mtime src:ocaml-num src:ocaml-odoc src:ocaml-parsexp src:ocaml-portaudio src:ocaml-ptime src:ocaml-pulseaudio src:ocaml-qcheck src:ocaml-sedlex src:ocaml-sha src:ocaml-shout src:ocaml-speex src:ocaml-sqlite3 src:ocaml-stdcompat src:ocaml-taglib src:ocaml-topkg src:ocaml-uucd src:ocaml-uuseg src:ocaml-visitors src:ocaml-x509 src:ocamlbuild src:ocamlcreal src:ocamlnet src:ocamlviz src:ocsigenserver src:ocsipersist src:ocurl src:opam src:ounit (ITA: #934213) src:parmap src:pcre-ocaml src:ppx-custom-printf src:ppx-deriving src:ppx-fields-conv src:ppx-optcomp src:ppx-sexp-conv src:ppx-variants-conv src:ppxlib src:pxp (RFA: #636021) src:pyml src:react src:ulex0.8 src:unison-2.51+4.13.1 src:unison-2.52 src:uutf src:wyrd src:xmlm(*)ocamlbinutilsbinutils-x86-64-linux-gnu(*)build-essentialdpkg-devbinutilsbinutils-x86-64-linux-gnu binutils-x86-64-linux-gnu:armhf
89 89src:advi src:ben src:camlimages src:camljava src:camlp-streams src:camlp5 src:camomile src:cothreads src:dose3 src:eliom src:extlib src:findlib src:freetennis src:janest-base src:js-of-ocaml src:js-of-ocaml-ocamlbuild src:lablgtk-extras src:lablgtk2 src:lablgtk3 src:lambda-term src:ledit src:mlpost src:nss-passwords src:nurpawiki src:ocaml-afl-persistent src:ocaml-ao src:ocaml-batteries src:ocaml-bigarray-compat src:ocaml-bitstring src:ocaml-cry src:ocaml-domain-name src:ocaml-dssi src:ocaml-extunix src:ocaml-gen src:ocaml-getopt src:ocaml-integers src:ocaml-ladspa src:ocaml-mad src:ocaml-magic src:ocaml-migrate-parsetree src:ocaml-mm src:ocaml-mmap src:ocaml-mtime src:ocaml-num src:ocaml-odoc src:ocaml-parsexp src:ocaml-portaudio src:ocaml-ptime src:ocaml-pulseaudio src:ocaml-qcheck src:ocaml-sedlex src:ocaml-sha src:ocaml-shout src:ocaml-speex src:ocaml-sqlite3 src:ocaml-stdcompat src:ocaml-taglib src:ocaml-topkg src:ocaml-uucd src:ocaml-uuseg src:ocaml-visitors src:ocaml-x509 src:ocamlbuild src:ocamlcreal src:ocamlnet src:ocamlviz src:ocsigenserver src:ocsipersist src:ocurl src:opam src:ounit (ITA: #934213) src:parmap src:pcre-ocaml src:ppx-custom-printf src:ppx-deriving src:ppx-fields-conv src:ppx-optcomp src:ppx-sexp-conv src:ppx-variants-conv src:ppxlib src:pxp (RFA: #636021) src:pyml src:react src:ulex0.8 src:unison-2.51+4.13.1 src:unison-2.52 src:uutf src:wyrd src:xmlm(*)build-essentialdpkg-devbinutils(*)ocamlbinutils binutils:amd64
2 1src:orpie(*)build-essentialdpkg-devmake-guile(*)opambuild-essentialmake make:armhf
1src:orpie(*)build-essentialdpkg-devmake-guile(*)opambuild-essentialmake-guile
1 1src:orpie(*)build-essential(*)opambuild-essential build-essential:amd64
1 1src:orpie(*)opambuild-essentialg++g++-12(*)build-essentialg++g++-12 g++-12:armhf
1 1src:orpie(*)opambuild-essentialg++(*)build-essentialg++ g++:armhf
1 1src:orpie(*)build-essentialdpkg-devmake(*)opambuild-essentialmake-guile make-guile:armhf
1 1src:orpie(*)build-essentialdpkg-devmake(*)opambuild-essentialmake make:amd64

generated: 20230327T000000Z


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.