[Slackbuilds-users] Slackbuild helper script
Leonard Schmidt
lems at gmx.net
Sun Feb 22 09:34:54 UTC 2015
Hello,
Karel Venken writes:
>It is in my notes (consider this a temporary link)
>
>http://users.online.be/~cd003081/slackware/packman/getpkgs
>
>Chances are slim it is what you want - I wrote it for myself- , but
>don't hesitate to comment and use it any way you see fit.
I really like the dependency tree your program produces when using -Hr,
very cool!
My script is simpler in this regard, and it has problems with large
SlackBuilds like thunar-sendto-clamtk (though this is fixed by using -D
on such a monster). My tool also has support for so-called .deps and
.env files. So my ~/.sboget/options/ffmpeg.deps looks like this:
faac:FAAC=yes
gsm:GSM=yes
openjpeg:JP2=yes
lame:LAME=yes
OpenAL:OPENAL=yes
schroedinger:SCHROEDINGER=yes
speex:SPEEX=yes
twolame:TWOLAME=yes
x264:X264=yes
xvidcore:XVID=yes
My digikam.deps looks like this:
eigen3 libpgf libdc1394 QtGStreamer
This allows me to enable optional dependencies, in an .env file one can
specify optional variables to pass to the SlackBuild. This is about it.
I've been using it for quite some time now to update my systems. It has
support for http, rsync or git (I use a NFS-exported directory instead,
one only has to change the mirror to rsync or git for this, otherwise
it complains).
I only began work on this because I already had written a package
manager for Slackware (with third-party repository support -- didn't
know about slackpkg+ back then). This script is of course not as
sophisticated as sbopkg or even slackrepo (by David Spencer), let alone
as well-written. Both, sbopkg and slackrepo, are incredible tools,
highly sophisticated.
I should add that it's an ash script: to be honest I always wanted to
dive into (m)ksh programming, but since it's just a hobby for me I never
had the time to do it, ash on the other hand is quite simple and was
easily understandable. I could probably achieve more if I learnt bash
or ksh, but for now this suffices for me.
I started uploading my scripts to github, so my SBo tool is available here:
https://raw.githubusercontent.com/1ems/scripts/master/sboget
(My package manager is called `slacker', in case anyone's interested.)
I usually use
# sboget -Ssim SlackBuild_I [SlackBuild_II [...]]
-S skips a message that should most likely be part of its usage, maybe
I'll change this. -s skips already built packages, -i means "build and
install the resulting packages" and -m stands for "exact match".
It can download SlackBuilds -- in case mirror is http -- and sources
only by using -pm, and one can check dependencies without downloading
sources by using -Np(m). It supports .info files with multiple sources
in their DOWNLOAD variable (like suckless-tools). It has primitive
support for using fakeroot as of late, so running as user to build and
install packages is possible now. With -gm, one can download only the
SlackBuild specified on the command-line (if SBO_MIRROR is http).
By default, it saves packages in /usr/SBo/packages/subdir/program,
distfiles in /usr/SBo/distfiles/subdir/program, and SlackBuilds in
/usr/SBo/slackbuilds. One can also log the whole output into a
file (-l), saved in
/usr/SBo/log/subdir/program/prog-version-arch-$build$tag.log
All of this can be configured via ~/.sboget/config. I'm not sure if
instead I should use /etc and /var, but then running as user is not as
easy anymore. I usually have different profiles for root and my user,
for testing things out et cetera.
Regards
Leonard
More information about the SlackBuilds-users
mailing list