[[http://​sbopkg.org/​|Sbopkg]] is a command-line and dialog-based tool to synchronize with the [[http://​slackbuilds.org/​|SlackBuilds.org]] ("​SBo"​) repository, a collection of third-party SlackBuild scripts to build Slackware packages. The program has a curses based interface which lets you pick and assemble the programs which you want to compile from source into packages. It can also be used non-interactively in case you know beforehand what your goal is - in that case it is "fire and forget"​.

+

[[https://​sbopkg.org/​|Sbopkg]] is a command-line and dialog-based tool to synchronize with the [[https://​slackbuilds.org/​|SlackBuilds.org]] ("​SBo"​) repository, a collection of third-party SlackBuild scripts to build Slackware packages. The program has a curses based interface which lets you pick and assemble the programs which you want to compile from source into packages. It can also be used non-interactively in case you know beforehand what your goal is - in that case it is "fire and forget"​.

The following information will assist you in getting sbopkg installed, and running on Slackware.

The following information will assist you in getting sbopkg installed, and running on Slackware.

Line 10:

Line 10:

===== Download sbopkg: =====

===== Download sbopkg: =====

-

Download sbopkg from: http://​www.sbopkg.org/​downloads.php \\ You can get the sources and build a package yourself, or just grab th ready-made Slackware package. The following section of this article assumes that you downloaded the ready-built package.

+

Download sbopkg from: https://​www.sbopkg.org/​downloads.php \\ You can get the sources and build a package yourself, or just grab th ready-made Slackware package. The following section of this article assumes that you downloaded the ready-built package.

===== Install sbopkg =====

===== Install sbopkg =====

-

- Assuming that the ''​sbopkg''​ package file name you downloaded to the current directory is //sbopkg-0.36.0-noarch-1_cng.tgz//, the ''​installpkg''​ command to install sbopkg (or upgrade it if it was already present on your system) is as follows: <​code>​

+

- Assuming that the ''​sbopkg''​ package file name you downloaded to the current directory is //sbopkg-0.38.0-noarch-1_wsr.tgz//, the ''​installpkg''​ command to install sbopkg (or upgrade it if it was already present on your system) is as follows: <​code>​

$ su -

$ su -

# cd /​path/​to/​downloaded/​file/​

# cd /​path/​to/​downloaded/​file/​

-

# upgradepkg --install-new sbopkg-0.36.0-noarch-1_cng.tgz

+

# upgradepkg --install-new sbopkg-0.38.0-noarch-1_wsr.tgz

</​code>​

</​code>​

===== Configure sbopkg =====

===== Configure sbopkg =====

-

- Read the ''​sbopkg''​ documentation! See http://​www.sbopkg.org/​docs.php , and also do not forget there is a man page for ''​sbopkg''​.

+

- Read the ''​sbopkg''​ documentation! See https://​www.sbopkg.org/​docs.php , and also do not forget there is a man page for ''​sbopkg''​.

- The first time ''​sbopkg''​ is executed, you will be asked if it is OK that the program creates the necessary configuration files: <​code>​

- The first time ''​sbopkg''​ is executed, you will be asked if it is OK that the program creates the necessary configuration files: <​code>​

# sbopkg

# sbopkg

Line 31:

Line 31:

Variable ​ ​Assignment

Variable ​ ​Assignment

-------- ​ ​----------

-------- ​ ​----------

-

REPO_{ROOT,​NAME,​BRANCH} -> /​var/​lib/​sbopkg/,​SBo/,​14.0

+

REPO_{ROOT,​NAME,​BRANCH} -> /​var/​lib/​sbopkg/,​SBo/,​14.2

LOGFILE directory -------> /​var/​log/​sbopkg

LOGFILE directory -------> /​var/​log/​sbopkg

QUEUEDIR ---------------->​ /​var/​lib/​sbopkg/​queues

QUEUEDIR ---------------->​ /​var/​lib/​sbopkg/​queues

Line 41:

Line 41:

(C)reate or (A)bort?:

(C)reate or (A)bort?:

-

</​code>​. Select <​key>'​C'</​key>​ to create these required directories. \\ The program will then present its main screen: \\ {{:​howtos:​sbopkg_start.png}}

+

</​code>​. Select <​key>'​C'</​key>​ to create these required directories. \\ The program will then present its main screen: \\

+

{{:howtos:​slackware_admin:​sbopkg_start.png}}

- Your first task is to synchronize with the SlackBuilds.org repository - i.e. you let ''​sbopkg''​ create a local copy of all the SlackBuild entries on the remote server, for the Slackware release which you are running. You either use the first menu item in the curses-based main screen, or else you can do this from the commandline:​ <​code>​

- Your first task is to synchronize with the SlackBuilds.org repository - i.e. you let ''​sbopkg''​ create a local copy of all the SlackBuild entries on the remote server, for the Slackware release which you are running. You either use the first menu item in the curses-based main screen, or else you can do this from the commandline:​ <​code>​

# sbopkg -r

# sbopkg -r

-

Syncing with the remote repository into /​var/​lib/​sbopkg/​SBo/​14.0.

+

Syncing with the remote repository into /​var/​lib/​sbopkg/​SBo/​14.2.

receiving incremental file list

receiving incremental file list

Line 52:

Line 53:

total size is 35271012 ​ speedup is 0.94

total size is 35271012 ​ speedup is 0.94

-

Rsync with the SBo repository for Slackware 14.0 complete.

+

Rsync with the SBo repository for Slackware 14.2 complete.

-

Importing SBo repository for Slackware 14.0 GPG Key...

+

Importing SBo repository for Slackware 14.2 GPG Key...

Import done.

Import done.

Line 64:

Line 65:

===== Using Queuefiles with sbopkg =====

===== Using Queuefiles with sbopkg =====

-

THe ''​sbopkg''​ program itself allows a great deal of automation: the interactive curses interface helps you getting ridd of the burden ​to download ​source code archives, and allowing you to select multiple programs and then compile and package all of those in one go.\\ But you can automate this process even further, by using [[http://​www.sbopkg.org/queues.php|queuefiles]] which contain pre-defined build sequences for a series of packages. Queuefiles themselves will be invoked recursively so that you can create a complex build chain with little effort.

+

The ''​sbopkg''​ program itself allows a great deal of automation: the interactive curses interface helps you manage ​the burden ​of downloading ​source code archives, and allowing you to select multiple programs and then compile and package all of those in one go.\\ But you can automate this process even further, by using sqg - sbopkg ​queueu generator (included in main package since 0.38.0).

-

Luckily Mauro Giachero (a sbopkg co-developer) already created queuefiles ​for the //entire// SlackBuilds.org repository. Check out the git repository [[http://​gitorious.org/​sbopkg-slackware-queues]]. Every program you find in the SBo repository ​has its own queuefile, containing every dependency which has to be compiled //before// your target program can be compiled.

+

sqg can generate queuefile ​for each or all packages ​in SBo repository:<​code>​

The following URL has a listing of individual packages along with a tar.gz file of the complete index for Slackware 14: http://​gitorious.org/​sbopkg-slackware-queues/​sbopkg-slackware-queues/​trees/​sbo-14.0

+

sqg -a # this will generate queue files for all packages in SBo repository

-

+

</​code>​

-

You can download an archive containing the full set for the Slackware 14.0 repository at SlackBuilds.org from this URL: http://​gitorious.org/​sbopkg-slackware-queues/​sbopkg-slackware-queues/​archive-tarball/​sbo-14.0 . The resulting archive file will be named "''​sbopkg-slackware-queues-sbopkg-slackware-queues-sbo-14.0.tar.gz''"​.

+

-

+

-

Extract all of the *.sqf files to the directory which will be checked by ''​sbopkg'':​ "''/​var/​lib/​sbopkg/​queues/''"​ with the following commands: <​code>​