abs.conf(5)
===========
:doctype: manpage
:man source: abs.conf
:man manual: ABS Manual
:man version: %%ABS_VERSION%%


Name
----
abs.conf - the Arch Build System configuration file


SYNOPSIS
--------
[verse]
'~/.abs.conf'
'%%ABS_CONF_FILE%%'


Description
-----------
The *`abs`* configuration file contains a number of variables that affect the
utility's behavior; it uses the ``INI file format.'' There are three major
sections: *`abs`*, *`makepkg`*, and *`pacman`*. Each section contains the
configuration variables that affect abs's invocation of that utility; however,
within the *makepkg* and *pacman* sections, not every variable coincides to the
named utility. Some are specific to the functioning of the *`abs <command>`*
that utilizes it.

Configuration data is obtained from the following sources, ordered by precedence
from highest to lowest:

 . command-line arguments
 . environment variables
 . user's configuration file
 . system-wide configuration file

Syntax
~~~~~~
Every variable must be within a section and is case sensitive. A variable can be
set as *name = value* or *name : value*, but do *not* quote the values. Leading
and trailing whitespace is ignored; however, multi-line values require
subsequent lines to be indented with at least one space. Comments begin with
either the *#* or *;* character and continue to the end of the line.

Array elements need to be separated by whitespace, *not* commas. Boolean values
can be set as true/false, 1/0, yes/no, or on/off. Strings are case sensitive and
should not contain whitespace or be quoted.


Variables
---------
Configuration variables separated by section.

&#91;abs&#93;
~~~~~~~~~~~~~
The standard variables that affect every *`abs <command>`*.

*absroot*::
        The location of the *ABS tree*. Either an absolute or relative path can
        be given. The user running `abs` does not require write access unless an
        *`abs sync`* is issued. Defaults to '%%ABS_ROOT%%'.

*builddir*::
        The directory used for building the packages. Either an absolute or
        relative path can be given, and write access is required for this
        directory. Defaults to '%%ABS_BUILD_DIR%%'.

*pkgdir*::
        The directory where packages will be output. Either an absolute or
        relative path can be given, and write access is required for this
        directory. Defaults to '%%ABS_PKG_DIR%%'.

*patchdir*::
        The directory containing patches for the source code or ABS files.
        Either an absolute or relative path can be given, and write access is
        required for this directory. Defaults to '%%ABS_PATCH_DIR%%'.
// The following line is needed to get the correct indentation!!
 +
        Patches must be in the unified format and in a directory with the same
        name as the package to which it will be applied (i.e.,
        '%%ABS_PATCH_DIR%%/<pkg>').

*arch*::
        The architectures to include in the *ABS tree*. This value is an array
        and all of the supported architectures can be set here. Nevertheless,
        when a cross compiler is not used, trying to build for an architecture
        not supported by your machine will fail. Defaults to 'i686'.

*repos*::
        An ordered array of repositories. When only a package name is provided,
        the array's order establishes the precedence of the repositories to
        search. Two situations cause this to occur: 1) the form of the
        `<pkgspec>` used is `<pkg>`, or 2) a `<pkgspec>` is *not* given and the
        *`pkgs`* variable is set to something other than *ALL*. Defaults to
        ('core extra community multilib').

*pkgs*::
        The array of packages on which `abs` is to operate. When a `<pkgspec>`
        is *not* given and *`pkgs = ALL`*, the *working set* consists of all
        packages found in *`repos`*. Defaults to 'ALL'.

*syncserver*::
        The server to use for synchronization of the *ABS tree*. '`rsyncd`' must
        be running and setup properly for the ABS. A sample stanza can be found
        in the conf directory of the abs source code. Defaults to
        'rsync.archlinux.org'.

*mirrorlist*::
        The mirror list used for syncing via tarball. Must be in the same format
        as defined in *REPOSITORY SECTIONS* of *pacman.conf*(5). Defaults to
        '/etc/pacman.d/mirrorlist'.

&#91;makepkg&#93;
~~~~~~~~~~~~~~~~~
`makepkg` is used during an *`abs build`*, so these variables affect that
command.

*nodeps*::
        A boolean value to prevent dependency checks. This will cause a build
        failure if the *makedepends* variable for a package is not empty.
        Moreover, the program will fail to run if installed without packages
        listed in *depends*. Defaults to 'false'.

*builddeps*::
        Build missing dependencies. If set to *true*, any missing dependencies
        will be added to the *working set* and treated as if they were
        explicitly included. Defaults to 'true'.

*syncdeps*::
        Install missing dependencies via *`pacman`*. If set to *true*, any
        missing dependencies will be downloaded and installed. Defaults to
        'false'.

NOTE: *builddeps* and *syncdeps* are mutually exclusive options that should
never be 'true' at the same time. That said, since *builddeps* is 'true' by
default, it will take priority over *syncdeps* if both are 'true'.

&#91;pacman&#93;
~~~~~~~~~~~~~~~~
`pacman` is used during an *`abs install`* or *`abs build --syncdeps`*, so these
variables affect those command.

*noconfirm*::
        A boolean value to bypass all confirmation messages. Defaults to
        'false'.


See Also
--------
*abs*(8), *ABS*(7)


include::footer.txt[]

Reply via email to