Using edos-debcheck

Checking that Emdebian packages are installable

edos-debcheck checks the dependency information of a Packages file from a Debian repository, e.g. the Emdebian target repository.

With an incomplete repository, edos-debcheck can show where new packages need to be built to fill out the repository. Notes:

Where to start

edos-debcheck lists failures for the entire dependency tree so a package will fail if any dependency cannot be installed. The missing package can be at any level of the dependency tree. Check for NOT AVAILABLE reports first.

$ apt-cross -u -m
$ cp ~/.dpkg-cross/unstable/lists/www.emdebian.org_emdebian_dists_unstable_main_binary-arm_Packages Packages
$ edos-debcheck -explain -failures < Packages | grep AVAILABLE
  mktemp (= 1.5-2em1) depends on libgcc1 (>= 1:4.1.1-12) {NOT AVAILABLE}

Checking one package or all

With an incomplete repository, the output of edos-debcheck can be extensive and repetitive. To limit the output, specify just the package(s) of interest. Extend the list until you reach the lowest level of the dependency tree for a particular failure.

Missing package

Missing packages at a higher level of a dependency tree will obscure missing dependencies lower down in the tree - avoid letting this give the impression that only one dependency is actually missing. Try adding the description for that missing dependency to a copy of the Packages file and re-running edos-debcheck. e.g. for libgcc1:

apt-cache show libgcc1 >> Packages
edos-debcheck -explain -failures < Packages
  mktemp (= 1.5-2em1) depends on libgcc1 (>= 1:4.1.1-12) {libgcc1 (= 1:4.1.1-21), libgcc1 (= 1:4.1.2-5), libgcc1 (= 1:4.2-20070405-1)}
  libgcc1 (= 1:4.2-20070405-1) depends on gcc-4.2-base (= 4.2-20070405-1) {NOT AVAILABLE}

As above, you are likely to need to add example Package content for the dependencies of the missing package as well.

Modifying the dependency tree

Experiment with different dependency information by editing the Packages file directly, e.g. to omit or modify dependencies without having to rebuild the packages themselves. e.g. try removing debian-archive-keyring from the dependencies of apt.