Quick start

RunningExamplesCommandsOptionsLogging

Before you use slackrepo to build packages, you should read and understand the page about hintfiles. You should always check the README of each SlackBuild you intend to run.

Running

Slackrepo runs from the command line. It is not interactive and does not have a graphical interface. You can run it as the root user, or (if you do some additional setup) as a non-root user. Sources are downloaded on demand (unless already available in the local cache); a well-functioning network connection is assumed.

For best results, slackrepo is intended to be run on a "clean" standard Slackware environment (like a "build box" or a virtual machine), with a full installation of Slackware and no additional packages (or very few). You can then use the package repository to install the packages on other hosts (e.g. with slackpkg+). To keep your build box safe and clean, slackrepo can build in a throw-away chroot environment.

Examples

Build graphics/shotwell, with all its dependencies:

slackrepo build graphics/shotwell

or just

slackrepo build shotwell

Build the whole SBo repository! (You will need about four days and 80Gb of disk space):

slackrepo build

Build and install shotwell and all its dependencies (note, the system will no longer be a clean build environment):

slackrepo build --install shotwell

Update all the academic/ packages in your package repository for SBo's latest changes (this WILL NOT add new packages from upstream, unless they are required dependencies):

slackrepo update academic

Build all the academic/ packages in SBo (this WILL add new packages from upstream, and will also update for SBo's latest changes):

slackrepo build academic

Do a "dry run" update of all your existing SBo packages:

slackrepo update --dry-run

Remove the package grass (note, its dependencies and dependers will not be removed):

slackpkg remove grass

Test-build colord (in the csb repo), with verbose messages; do not store the built package:

slackrepo build -v --repo=csb --lint --dry-run colord

Commands

Slackrepo has six commands: build, rebuild, update, remove, revert and lint.

(1) build command
slackrepo build [--options] [item...]

Each specified item in the SlackBuild repository is built and stored into the package repository if there is no up-to-date package already stored. Missing or out-of-date dependencies are also built and stored into the package repository. If no items are specified, everything in the SlackBuild repository is built and stored.

Items can be specified as the name of an individual item (e.g. 'wxPython') or as an individual item in a category (e.g. 'libraries/wxPython'), or as an entire category of items (e.g. 'libraries'). Obviously, very large amounts of storage will be needed if you build entire categories.

(2) rebuild command
slackrepo rebuild [--options] [item...]

The rebuild command is like the build command, except that packages already in the package repository will be rebuilt, even if they are up-to-date. That is the only difference!

(3) update command
slackrepo update [--options] [item...]

The update command compares each specified package (and its dependencies) in the package repository to the SlackBuild repository. Packages are built, rebuilt or removed, as appropriate. If no items are specified, everything in the package repository is compared.

(4) remove command
slackrepo remove [--options] item...

The remove command removes packages for each specified item from the package repository. Also, any cached source files are removed. Backups are made, in case you change your mind later.

(5) revert command
slackrepo revert [--options] item...

The revert command restores packages (and source files) for each specified item from the backup. The existing packages are backed up, in case you change your mind again and again and again...

(6) lint command
slackrepo lint [--options] [item...]

The lint command performs quality tests on the source download URLs and source files, the SlackBuild, and the packages for each specified item.

Options

--repo=ID

Use the SlackBuild and package repository identified by ID. The location of the SlackBuild and package repositories are determined by the configuration file /etc/slackrepo/repo_ID.conf. The default repository ID is SBo (SlackBuilds.org), but others supplied include msb (Mate SlackBuilds) and csb (Cinnamon SlackBuilds). On Slackware -current, the default repository is ponce (SBo repository for slackware-current).

-v, --verbose

Display detailed build output on the console during execution. See Logging (below) for details.

--dry-run

Builds, rebuilds and updates will be performed, and removals will be notified, but no changes will be made to the package repository.

--install

Built, rebuilt and updated packages will be installed on the host system. This results in a "queue" style build, and packages may not be 100% clean of unexpected dependencies. The default is for packages not to be installed.

--lint

The SlackBuild files, source downloads and packages will be subjected to additional quality tests during the build.

Logging

All messages from slackrepo are sent to a main log file. Progress messages are displayed on the screen.

Detailed output from each build process is sent to an item-specific log file, but is not displayed on the screen unless you specify the --verbose (-v) control argument.

The log files are in a repository-specific directory. A new main log file is created for each run of slackrepo, with a name of the form
/var/log/slackrepo/SBo/slackrepo_YYYY-MM-DD_hh:mm:ss.log

Each item-specific log file is in a subdirectory if the SlackBuilds directory has subdirectories. For example, the log file for building the SBo item 'graphics/shotwell' is
/var/log/slackrepo/SBo/graphics/shotwell/build.log