[Slackbuilds-users] tracking down SBo "dependencies"

Erich Ritz erich.public at protonmail.com
Fri Mar 1 14:20:32 UTC 2024


On Friday, March 1st, 2024 at 4:16 AM, Tim Dickson via SlackBuilds-users <slackbuilds-users at slackbuilds.org> wrote:

> 
> 
> the problem is the optional dependencies. how does a tool know which
> options you like.
> Only when such a tool which has your preferred optional deps recorded
> exists, can there
> be a way to reverse dep without missing out bits.
> regards, Tim
> 

As already mentioned, slackrepo handles this.  Optional deps are stored in hintfiles:

$ cat /var/lib/slackrepo/etr/hintfiles/vlc.hint 
ADDREQUIRES="dav1d"

You can even replace deps with other deps (e.g. use OpenBLAS instead of blas and lapack for octave):

$ cat /var/lib/slackrepo/etr/hintfiles/blas.hint 
SKIP="Use OpenBLAS instead"

$ cat /var/lib/slackrepo/etr/hintfiles/lapack.hint 
SKIP="Use OpenBLAS instead"

$ cat /var/lib/slackrepo/etr/hintfiles/octave.hint 
DELREQUIRES="lapack"
ADDREQUIRES="OpenBLAS suitesparse glpk arpack-ng qrupdate sundials qhull hdf5 fltk ftgl gl2ps GraphicsMagick portaudio rapidjson zulu-openjdk21"

So when using slackrepo if blas has an update from SBo nothing will happen on my end (since nothing depends on blas).  An upgrade of OpenBLAS will trigger octave to be rebuilt.

Note: since required dependencies are not listed in hintfiles (they are already present in *.info), I also maintain a set of sbopkg queue files (which list both required and optional deps) so I can quickly grep for dependencies, though I rarely need to do so.  Most often I use it when removing a package and then removing all of its deps that aren't used by other programs I have installed.

After every public update I run (in a clean chroot);
slackrepo update --preview
to first review what will be rebuilt, taking note of any new optional deps I may want to add (rare). Then:
slackrepo update
This builds everything that needs an upgrade or rebuild.

Erich


More information about the SlackBuilds-users mailing list