[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.
ponce: Excellent!!!! That's exactly what I've been looking for. I tried `sqg -p spamassassin` and it built a queuefile in /var/lib/sbopkg/queues/spamassassin.sqf containing all the dependencies! May I ask how you knew about this tool? There's not man page for it and `sqg --help` doesn't tell me much. I had to `man sbopkg` to see that queue files had a .sqf suffix.
Quote:
Originally Posted by Alien Bob
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.
Sorry to differ with your opinion on this, but "harmless message" or not, I've never seen this message before (I'm rather new to both SBo and slackpkg) and "we won't make an installation script" doesn't sound very harmless. I did search for about 10 minutes for this error string, but only came across its use in various scripts. I found nothing explaining what it actually meant. Maybe I could have searched more, but I have come to expect things to "just work" for the most part without having to search for the meaning of esoteric messages. Besides, I had already spent almost as much time searching for this problem as it took me to build the package with SBo. IMOH, software and important messages should be explicit and obvious without one having to be a "true Slacker". That's how I've always written my software. Perhaps it should have said "warning", or maybe not printed at all if harmless and no action need be taken by the user. Its statement, "You can make your own later" (referring to the installation script) certainly led me to believe there was some further action needed on my part.
I did download the tarball, but did not find a ./configure, as I expected and running the sboconfig gave me the "Can't locate SBO/Lib.pm" error as I posted earlier. Again, a case of expectations. For years before discovering slackpkg I always installed using downloaded tarballs and they invariably used the 'standard'. ./configure, make, make install, protocol. This one apparently does not and, in fact, I've still no idea of how this tarball gets installed, if it's even supposed to be installed stand-alone. The github ready-made-package did not contain a .info file.
Quote:
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.
Yes, the slackBuilds download did have a .info and yes I could have build it from that. I didn't check assuming it was the same as the github package. However, as posted I did run `sbopkg -k -B -i sbotools` whereupon I got that seemingly fatal, but apparently harmless error message.
Quote:
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.
Again, a matter of expectations and what I'm used to. There may not "be a program inside of it with the same name", but usually, (in my experience) there is a manpage that introduces things for suites of programs. For one example SpamAssassin does have a spamassassin man page giving an overview, but there is no spamassassin program. No, I did not think to go back to the github documentation page (which would make a nice `man sbotools` content btw). Yes, if I'd have examined the github source tarball I could have seen the man files, but I had already removed that tarball from my system.
So, could I have figured it out? Probably. But the lack of a configure script in the tarball, a lack of a .info file in the github package, an unfamiliar and seemingly fatal error message with the SlackBuilds package, and no overview man page all threw me off track and I needed to get my task done ASAP and move on, which I did.
To me, the generous guidance of people on LQ to straighten the rest of us out and put us on the right track is the invaluable service I appreciate on this site, whether we're "true Slackers" or Linux newbies.
@mfoley, Eric might sound, in some parts of the world more, in other less, not pedagogical correct, but he gave you a lot of good info, what has pedagogical value and is therefore more important and is btw, and has been for a lot of people here, exactly what you want, a generous guidance.
ponce: Excellent!!!! That's exactly what I've been looking for. I tried `sqg -p spamassassin` and it built a queuefile in /var/lib/sbopkg/queues/spamassassin.sqf containing all the dependencies! May I ask how you knew about this tool?
I was here on the forum when Chess presented it and helped (just a little) testing it.
Also it has been referred multiple times by sbopkg users here.
it was available in the /usr/doc/sbopkg-*/contrib/ directory until last year, when it has been moved into /usr/sbin.
Quote:
There's not man page for it and `sqg --help` doesn't tell me much.
it tells pretty much everything
Quote:
I had to `man sbopkg` to see that queue files had a .sqf suffix.
if you need other informations on sbopkg and queues there are some documents in /usr/doc/sbopkg-*/ (referred also in the man page).
FYI - I installed sbopkg on a new machine, then did:
Code:
$ sqg -p spamassassin
$ sbopkg -i spamassassin
And it worked! That was it. This is a far cry from installing the 45-ish dependent SBo packages for spamassassin by hand, in the correct order.
I'll investigate sbotools further at my leisure.
Thanks to all those who helped me get this sorted out.
and thank you for posting that. I just reinstalled Slack and due to unforeseen happenings I lost every one of my install pkg I saved from installing everything over the time I had my other install of Slackware. so I got a start over from scratch. Without this post I'd of never heard of this time saving package and I switched to geico. SO yeah talk about savings.
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.
@bassmadrigal if this is off topic I'll post it as a separate thread for this question.
for running Slackware current, and the other one even. One has to download (clone) the entire slackbuild.org sight onto their system to just build the few packages that they when to install on their system?
How much space is that and how much more space would be needed for such a venture?
in that sight it too states somewhere to work in conjunction with the sbopkg. I remember glancing over it on first sighting.
found it "configuring the current repository with sbopkg" on the top of that Ponce/slackbuilds page.
Sorry, I don't always check this subforum. I know you already posted your other thread, but to answer your question on the size (and now that I'm home and can easily check), it is around ~256MB right now.
As for additional space needed, you'll need space for the source, compilation, packaging and the final package. I'd imagine a good majority of the SBo build tools provide options to delete unneeded files after the package is created.
By default, sbopkg will keep everything, most of it being under /tmp/, but there are different locations for the source (/var/cache/sbopkg/), slackbuilds (/var/lib/sbopkg/SBo/, and queue files (/var/lib/sbopkg/queue). The source directory can get quite big if you don't clean it out. On my desktop, it is 3.4GB (I haven't upgraded that computer to 14.2 yet, which is when I will start using the packages I created using slackrepo). For /var/lib/sbopkg/, it takes up 370MB, but that's for both the 14.0 and 14.1 repos as well as an sqf for every package (rather than just the packages that have dependencies... I don't know why I did it that way). By default, all packages are stored in /tmp/ (I have 1.6GB in my desktop's /tmp/, and that is after I cleared them out back in August 2016).
As for slackrepo, all the building is done in /tmp/ and by default, only the resulting package is kept (everything else is deleted when the chroot is destroyed), although there is an option to keep the tmp files. However, slackrepo does keep the source in /var/lib/slackrepo/SBo/source/ since there can be frequent rebuilds of a software when changes are made to any of its dependencies. I didn't see any option to prevent this (although, you could schedule manual cleanings using cron or a startup/shutdown script, however, that would mean it'd need to redownload the source every time a package is rebuilt.
slackrepo will also retain a single backup of each of your packages when one is upgraded (it will retain the previous package in case you want to revert it), although, that can be disabled in the settings. My total slackrepo folder currently takes up 12GB (and that's not including the tmp files for building). Keep in mind, this VM is only used to build packages using slackrepo. There is nothing else installed beyond the full Slackware install and the slackrepo package.
As David (55020, who is the creator of slackrepo) said in the other thread, slackrepo is a very heavy program. It is extremely powerful and provides a lot of capabilities, but many users likely wouldn't benefit from its full capabilities, and it isn't the easiest to get started with (actually, it is pretty easy, but there is many more options to configure it to your liking). To at least start, personally, I'd probably recommend sticking with sbopkg, sbotools, or other similar tools before you dive into a major one like this. Maybe your future usage would drastically benefit from something like this and it'll make complete sense to make the switch or maybe you'll find that sbotools is the perfect program for you to interact with SBo. It's awesome that we have so many choices
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.