SBOPKG(8)

NAME
sbopkg - the SlackBuilds.org package browser

SYNOPSIS
sbopkg [options]

DESCRIPTION
Sbopkg is a command-line and dialog-based tool to interact with the SlackBuilds.org (``SBo'') repository, a collection of third-party SlackBuild scripts to build Slackware packages.

  Instructions
Sbopkg usage assumes an understanding of SlackBuilds, generally, and the third-party SBo repository, specifically. A thorough reading of http://www.slackbuilds.org/howto/ and the pages at http://www.slackwiki.org about SlackBuilds is strongly advised.

In order for sbopkg to be used, a configuration file must exist at /etc/sbopkg/sbopkg.conf and/or ~/.sbopkg.conf. An initial install will provide the user with the system file while upgrades will add an /etc/sbopkg/sbopkg.conf.new file with which the user may merge or replace the older version. See sbopkg.conf(5) for more information about the configuration files.

Sbopkg must be run as the root user (since the SBo SlackBuilds are written with the intention of being run as root). Furthermore, using the - option with su is strongly encouraged. The reason is that some SlackBuilds rely on certain tools that are only available in root's PATH when the scripts in /etc/profile.d have been run (i.e., texmf to build man pages), which is only done for login shells, or otherwise require a ``truer'' root environment than that given by only su. In any event, invoking sbopkg with no arguments (or with just -d, -f, or -V) will launch the dialog-based interface, and the menus provided should be fairly self-explanatory.

The main menu allows the user to synchronize with the SBo repository. This is the first step to take (after configuration) with a new install of sbopkg. Currently, the size of a local copy of the SBo repository is about about 145MB. The main menu also allows the user to view the SBo ChangeLog, check for potential updates to SBo packages, display the contents of the local cache directory where source tarballs are saved, display the permanent build log, and browse or search the local copy of the SBo repository. Once the browse function is chosen, the user can select the category of software to view. After choosing a category, the user can then view the various software packages available in that category within the local SBo repository. Selecting a package will display another menu allowing the user to view the package's README, SlackBuild, .info, or slack-desc files. The user can also edit the .info file and SlackBuild and the edited files will remain after doing a sync. Additionally, the user can choose to build a package using either the original SlackBuild or the locally-edited one, if present. If using the dialog interface, and if sbopkg finds a built package for a particular piece of software in the OUTPUT directory, then sbopkg will automatically add a new menu entry allowing the user to install the package if he chooses. Alternatively, the user can choose to automatically download, build, or install individual packages or several packages in a queue. Finally, if KEEPLOG is set to YES in a configuration file, a permanent log of the build process is saved. See sbopkg.conf(5) under KEEPLOG and LOGFILE for details.

Alternatively, sbopkg can be run from the command line without using the dialog interface. See the OPTIONS section for the available command line options.

Sbopkg also has the capability of loading, saving, and using user-created queuefiles. These queuefiles are simple text files with one application name per line. By default, when a queuefile is loaded in the dialog interface, the application is selected, or ``ON.'' This can be changed by inserting a ``-'' in front of the application name in the queuefile. Also, queuefiles can reference other queuefiles when the first character is an ``@''. See the readme-queuefiles document in the documentation directory for more information.

