Automatic generation of dependencies for Slackware packages
I posted about progress with generating dependencies for the
Slackware package database in Woof (my fork of Woof, sometimes named
woofQ or woofE):
http://bkhome.org/news/201906/generating-dependencies-took-10-days.html
...that script created file 'DEPENDENCIES'.
I have now modified the '0setup' script in Woof, so that it maps the
dependencies in file 'DEPENDENCIES' to 'DEPENDENCIES-slackware', which
is names of all Slackware packages and their dependencies.
I have done this for the 14.2 version of Slackware. '0setup'
downloads the 'PACKAGES.TXT' files from the Slackware package
repositories, and converts to "Puppy package database format", which is
these files:
Packages-slackware-14.2-official
Packages-slackware-14.2-patches
Packages-slackware-14.2-salix
Packages-slackware-14.2-salixextra
Packages-slackware-14.2-slacky
'0setup' uses the information in 'DEPENDENCIES-slackware' to insert the dependencies into these files (field-9 of each line).
Yes, I know that the Salix distro does have deps for each package,
and '0setup' does read that. However, going forward, I don't want to
have to be dependent on Salix. I may do a build that accesses only the
official Slackware repositories, which do not have deps information.
Mapping the Ubuntu package names to Slackware names is in most cases
no problem, as it is the same name, sometimes with some capitalization
in the Slackware name -- for example Ubuntu has 'libx11', Slackware has
'libX11'.
Some name differences are more tricky, and I hope that I have caught
most of them. For example, Ubuntu has 'libfile-basedir-perl' and
Slackware has 'perl-File-BaseDir'.
Slackware64-current
Any distribution that is built from the slackware*-current packages,
is, by definition, a rolling release. This includes some puppies that
you can find in the Puppy Forum.
I was considering trying to provide package management for this
scenario. It is easy to include version of each dependency in the above
'Packages-*' files, for example "+libX11&eq3.6.7", however, actually
using this information is tricky.
I don't have sufficient motivation to follow this through. Instead,
my intention is to build Easy from the Slackware version 15.0 binary
packages, when it is released. In that scenario, it will not be required
to have versions of dependencies in the database.
Alternatively, I could take a snapshot of all the slackware-current
repos, and host them somewhere, give them some arbitrary version number
such as 14.90. However, that is rather a lot to host.
Woof-project
The latest Woof tarball is here (note, there is no online version management hosting for my Woof):
http://distro.ibiblio.org/easyos/project/woof/woof-project-20190625.tar.gz
The modified scripts, as described above, are easy-code/0setup,
easy-code/3buildeasydistro and easy-code/support/generate-deps-list. The
generated easy-code/DEPENDENCIES and
easy-distro/amd64/slackware/14.2/DEPENDENCIES-slackware files are
included in the tarball.
Tags: easy