site  contact  subhomenews

Generating DEPENDENCIES took 10 days

June 24, 2019 — BarryK

I posted about the official Slackware packages not having dependency information:

http://bkhome.org/news/201906/slackware-package-dependencies.html

I figured out a way to automatically generate dependencies. Firstly, use the Ubuntu package databases to extract a list of all packages and their dependencies.

This list will be the actual package names, not the names of DEB files -- for example, the 'alsa-driver' package is split up into DEB files named 'alsa-base' and 'linux-sound-base'. Debian and Ubuntu really "go to town" with this pulling apart of the original packages, sometimes into several smaller DEBs.

The good thing about Debian and Ubuntu packages is that they usually turn on every possible option when configuring and compiling a package source, so the dependencies list will have every possible dep that the package is capable of having.

I wrote a script in Woof, support/generate-deps-list, that will create a file named 'DEPENDENCIES'. It has lines like this:

aalib: gcc-8 glibc gpm libbsd libx11 libxau libxcb libxdmcp ncurses slang2

The idea is that matches can be found in the Slackware packages, and dependencies list can be derived for the Slackware package database.

Anyway, the script 'generate-deps-list'. I knew that it was not written in the most efficient way. To chase all deps, it employs recursive function call, and I knew that was going to be slow. When it started to run, I thought, no rush, will just wait until it completes...

This afternoon, 10 days later, it has completed. Probably a good thing that I am running this PC off a UPS!

I did a bit of work on the script, so if ever have to re-run it, it will be faster.

The next step is for the '0setup' script in Woof to read 'DEPENDENCIES' and generate 'DEPENDENCIES-slackware' and then insert the deps into the Slackware package databases. 

Tags: easy