Package ordering tool for Debian

Up: Martijn's Homepage  
Prev: Article collection   Next: Teletext on the TiVo  

Currently at Version 0.5

This is a script that takes the Packages files and generates an ordering that would be good for CDs At the moment it produces an awful lot of output and it is recommended to pipe the output through less for easy perusal.


The basic idea of this program is to generate an ordering of packages that will:

To achieve this, the program uses both the output of the Debian Popularity Contest (the full output file) and the Packages files from Potato.


To run this program you need at least two files in the current directory. Some named Packages.[dist] which is the package list of the indicated section of Potato (or any other release). The other file is all-popcon-results.txt.

The packages files are named, for example Packages.main or Packages.non-us.contrib. This script will scan the given files and check that all the packages mentioned in the Depends fields exist. It then summarises all the found dependencies and generates an ordering that would be useful for CDs.

A recent change is that you can now exclude certain distributions from the generated output but still consider them while checking dependencies.


So far, one useful thing to come out of this is the fact that some packages depend on other packages which do not exist anymore. It would be very silly to ship Potato with the dependencies not even self-consistent. Also, from the statistics given by the popularity contest (which admittedly don't really represent the complete Debian community), it would seem that by careful arranging of packages onto CDs, you can make sure that 99% of people will only need the first CD. This is just an estimate at the moment and the popularity contest needs to get many more entrants to become truly useful.


Some special heuristics have been added for the task-* packages. To make sure they are all included as early as possible, they are given a score of 10000 plus the score of each of the dependencies. This is currently buggy with respect to task-* packages depending on one another.

Sample output

To give a better idea of the output generated by this script, here is an example of the generated output (after all the currently generated additional info). It only considers the main and contrib distributions.



Up: Martijn's Homepage  
Prev: Article collection   Next: Teletext on the TiVo  
By Martijn van Oosterhout (kleptog (at)
Copyright © 2000-2006 - Last modified 4/05/2001