sbotools(1)

NAME

sbotools - Perl scripts providing a ports-like interface to SlackBuilds.org

DESCRIPTION

sbotools is a set of Perl scripts that collectively provide a ports-like interface to SlackBuilds.org. Each tool is documented in its own man page.

sbocheck(1)
    Fetch the latest version of the upstream SlackBuilds repository. Check for version updates, build number changes and out-of-tree installed SlackBuilds with the _SBo tag. Perform shared object dependency and other package checks.

sboclean(1)
    Remove cruft by cleaning source archives, build directories and saved build options.

sboconfig(1)
    A command line interface for changing /etc/sbotools/sbotools.conf.

sbocutleaves(1)
    A command line interface for finding and listing or interactively deleting packages with the _SBo tag and no installed reverse dependencies.

sbofind(1)
    Search the local copy of the repository for SlackBuilds. Optionally, display build queues, README and info files, installed reverse dependencies and more.

sbohints(1)
    Query and modify script specific hints: blacklist, optional dependencies and reverse dependency rebuilds.

sboinstall(1)
    Install SlackBuilds with their dependencies. Handle compat32 packages and create or build from templates.

sboremove(1)
    Interactively remove installed SlackBuilds along with any unused dependencies.

sbotool(1)
    Perform most sbotools operations from this TUI with dynamic dialog(1) menus. Calling the commands individually provides superior efficiency and option control.

sboupgrade(1)
    Upgrade previously-installed SlackBuilds.

By default, sboinstall(1) and sboupgrade(1) give prompts before adding items to the build queue. These scripts have a --batch flag available for non-interactive building with dependency resolution. Because --batch can install new dependencies without prompting, using it in a production environment without a well-maintained /etc/sbotools.hints file, or with unfamiliar scripts, can potentially lead to unwanted results. Consider passing --dry-run first, which prints the build queue with other information and exits.

For details about all configuration options in sbotools.conf, see sbotools.conf(5). sbotools.hints(5) documents the /etc/sbotools/sbotools.hints file, which passes hints to sboinstall(1) and sboupgrade(1): blacklist, optional dependencies and automatic reverse dependency rebuilds.

Those who wish to use sbotools for testing scripts and reverse dependencies in a clean build environment may be interested in the sbotest companion package.

sbotools currently supports Slackware 15.0 and beyond. For Slackware 14.0, 14.1 and 14.2, install sbotools-4.0.2 at the latest.

STARTUP
When using sbotools for the first time, a copy of the SlackBuilds repository must be fetched with sbocheck(1):
    sbocheck
The local repository is saved to /var/lib/sbotools/repo. To use an alternative location, give an absolute file path to the SBO_HOME setting with sboconfig(1) or by editing /etc/sbotools/sbotools.conf. The repositiory can also be fetched using sbotool(1) if running as root.

Along with its copy of the repository, the SBO_HOME directory also contains directories for automatic and manual file downloads at SBO_HOME/distfiles and SBO_HOME/distfiles/manual, respectively. The manual downloads directory can be reached from a symlink at SBO_HOME/manual_downloads. Files with the correct name and checksum in this directory are prioritized when building packages. It is particularly useful for downloads that cannot be done from the command line (those requiring a license agreement, for example).

The default mirror depends on the running version of Slackware. Stable releases use the appropriate branch on https://gitlab.com/SlackBuilds.org/slackbuilds/ and -current uses https://github.com/Ponce/slackbuilds/ with the current branch.

To use an rsync mirror with <rsync://slackbuilds.org/slackbuilds/*/> as the default, set RSYNC_DEFAULT to TRUE. The REPO setting overrides the default mirror with a git or rsync URL, and GIT_BRANCH sets a custom git branch.

To update the local repository, run sbocheck(1). This generates a report with potential version upgrades, SlackBuilds with incremented build numbers and out-of-tree SlackBuilds installed with the _SBo tag.

The simplest way to upgrade all eligible SlackBuilds is to run
    sboupgrade --all
Build number increments are ignored if BUILD_IGNORE is set to TRUE.

Using sboconfig(1) without flags enters the sbotool(1) settings menu, which shows all available options with explanations. Settings changes can be done from here if running as root.

sbotools can be set up to print some messages and prompts in color. All scripts except for sboconfig have --color and --nocolor options to turn colors on and off. To turn all colors off by default, set NOCOLOR to TRUE. Output colors can be customized by editing the /etc/sbotools/sbotools.colors file. See the comments there or sbotools.colors(5) for details.

Upgrading Slackware or other packages occasionally causes breakage related to missing shared object dependencies (solibs). To check first-order dependencies for all installed SBo packages, use sbocheck(1) with the -X option. Use -c instead to check a list of installed packages, or -C to check all installed packages. -C and -c can be used without a local copy of the repository. Checks of _SBo packages only are performed automatically after running sbocheck(1) and sboupgrade(1); to disable this behavior, set the NO_SOCHECK setting to TRUE.

Use sbocheck with any package-checking option and the --type option with any of solibs (default), perl, python, ruby or all in a comma-separated list to perform extra package tests. Calling
    sboupgrade --all-plus-failures
(or -A for short) performs all available upgrades and rebuilds any packages with the _SBo tag that fail one of these tests before the upgrade process begins. Some scripts that repackage binaries are known to fail solib tests invariably. Use sbohints --ignore-tests with one or more scripts to skip them. --all-plus-failures skips packages with solib issues only in the /opt directory automatically unless sboupgrade(1) is running interactively.

A limited number of SlackBuilds download files when running, which some users consider a security risk. Set NONET to TRUE to prevent this behavior.

EXIT CODES

sbotools scripts can exit with the following codes:
    0: all operations were succesful.
    1: a usage error occured, such as specifying invalid options.
    2: a script or module error occurred.
    3: a SlackBuild exited non-zero.
    4: unable to md5sum verify the source file(s).
    5: unable to download the source file(s).
    6: unable to obtain a required file handle.
    7: unable to get required info from the info file.
    8: unable to unset the exec-on-close bit on a temporary file.
    9: multilib has not been set up (where required).
    10: convertpkg-compat32 exited non-zero.
    11: the convertpkg-compat32 script cannot be found (where required).
    12: interrupt signal received.
    13: circular dependencies detected.
    14: in batch, nointeractive or dry-run, required user or group missing.
    15: GPG verification failed.
    16: reading keyboard input failed.
    17: could not give SBO_HOME valid contents.
    18: terminal lacks the required capabilities to run sbotool(1).

BUGS

None known. If found, Issues and Pull Requests to https://github.com/pghvlaans/sbotools/ are always welcome.

SEE ALSO

sbocheck(1), sboclean(1), sboconfig(1), sbocutleaves(1), sbofind(1), sbohints(1), sboinstall(1), sboremove(1), sbotool(1), sboupgrade(1), sbotools.colors(5), sbotools.conf(5), sbotools.hints(5), dialog(1)

AUTHORS

Jacob Pipkin <jacob.pipkin@icloud.com>

Luke Williams <xocel@iquidus.org>

Andreas Guldstrand <andreas.guldstrand@gmail.com>

MAINTAINER

K. Eugene Carlson <kvngncrlsn@gmail.com>