SLACKREPO.CONF(5)

NAME
slackrepo.conf - repository configuration files for slackrepo

SYNOPSIS
/etc/slackrepo/slackrepo_ID.conf (where ID is a repository ID, for example, SBo)

~/.genreprc

~/.slackreporc

DESCRIPTION
slackrepo(8) reads configuration data from ~/.slackreporc and ~/.genreprc and /etc/slackrepo/slackrepo_ID.conf

These files contain assignments of configuration variables, one per line, in the form

        NAME=VALUE

The files are 'sourced' by bash, so spaces are not permitted either side of '='. Lines starting with '#' and empty lines are ignored. Assigned values may optionally be enclosed in single or double quotes. The strings %REPO%, %SLACKVER% and %ARCH% are automatically replaced by the repo ID, Slackware version, and arch, respectively.

Any values specified in the configuration files are overridden by environment variables or control arguments on the slackrepo command line. Values specified in ~/.slackreporc and ~/.genreprc override values specified in /etc/slackrepo/slackrepo_ID.conf.

Note that all the examples below show the values that are set in the supplied configuration file for the SBo (SlackBuilds.org) repository ID.

  Default repo ID and configuration directory

The following configuration variables can be set only in ~/.slackreporc.

REPO
    The default repo ID. This determines the configuration file slackrepo_ID.conf from which other configuration variables will be read. This variable can be set only in ~/.slackreporc, but can be overridden by the REPO environment variable or by the command line option --repo=ID.

    Example:
        REPO="SBo"

CONFIGDIR
    The configuration directory. This specifies an alternative directory to be used instead of /etc/slackrepo to find the configuration files. This variable can be set only in ~/.slackreporc, but can be overridden by the CONFIGDIR environment variable.

    Example:
        CONFIGDIR="/etc/slackrepo"

  Repository filestore locations

The following configuration variables determine repository filestore locations. These variables can be set in ~/.slackreporc or /etc/slackrepo/slackrepo_ID.conf, or can be overridden by environment variables.

SBREPO
    Filestore location of the local SlackBuilds repository.

    Example:
        SBREPO="/var/lib/slackrepo/%REPO%/slackbuilds"

SRCREPO
    Where to store cached sources. (You will need plenty of space.)

    Example:
        SRCREPO="/var/lib/slackrepo/%REPO%/source"

PKGREPO
    Filestore location of the local package repository, i.e., where to store built packages. (You will need plenty of space.)

    Example:
        PKGREPO="/var/lib/slackrepo/%REPO%/packages"

    If you intend to use the package repository with slackpkg+, you may wish to change this path or symlink it to a location accessible by a local web server (e.g., somewhere under /var/www/htdocs/).

PKGBACKUP
    Where to keep backups. (You will need plenty of space.)

    Example:
        PKGBACKUP="/var/lib/slackrepo/%REPO%/backups/%SLACKVER%/%ARCH%"

    You can disable backups by commenting out or deleting this line.

HINTDIR
    Where to find locally written hintfiles for this repository.

    Example:
        HINTDIR="/etc/slackrepo/%REPO%/hintfiles"

DEFAULT_HINTDIR
    Where to find system-provided default hintfiles (these come in a separate slackrepo-hints package).

    Example:
        DEFAULT_HINTDIR="/etc/slackrepo/%REPO%/default_hintfiles/%SLACKVER%"

    You can disable all the default hintfiles for this repository by commenting out or deleting this line.

LOGDIR
    Where to store log files.

    Example:
        LOGDIR="/var/log/slackrepo/%REPO%"

DATABASE
    Where to keep the database for this repository.

    Example:
        DATABASE="/var/lib/slackrepo/%REPO%/database_%REPO%_%ARCH%.sqlite3"

TMP Where to store temporary files. (You will need plenty of space.)

    Example:
        TMP="/tmp/%REPO%"

  Building packages

The following configuration variables affect the building of packages. These variables can be set in ~/.slackreporc or /etc/slackrepo/slackrepo_ID.conf, or can be overridden by environment variables.

SUBSTITUTE
    A space-separated list of dependency substitutions applied to all SlackBuilds in this repository. Substitution of X by Y is written as X=>Y. Deletion of X is written as !X. Spaces and commas can be added for readability.

    Example:
        SUBSTITUTE="jdk => openjdk, jack_audio_connection_kit => jack2"

NUMJOBS
    Number of make jobs to set in MAKEFLAGS (e.g., '-j2'). Leave blank to have this dynamically controlled according to the number of processors on the build host and the current load average.

    Example:
        NUMJOBS=''

ARCH
    Arch for built packages. Leave this blank to have the arch automatically determined by the build host.

    Example:
        ARCH=''

TAG Tag for built packages. If you are publishing packages from SlackBuilds.org, please change SBo to something else (see SlackBuilds.org FAQ, item 20).

    Example:
        TAG="_SBo"

PKGTYPE
    Package compression type. This can be tgz (gzip compressed), txz (xz), tbz (bzip2), or tlz (lzma).

    Example:
        PKGTYPE="tgz"

  Hooks

The following configuration variables are defined as bash arrays. Multiple values can be specified between the parentheses, separated by spaces.

HOOK_START
    Specifies pathnames, commands or slackrepo hook functions to be run before slackrepo starts processing.

    Example:
        HOOK_START=( gitfetch_hook )

HOOK_FINISH
    Specifies pathnames, commands or slackrepo hook functions to be run after slackrepo finishes processing.

    Example:
        HOOK_FINISH=( genrepos_hook /usr/local/bin/rsync_my_repo )

  Defaults for control arguments

