LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware - Installation (https://www.linuxquestions.org/questions/slackware-installation-40/)
-   -   Is there recursive SlackBuild dependency tool? (https://www.linuxquestions.org/questions/slackware-installation-40/is-there-recursive-slackbuild-dependency-tool-4175596457/)

mfoley 12-30-2016 09:16 AM

Is there recursive SlackBuild dependency tool?
 
I just built spamassassin from the SlackBuilds repo. The top-level spamassassin repository listed 13 dependencies which, in turn, listed sub-dependencies, some of which had even more dependencies. In total I manually downloaded and built 46 modules from SlackBuilds which took a couple of hours!

Is there not some recursive build dependency tool to do this automatically?

a4z 12-30-2016 09:23 AM

sqg from sbopkg creates queue files for packages
you can than install the queue file (= all packages)

sboinstall from sbotools does everything under the hood, just sboinstall package and the dependencies are installed.

slpkg claims also to be able to manage dependencies, but with this tool I have the least experience.

there might be other tools.

bassmadrigal 12-30-2016 07:09 PM

If you build packages for multiple computers, you might want to look into slackrepo. It will go through all dependencies and build everything needed in a clean chroot to ensure it doesn't pick up extra dependencies (it's designed to be used on a stock clean Slackware install and then you install those packages on another machine). It will list all the dependencies in the .dep file, which some package managers can use this to install all required software. I believe sbotools and slpkg both do that.

But I had been a happy user of sqg/sbopkg for quite some time before I started digging into slackrepo. Now I wouldn't go back to sbopkg unless just for a temporary package.

rob.rice 01-06-2017 07:35 PM

sbopkg can't build a working ffmpeg
as the dependencies are listed as optional
as built without any of the optional dependencies
it has no converters codecs or formats to work with
and just prints a help screen or error

bassmadrigal 01-06-2017 09:34 PM

Quote:

Originally Posted by rob.rice (Post 5651448)
sbopkg can't build a working ffmpeg
as the dependencies are listed as optional
as built without any of the optional dependencies
it has no converters codecs or formats to work with
and just prints a help screen or error

When I would build it using sbopkg, I would manually modify the .info file (you can do it using sbopkg under the package's "Custom" section. Once you've edited the REQUIRES section in ffmpeg.info, you can then run sqg against it to generate the queue for it. Then you can and edit the queue and add the options needed to build it the way you want. My queue file looked something like:

Code:

@lame
@x264
@libass
@libbluray
@celt
@libdc1394
@faac
@frei0r
@gsm
@libiec61883
@libavc1394
libilbc
@openjpeg
@ladspa_sdk
@lame
@libmodplug
@OpenAL
@opencore-amr
@opus
@rtmpdump
@schroedinger
@speex
@twolame
@libvpx
@xvidcore
ffmpeg | ASS=yes BLURAY=yes CELT=yes DC1394=yes FAAC=yes FREI0R=yes GSM=yes IEC61883=yes ILBC=yes JP2=yes LADSPA=yes LAME=yes MODPLUG=yes OPENAL=yes OPENCORE=yes OPENSSL=yes OPUS=yes RTMP=yes SCHROEDINGER=yes SPEEX=yes TWOLAME=yes VPX=yes X264=yes XVID=yes


rob.rice 01-07-2017 04:32 PM

Quote:

Originally Posted by bassmadrigal (Post 5651471)
When I would build it using sbopkg, I would manually modify the .info file (you can do it using sbopkg under the package's "Custom" section. Once you've edited the REQUIRES section in ffmpeg.info, you can then run sqg against it to generate the queue for it. Then you can and edit the queue and add the options needed to build it the way you want. My queue file looked something like:

Code:

@lame
@x264
@libass
@libbluray
@celt
@libdc1394
@faac
@frei0r
@gsm
@libiec61883
@libavc1394
libilbc
@openjpeg
@ladspa_sdk
@lame
@libmodplug
@OpenAL
@opencore-amr
@opus
@rtmpdump
@schroedinger
@speex
@twolame
@libvpx
@xvidcore
ffmpeg | ASS=yes BLURAY=yes CELT=yes DC1394=yes FAAC=yes FREI0R=yes GSM=yes IEC61883=yes ILBC=yes JP2=yes LADSPA=yes LAME=yes MODPLUG=yes OPENAL=yes OPENCORE=yes OPENSSL=yes OPUS=yes RTMP=yes SCHROEDINGER=yes SPEEX=yes TWOLAME=yes VPX=yes X264=yes XVID=yes


dose this do an every thing (as in all options included) build
or
do I need to keep adding to the last line ?
could just use a modified version of this file as my
queue file and skip running sqg

bassmadrigal 01-07-2017 10:15 PM

Quote:

Originally Posted by rob.rice (Post 5651812)
dose this do an every thing (as in all options included) build
or
do I need to keep adding to the last line ?
could just use a modified version of this file as my
queue file and skip running sqg

This was all the options and dependencies I decided to use. I don't think it is everything that ffmpeg supports, but I'm too lazy to recheck everything. It would be worth looking at ffmpeg's README to see what options you need and adjust the queue file as needed.

If you don't feel a need to change my options, you can copy this into a queue file for ffmpeg (under /var/lib/sbopkg/queues/ffmpeg.sqf) and then just run sbopkg -i ffmpeg and then select 'q' so it uses the queuefile. Then just sit back and wait for it to build.

rob.rice 01-08-2017 12:38 AM

thank you !

mfoley 02-09-2017 10:56 AM

Quote:

Originally Posted by a4z (Post 5648167)
sqg from sbopkg creates queue files for packages
you can than install the queue file (= all packages)

sboinstall from sbotools does everything under the hood, just sboinstall package and the dependencies are installed.

slpkg claims also to be able to manage dependencies, but with this tool I have the least experience.

there might be other tools.

Still trying to sort this out. The sbotools link you gave is not correct. It is the same as the sbopkg link. I've downloaded sbotools from SlackBuilds, but ironically, it is not in the standard slackBuilds format. When untarred:
Code:

# ls -ltr
total 68
-rwxr-xr-x 1 backup users 6134 Jan 20 20:40 sboupgrade*
-rwxr-xr-x 1 backup users 1264 Jan 20 20:40 sbosnap*
-rwxr-xr-x 1 backup users 4808 Jan 20 20:40 sboremove*
-rwxr-xr-x 1 backup users 6823 Jan 20 20:40 sboinstall*
-rwxr-xr-x 1 backup users 4877 Jan 20 20:40 sbofind*
-rwxr-xr-x 1 backup users 4840 Jan 20 20:40 sboconfig*
-rwxr-xr-x 1 backup users 2374 Jan 20 20:40 sboclean*
-rwxr-xr-x 1 backup users 3705 Jan 20 20:40 sbocheck*
drwxr-xr-x 2 backup users 4096 Jan 20 20:40 man5/
drwxr-xr-x 2 backup users 4096 Jan 20 20:40 man1/
drwxr-xr-x 4 backup users 4096 Jan 20 20:40 SBO-Lib/
-rw-r--r-- 1 backup users  732 Jan 20 20:40 README

There is no .info file, etc. The README says nothing about how to build/install. running ./sboconfig give the error:
Code:

Can't locate SBO/Lib.pm in @INC (you may need to install the SBO::Lib module) (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./sboconfig line 16.
BEGIN failed--compilation aborted at ./sboconfig line 16.

So ... abandoning that approach for now.

I don't know what a "queue" file is and rob.rice's example of one does not illuminate me on how to make one or what to do with it once I've made it.

BW-userx 02-09-2017 11:14 AM

hummm looking into this as I've never heard of this until now.

on that download page it tells of how to install

"Package: A pre-built Slackware package of the latest version of sbopkg can be downloaded here."


Downloads

SBOpkg
Quote:


....

The sbopkg packages can be installed or upgraded like any other Slackware package:

installpkg sbopkg-version-noarch-1_wsr.tgz

or:

upgradepkg sbopkg-version-noarch-1_wsr.tgz
SBOtools

here

For Slackware 14.0, 14.1, or 14.2, you need the latest release in the 2.x branch, which is available here as a source tarball or as a ready-made package. It is also available on SlackBuilds.org's sbotools page.

Alien Bob 02-09-2017 11:30 AM

I use slackrepo too, mainly because it integrates my own "gen_repos_files.sh" script. Therefore slackrepo is able to put the packages it builds in a slackpkg+/slapt-get compatible repository on your local harddisk. Makes it easy to track your locally built packages.

mfoley 02-11-2017 01:20 AM

Quote:

Originally Posted by BW-userx (Post 5667888)
hummm looking into this as I've never heard of this until now.

on that download page it tells of how to install

"Package: A pre-built Slackware package of the latest version of sbopkg can be downloaded here."

Yes, I did install sbopkg, and I used it successfully to install SpamAssassin. SpamAssassin has a lot of recursive dependencies and sbopkg did make it easier than wgetting the SBo tarfile, untarring, wgetting the source, doing the build, installing ... With sbopkg I had to just:
Code:

sbopkg -k -B -i packagename
Much easier. However, I had to manually traverse the tree of 45 dependencies and and run sbopkg on each of them. Hence the reason I am looking for a something that will recursively process dependencies. `sbopkg -s` will list REQUIRES dependencies, so I suppose I could create my own script to do what I want ...

Anyway, I wasn't talking about sbopkg when I said, "not in standard slackBuilds format." I was talking about sbotools. Yes, I did download that too from SlackBuilds, but there was no .info file, etc.

For the heck of it, I just ran sbopkg on sbotools:
Code:

$ sbopkg -k -B -i sbotools
:
No symbolic links were found, so we won't make an installation script.
You can make your own later in ./install/doinst.sh and rebuild the
package if you like.
:
Installing package sbotools-2.3-noarch-1_SBo.tgz
:
Package sbotools-2.3-noarch-1_SBo.tgz installed.

but, no man pages, no actual sbotools command installed anywhere -- probably because of the "we won't make an installation script" bit. I'm a bit leery of a package installer tool that doesn't know how to install itself (or requires special knowledge on the part of the user).

Alien Bob: Yes, I'll check out slackrepo. As a veteran packager, your choice of tools counts for a lot.

ponce 02-11-2017 01:26 AM

Quote:

Originally Posted by mfoley (Post 5668711)
However, I had to manually traverse the tree of 45 dependencies and and run sbopkg on each of them. Hence the reason I am looking for a something that will recursively process dependencies. `sbopkg -s` will list REQUIRES dependencies, so I suppose I could create my own script to do what I want ...

sbopkg provides sqg.
Code:

sqg -p spamassassin
generates a /var/lib/sbopkg/queues/spamassassin.sqf queue file with all the dependencies in it: after that, when you run
Code:

sbopkg -i spamassassin
it will ask you if you want to use the just generated queue.

Alien Bob 02-11-2017 05:16 AM

Quote:

Originally Posted by mfoley (Post 5668711)
Anyway, I wasn't talking about sbopkg when I said, "not in standard slackBuilds format." I was talking about sbotools. Yes, I did download that too from SlackBuilds, but there was no .info file, etc.

For the heck of it, I just ran sbopkg on sbotools:
Code:

$ sbopkg -k -B -i sbotools
:
No symbolic links were found, so we won't make an installation script.
You can make your own later in ./install/doinst.sh and rebuild the
package if you like.
:
Installing package sbotools-2.3-noarch-1_SBo.tgz
:
Package sbotools-2.3-noarch-1_SBo.tgz installed.

but, no man pages, no actual sbotools command installed anywhere -- probably because of the "we won't make an installation script" bit. I'm a bit leery of a package installer tool that doesn't know how to install itself (or requires special knowledge on the part of the user).

You are not showing the hallmarks of a true Slacker here. You have no idea what the sentence "No symbolic links were found, so we won't make an installation script" and you did not care to check out its meaning before arriving at false conclusions? It is a harmless message from makepkg which tells you a bit about the content of the package it just created.

At the sbotools homepage which was linked to for your convenience you can read "available here as a source tarball or as a ready-made package. It is also available on SlackBuilds.org's sbotools page"

You could just download and install that package. If you go look at the SBo page, you will find an ".info" file, the ".SlackBuild" script and everything else you would need to build the package yourself. You would then also notice that there are indeed - a lot - of manpages in the resulting package.

And if a package is called "sbotools", that does not mean there will be a program inside of it with the same name "sbotools". It will just take a few seconds to check the manpage or the available documentation to get a grasp of the available scripts.

Note that all these packaging automation tools have the same goal but come from different philosophies, so they will not all work the same. Which is good, why would we have them all if they all do exactly the same thing? You can not be serious if you complain that sbotools "requires special knowledge on the part of the user" in a Slackware forum. RTFM please. Then come here for help. Not the other way round.

BW-userx 02-11-2017 12:17 PM

RTFM lmao I had to look that one up.


All times are GMT -5. The time now is 11:09 AM.