Valid HTML 4.01 Strict Valid CSS! powered by Blosxom

Sat, 08 Sep 2007

Introducing sourcedeps.d.n

I get regulary annoyed by the fact that I find random -dev packages on my main system and can't figure out which package's build-depends I satisfied by installing them. Also they don't disappear if the package changes its build-depends.

So I decided to solve this problem. Since I'm not really a C/C++ hacker and didn't want to learn hacking APT for this I choose to solve this problem with brute force and Perl ;-)

The result is sourcedeps.debian.net, a APT archive which contains one binary package for each source package. The following mapping was done:

     source package name => binary package name, but with appended '-build-depends'
     Build-Depends       => Depends
     Build-Depends-Indep => Recommends
     Build-Conflicts     => Conflicts
     Binary              => Suggests
     Binary              => Provides (with appended '-build-depends')

If any of the Build-Depends fields contains arch limiters, arch-dependent packages will be created, otherwise one arch-independent package.

This allows easy installation of build-depends by installing the corresponding meta package, tracking them, and removing them automatically in case you deinstall the meta package. It only works for known architectures though and it requires creating around 60,000 binary packages. It also doesn't allow tracking build-dependencies for more than one version of a package (e.g. unstable and experimental).

You can use this by adding something like

deb http://sourcedeps.debian.net/ sid main contrib non-free

to your sources.list. The archive is signed with the following key, available from a keyserver near you and signed by me:

pub   1024D/ED505694 2007-09-08 [expires: 2008-09-07]
      Key fingerprint = 4ECF DF07 F419 0B5B 45C4  51D0 00E9 C47B ED50 5694
uid                  SourceDeps.Debian.Net Archive Key 

Comments welcome.

Created 2007-09-08 by Frank Lichtenheld, category /en/devel/debian. permanent link, 1 comment(s)

Josh Triplett wrote


Beautiful! I've wanted this for a long time. Would you please consider making Build-Depends-Indep map to Depends as well, rather than Recommends?