Dependencies calculator

I came across this interesting discussion at LQ, introducing a new tool called HooRex (a pun for “who requires”). The program scans the SBo repository and determines dependency relations between packages in both directions:

  1. It can determine if a package is required by others.
  2. It can resolve dependencies for a given package.

The program does so by reading the REQUIRES field in the *.info file for each entry. The latest version of HooRex at the moment is 0.5.5 and  requires pyxdg available from SBo. HooRex itself is not (yet) at SBo, so I just downloaded, unpacked the program and ran it from its folder. First, I had to point where my SBo repository was:

./hoorex -s /var/lib/sbopkg/SBo/14.1/

To check what depends on, say muParser, just run ./hoorex muParser. Now, a few options:

  • -1:  Show output as a single column i.e. newline separated rather than space separated
  • -i: Restrict output to those packages already installed, with the exception of the target package(s) which are included.
  • -l: Show category of each resulting package as well as the package
  • -m: Normally, hoorex outputs the names of packages which directly depend on the target PKG(s). In *multilevel* mode, these directly depending packages are also processed to find which packages depend on them; this process is continued until no further depending packages are found.
  • -r: Reverse the default calculation of dependency tree i.e. instead of determining which other packages require the target package(s), calculate which packages are required to build the target package(s).

Usage examples:

To see what from the installed packages (option -i) depends on gtkmm and view the result as a list (option -1):

bash-4.2$ hoorex  -i -1 gtkmm
gtkmm
gbgoffice
inkscape
gparted

To see the dependencies of Inkscape (option -r) and present it as a list, so it makes a build queue:

bash-4.2$ hoorex -r -1 inkscape
mm-common
gsl
libsigc++
numpy
glibmm
cairomm
pangomm
BeautifulSoup
atkmm
lxml
gtkmm
inkscape

A SlackBuild as well as packages (for Slackware 14.1-32bit and Slackware 14.1-64bit) were prepared by Nicolas Kovacs part of his Microlinux project. There is also a review of HooRex (in French).

EDIT (10 May 2015): the program is now available at SBo and the newer version does not require pyxd any more.

In a way, HooRex is reminiscent to the package dependency graphs from SBo.



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s