creating local repository of slackbuilds with dependency resolution
SlackwareThis Forum is for the discussion of Slackware Linux.
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.
creating local repository of slackbuilds with dependency resolution
hi
I have many slackbuilds and package sources organized in one huge directory on my system. each package has it's own folder containing extracted slackbuild archive and source archive in this directory. there is no relation between package dependencies and all package folders have been sorted alphabetically in this directory. I am curios to know is it possible to use this directory as a local repository so that by using sbopkg (or sbotools) I can automatically build and install my desired packages and their dependencies?
As long as all slackbuilds come from http://slackbuikds.org you could use Chess Griffin's script sqg for that, available in /usr/doc/sbopkg-0.37.0/contrib.
Juts set the options as you like in top of that script as well as the parameters like SRCDIR in /etc/sbopkg/sbopkg.conf.
Then to build and install all your desired packages just write a list of their names (ether one base name the package by line or separated by spaces), without the dependencies, called my_packages then run:
Code:
for i in `cat my_packages`; do
sqg -p $i
sbopkg -k -i ${i}.sqf
done
I am not saying that this can run unattended, as sbopkg can detect issues that need you to make a decision.
PS Re reading your post I realize that my proposal is not exactly what you want as it can use the sources already downloaded (but you have to put them all in the same directory) but won't use the extracted slackbuild archives. But you get the idea.
[Off topic]I hope that Kerry's bicycle accident in my country won't hinder the negotiations[/Off topic]
Last edited by Didier Spaier; 06-01-2015 at 03:27 AM.
Reason: Off topic sentence added.
it can use the sources already downloaded (but you have to put them all in the same directory) but won't use the extracted slackbuild archives. But you get the idea.
so I have to archive all of skackbuilds in tar.gz format and put hem along all of package sources in same directory without any further organization?
Quote:
I hope that Kerry's bicycle accident in my country won't hinder the negotiations
I hope so. I guess cripple Kerry is more dangerous
oops, I can't download sbopkg package from googlecode because of the sanctions. do you know alternative trustful mirror?
There's sbopkg and sbotools. Sbotools might be what you're looking for. It downloads the entire SBo set into a directory similar to how BSD and CRUX Linux use ports and Gentoo/Funtoo use portage. It also has some dependency resolution using the REQUIRES="" entry in the info files, but most for required only. Anything else must be added prior for additional build flags for the script or automatic detection running the configuration. The only thing it doesn't include are the source tarballs, those you still have to get over the network.
hi
I have many slackbuilds and package sources organized in one huge directory on my system. each package has it's own folder containing extracted slackbuild archive and source archive in this directory. there is no relation between package dependencies and all package folders have been sorted alphabetically in this directory. I am curios to know is it possible to use this directory as a local repository so that by using sbopkg (or sbotools) I can automatically build and install my desired packages and their dependencies?
Do you mean that you have a repository something like SBo but without the categories (academic, accessibility, audio, ...)? Then provided you have the .info file for each package directory (you mention each "containing extracted slackbuild archive"), then you can use hoorex to calculate the dependency relationships between all of them and write an appropriate build order to a file. Then use the contents of that file in a loop to do the building, something like (as root):
Code:
# Setup dependency cache
hoorex -s /path/to/huge/directory/
# Write out build order for the "all" group i.e. everything in the repo
hoorex -r -1 -g all 2>&1 |tee buildorder.txt
# Loop through entries in buildorder.txt to build & install the packages
cd /path/to/huge/directory
for appname in $(cat /path/to/buildorder.txt) ; do
cd $appname
sh $appname.SlackBuild
upgradepkg --install-new --reinstall /tmp/$appname-*SBo.tgz
cd -
done
Do you mean that you have a repository something like SBo but without the categories (academic, accessibility, audio, ...)? Then provided you have the .info file for each package directory (you mention each "containing extracted slackbuild archive"), then you can use hoorex to calculate the dependency relationships between all of them and write an appropriate build order to a file. Then use the contents of that file in a loop to do the building, something like (as root):
Code:
# Setup dependency cache
hoorex -s /path/to/huge/directory/
# Write out build order for the "all" group i.e. everything in the repo
hoorex -r -1 -g all 2>&1 |tee buildorder.txt
# Loop through entries in buildorder.txt to build & install the packages
cd /path/to/huge/directory
for appname in $(cat /path/to/buildorder.txt) ; do
cd $appname
sh $appname.SlackBuild
upgradepkg --install-new --reinstall /tmp/$appname-*SBo.tgz
cd -
done
chris
sounds good. I will give it a try.
Quote:
Please do not refer to anything political in the forum
It will annoy someone. In this instance, me. I then feel the need to comment further, which would eventually make our systemd screamfests appear tame.
If it breaks part way through e.g. missing source tarball etc. then, rather than starting all over again, edit your buildorder.txt file to remove those package names which have already succeeded and then run the build/install loop again (after sorting out whatever caused the stoppage of course).
Please do not refer to anything political in the forum.
It will annoy someone. In this instance, me. I then feel the need to comment further, which would eventually make our systemd screamfests appear tame.
If someone should apologize for a comment I made that's me, not travis82 who just answered the quoted post. Actually I hesitated before posting it and I now realize that a PM would have been more appropriate as this is a Slackware forum, not the General one.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.