[SOLVED] Is there recursive SlackBuild dependency tool?
Slackware - InstallationThis forum is for the discussion of installation issues with Slackware.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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?
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.
Last edited by bassmadrigal; 12-30-2016 at 07:10 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
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:
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:
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
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.
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.
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.
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.
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.
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.
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.
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.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.