The configuration variables VERBOSE, VERY_VERBOSE, DRY_RUN, INSTALL, CHROOT, LINT, KEEP_TMP, COLOR, NICE and NOWARNING set the defaults for slackrepo's command line control arguments. These variables can be set in ~/.slackreporc or /etc/slackrepo/slackrepo_ID.conf.

Examples:

        VERBOSE='n'
        VERY_VERBOSE='n'
        DRY_RUN='n'
        INSTALL='n'
        CHROOT='/'
        LINT='n'
        KEEP_TMP='n'
        COLOR='auto'
        NICE='5'
        NOWARNING=''

  Calling gen_repos_files.sh

The following configuration variables relate to the optional use of gen_repos_files.sh. They can be set in ~/.slackreporc or /etc/slackrepo/slackrepo_ID.conf, or can be overridden by environment variables.

USE_GENREPOS
    Whether to use gen_repos_files.sh. For SBo, the value supplied is 0 (disabled). To enable it, change this to 1.

    Example:
        USE_GENREPOS=0

REPOSROOT="$PKGREPO"
    Don't change this! it is needed so gen_repos_files.sh can find your package repository.

The following gen_repos_files.sh configuration variables can be set in ~/.genreprc, ~/.slackreporc, or /etc/slackrepo/slackrepo_ID.conf, or can be overridden by environment variables.

If USE_GENREPOS is enabled, you must review and set correct values for all these variables - the default values will not be sufficient.

REPOSOWNER
    Repository maintainer.

    Example:
        REPOSOWNER="Local administrator <root@localhost>"

REPOSOWNERGPG
    The GPG key for the repository owner can contain a different string than the value of $REPOSOWNER . If you leave $REPOSOWNERGPG empty, the script will use the value you've set for $REPOSOWNER instead to search the GPG keyfile.

    Example:
        REPOSOWNERGPG=""

DL_URL
    Under what URL is the repository accessible.

    Example:
        DL_URL="http://localhost/pkgrepo/%REPO%/%SLACKVER%/%ARCH%"

RSS_TITLE
    The title of the generated RSS feed.

    Example:
        RSS_TITLE="Local SlackBuild Packages"

RSS_ICON
    The logo picture used for the RSS feed.

    Example:
        RSS_ICON="http://www.slackware.com/~alien/graphics/blueorb.png"

RSS_LINK
    The URL linked to when clicking on the logo.

    Example:
        RSS_LINK="file://$REPOSROOT/ChangeLog.txt"

RSS_CLURL
    URL to the full ChangeLog.txt.

    Example:
        RSS_CLURL="file://$REPOSROOT/ChangeLog.txt"

RSS_DESCRIPTION
    The descriptive text for the RSS feed.

    Example:
        RSS_DESCRIPTION="Local SlackBuild Packages"

RSS_FEEDMAX
    Maximum number of RSS feed entries to display.

    Example:
        RSS_FEEDMAX=15

RSS_UUID
    The RSS generator must use a unique feed identifier. Generate one for your feed by using the string returned by "uuidgen -t".

    Example:
        RSS_UUID="e8dc1000-8e8a-11e7-b78d-001e4fb494b2"

GPGBIN
    Either use gpg or gpg2.

    Example:
        GPGBIN="/usr/bin/gpg"

USE_GPGAGENT
    Optionally use gpg-agent to cache the gpg passphrase instead of letting the script keep it in the environment (note that if you define USE_GPGAGENT=1 but gpg-agent is not running, you will get prompted for a passphrase every single time gpg runs).

    Example:
        USE_GPGAGENT=0

FOR_SLAPTGET
    Generate slack-requires, slack-suggests, and slack-conflicts lines in the metadata files by setting FOR_SLAPTGET to "1" -- these lines are used by the slapt-get package manager.

    Example:
        FOR_SLAPTGET=0

FOLLOW_SYMLINKS
    Follow symlinks in case the repository has symlinks like 14.0 -> 13.37 indicating that one package works for those two Slackware releases. If the script does _not_ follow symlinks, then the symlinks will appear in the repository listing instead of the packages they point to.

    Example:
        FOLLOW_SYMLINKS=1

REPO_SUBDIRS
    If the repository has separate package subdirectories (for separate Slackware releases or architectures) then define them here. Separate FILELIST.TXT, MANIFEST etc.. files will be created for all of them.

    Example:
        REPO_SUBDIRS=""

REPO_EXCLUDES
    If you want to exclude certain directories or files from being included in the repository metadata, define them here (space-separated).

    Example:
        REPO_EXCLUDES=".htaccess"

  Initial setup

The following configuration variables determine how the SlackBuilds repository will be created if it does not already exist. These variables are set in /etc/slackrepo/slackrepo_ID.conf. Normally, they are only used when slackrepo is run for the first time in an empty repository.

INIT_GITCLONE
    The remote git repository to be cloned.

    Example:
        INIT_GITCLONE='git://git.slackbuilds.org/slackbuilds'

INIT_GITBRANCH
    The local git branch to be created, tracking the remote branch of the same name.

    Example:
        INIT_GITBRANCH='%SLACKVER%'

  Environment variables

The slackrepo configuration file can be a useful place to set environment variables for the build process. You can simply add export commands at the end of the configuration file.

For example, you can add the following commands to compile everything with clang instead of gcc (but please note, there are a few packages do not build correctly with clang).

        export CC=clang
        export CXX=clang++

SEE ALSO

slackrepo(8), slackrepo.hint(5), installpkg(8), upgradepkg(8), removepkg(8), pkgtool(8), slackpkg(8).