[arch-haskell] Topological Build Queue Script

Xyne xyne at archlinux.ca
Fri Oct 15 18:33:38 EDT 2010


I've written a script (in Haskell) that accepts package names on the command
line and returns a topologically-sorted list of those packages and all others
that depend on them, directly or indirectly.

The script parses the output of "pacman -Qi", specifically the "Required By"
field, to generate the directed dependency graph. The subgraph of that graph
that is reachable from the specified packages is then passed to
Data.Graph.topSort to generate the list.

I have assumed that the "Required By" field is complete and that it correctly
displays relationships for packages that depend on "provided" packages.

Because the script parses "pacman -Qi", all of the packages must be installed.
It would also work for "pacman -Si" and it can be easily extended later to
handle other input such as formatted data from .cabal files or custom output
from cabal2arch.

The could could also be adapted for extracting other information from Pacman.

You can find it under the name "topac" here:


More information about the arch-haskell mailing list