Certain features of sbopkg rely on outside binaries, such as a pager to view the text files when sbopkg is run from the command line, and an editor to edit the .info or SlackBuild files. The paging functions will look to the environmental variable PAGER and, if that variable is not defined, it will default to more. Similarly, the editing functions will look to EDITOR and will default to vi. If the user wants sbopkg to use another editor or pager, then adding the requisite information in ~/.bashrc, /etc/profile, or other similar configuration file (including sbopkg's own configuration files) to export the relevant variable will suffice.

OPTIONS

-b PACKAGE(s)/QUEUE(s)
    Build packages of the argument(s) from the active repository. If more than one package is specified, they may either be quoted or the switch can be given multiple times. Using this second form, a colon-separated list of options may be given. If whitespace occurs between the colons, it must be quoted.

    For example:

        # sbopkg -b "foo bar"

    will build foo and then bar.

    Or

        # sbopkg -b app1:opt1="foo bar":opt2=baz -b app2:opt=mu

    will build app1 with the options ``foo bar'' and ``baz'', and app2 with the option ``mu''.

    Queuefile names can also be specified. In that case, all the packages specified in the queuefile will be built. In the unfortunate case a token matches both a queuefile name and a package name (i.e., the user named a queuefile with the name of a package), sbopkg will ask the user which one should be used. A way to avoid this is to specify the queuefile with its .sqf extension. Also, a mix of both packages and queuefiles may be given. The tokens (package names or queuefiles) are processed in the order they are specified on the command line, and the order specified in the queuefiles is retained. If a package is specified more than once, it gets queued only the first time it is encountered.

-B  Process the packages or queues without prompting for confirmation first.

-c  Display a list of installed SBo packages and potential updates.

-d PACKAGE(s)/QUEUE(s)
    Download source archives of the argument(s) from the URL specified in the active repository.

    See the -b option for details since, other than the build, these two options operate similarly.

-D DIRECTORY
    Manually specify the full path to the DIRECTORY containing the local SBo repository.

-e ask|continue|stop
    Specify what sbopkg should do when it encounters an error while processing a package. Valid options are:

    ask: This is the default behavior, asking the user what to do.

    continue: Ignore the error and continue processing (act as if the user answered ``Yes'' to all questions).

    stop: Stop the processing (act as if the user answered ``No'' to all questions).

-f FILE
    Override the default configuration file, /etc/sbopkg/sbopkg.conf, with FILE.

-g PACKAGE(s)
    General search for PACKAGE(s) by case-insensitive glob where the argument is automatically wrapped in *s. If more than one glob is specified, they must be quoted or the -g flag must be used multiple times, once for each glob.

    For example:

        # sbopkg -g "foo bar"

    will return a list of packages with either foo or bar in their names.

-h  Display the help.

-i PACKAGE(s)/QUEUE(s)
    Download, build, and install packages of the argument(s) from the active repository.

    See the -b option for details since, other than the installation, these two options operate similarly.

    Note that by carefully considering the order of the packages listed and/or using queuefiles, the user may be able to install dependencies in the right order before the final application is built.

-k  When used together with -b, -d, or -i, this option tells sbopkg to skip (i.e., don't process) any package it finds to be already installed.

    Please note that only a name comparison is performed, so when this option is specified sbopkg will also omit the build of different versions of installed packages.

-l  Display the SBo ChangeLog and quit.

-o  List the currently installed cached source files which are deemed obsolete, and optionally delete them.

    Source files are obsolete when no .info file's DOWNLOAD field(s) reference it any more, which is something that can happen after syncing the local repository.

    Please note that only the currently active repository is used to identify the obsolete sources, so if the user builds packages with different repositories (e.g., for different Slackware versions) the source files only used in the ``other'' repository will be listed.

-P  List the cached package files which are not currently installed on the system and optionally delete them.

-p  List installed SBo packages.

-q  Enable the ``quiet mode.'' When this flag is specified, the output of some of the command-line options is minimized.

-R  When combined with -b, -d, or -i, view the README files of the packages to be processed before processing them. This is useful for making a final check. When combined with -p, view the README files of all installed packages from the active repo.

-r  ``Rsync'' the local repository with SBo and quit.

-s PACKAGE(s)
    Specific search for PACKAGE(s) by case-sensitive glob and, if found, display the README, SlackBuild, .info, and slack-desc files in that order for each PACKAGE found, using $PAGER. If more than one glob is specified, they must be quoted or the -s flag must be used multiple times, once for each glob.

    For example:

        # sbopkg -s "foo bar"

    will display all the above-mentioned files for packages whose names are exactly foo or bar.

    Note that shell metacharacters may be supplied in the arguments. For instance,

        # sbopkg -s '*[Oo]pen*'

    will return all packages with 'open' or 'Open' anywhere in the name. If multiple applications are returned, the user will be presented with a menu to select from.

-u  Check for an update to sbopkg itself and then quit.

-V VERSION
    Set the repository and branch to use.

    For a list of valid versions, invoke sbopkg as

        # sbopkg -V ?

    See the sbopkg.conf(5) man page for more information about the ``local'' repository.

    The VERSION format is repository/branch (e.g., SBo/xxxSWVERxxx). If the repository is omitted, sbopkg will first look for the specified branch in the default repository. If that attempt fails, sbopkg will look for the first matching branch in any repository.

-v  Prints the current version of sbopkg on stdout.

FILES

/etc/sbopkg/sbopkg.conf
    Default system-wide file to specify configuration options.

~/.sbopkg.conf
    File to override system configuration options.

/etc/sbopkg/renames.d/*.renames
    Files that list software in the SBo repositories that has been renamed. See the README-renames document in the sbopkg documentation directory for more information.

/etc/sbopkg/repos.d/*.repo
    Files for various types of sbopkg repositories. See the README-repos document in the sbopkg documentation directory for more information.

AUTHORS
Chess Griffin <chess@chessgriffin.com>

Mauro Giachero <mauro.giachero@gmail.com>

slakmagik <slakmagik@gmail.com>

SEE ALSO
dialog(1), more(1), removepkg(8), rsync(1), sbopkg.conf(5), su(1), upgradepkg(8), vi(1), /usr/doc/sbopkg-0.37.0/*