repod.conf

SYNOPSIS

$XDG_CONFIG_HOME/repod/repod.conf

$XDG_CONFIG_HOME/repod/repod.conf.d/

/etc/repod.conf

/etc/repod.conf.d/

DESCRIPTION

A TOML based configuration file, which can be provided in a default configuration file location and/ or override configuration file locations. Override configuration files are read and merged in alphabetically order and have higher precedence than the default configuration file location.

Configuration files provided in the system-wide locations (i.e. /etc/repod.conf and /etc/repod.conf.d/) are only used for system-wide use of repod, while configurations provided in per-user locations (i.e. $XDG_CONFIG_HOME/repod/repod.conf and $XDG_CONFIG_HOME/repod/repod.conf.d/) are only used for per-user use of repod.

If no configuration file is provided, defaults are assumed (see DEFAULTS).

GLOBAL OPTIONS

Global options provide the defaults for any repository that does not define them. For any undefined option defaults are assumed (see DEFAULT OPTIONS).

  • architecture: A string setting the CPU architecture used for any repository, which does not define it. Understood values are

    "aarch64", "any", "arm", "armv6h", "armv7h", "i486", "i686", "pentium4", "riscv32", "riscv64", "x86_64", "x86_64_v2", "x86_64_v3", "x86_64_v4"
    
  • database_compression: A string setting the database compression used for any repository, which does not define it. Understood values are

    "", "bz2", "gz", "xz", "zst"
    
  • management_repo: A table setting a directory and an optional upstream url string which serves as the management repository for any repository, which does not define it. Each configured repository is represented as a subdirectory structure in the management repository. Many repositories can share the same management_repo.

  • package_pool: A string setting a directory that serves as the package pool for any repository, which does not define it.

  • package_verification: An optional string setting the implementation of the package signature verification for all repositories. If a signature verification implementation is selected, packages that are added to the repository must be signed. Understood values are

    "pacman-key"
    
  • source_pool: A string setting a directory that serves as the source tarball pool for any repository, which does not define it.

SYNC DATABASE SETTINGS

Sync database settings offer control over the way data for repository sync databases is exported. For any undefined option defaults are assumed (see DEFAULT OPTIONS).

  • desc_version: An integer setting the desc version used when exporting the management repository to a repository sync database. Understood values are

    1, 2
    
  • files_version: An integer setting the files version used when exporting the management repository to a repository sync database. Understood values are

    1
    

REPOSITORY OPTIONS

Repository options are used to configure a specific repository. If optional options are not defined, global options (see GLOBAL OPTIONS) or defaults (see DEFAULT OPTIONS) are assumed.

  • architecture (optional): A string setting the CPU architecture. Understood values are

    "aarch64", "any", "arm", "armv6h", "armv7h", "i486", "i686", "pentium4", "riscv32", "riscv64", "x86_64", "x86_64_v2", "x86_64_v3", "x86_64_v4"
    
  • database_compression (optional): A string setting the database compression used for the repository. Understood values are

    "", "bz2", "gz", "xz", "zst"
    
  • management_repo (optional): A table setting a directory and an optional upstream url string which serves as the management repository for the repository. Each configured repository is represented as a subdirectory structure in the management repository. Many repositories can share the same management_repo.

  • name: A string setting the name of the repository. It is used as the location to store stable package data of the repository. The name and architecture combination must be unique. If the string denotes a relative directory it is used below the default package repository base directory (see DEFAULT DIRECTORIES).

    If the string denotes an absolute directory it is used directly and the default base directory is disregarded.

  • package_pool (optional): A string setting a directory that serves as the package pool for the repository. If repositories move packages amongst one another, they need to use the same package_pool.

  • source_pool (optional): A string setting a directory that serves as the source tarball pool for the repository. If repositories move packages amongst one another, they need to use the same package_pool.

  • staging (optional): A string setting the staging name of the repository. It is used as the location to store staging package data of the repository. Multiple repositories may use the same stable and architecture combination. If the string denotes a relative directory it is used below the default package repository base directory (see DEFAULT DIRECTORIES).

    If the string denotes an absolute directory it is used directly and the default base directory is disregarded.

  • testing (optional): A string setting the testing name of the repository. It is used as the location to store testing package data of the repository. Multiple repositories may use the same stable and architecture combination. If the string denotes a relative directory it is used below the default package repository base directory (see DEFAULT DIRECTORIES).

    If the string denotes an absolute directory it is used directly and the default base directory is disregarded.

DEFAULTS

If no configuration is provided, a repository named “default”, with management repository, but without staging or testing repository, using default directories and default options is created automatically. This roughly evaluates to the following configuration:

architecture = "any"
database_compression = "gz"

[syncdb_settings]
desc_version = 1
files_version = 1

[management_repo]
directory = "default"

[[repositories]]
name = "default"

DEFAULT DIRECTORIES

  • $XDG_STATE_HOME/repod/management/ The default per-user location below which management repository directories are created (aka management repository base directory).

  • /var/lib/repod/management/ The default system-wide location below which management repository directories are created (aka management repository base directory).

  • $XDG_STATE_HOME/repod/data/pool/package/ The default per-user location below which package pool directories are created (aka. package pool base directory).

  • /var/lib/repod/data/pool/package/ The default system-wide location below which package pool directories are created (aka. package pool base directory).

  • $XDG_STATE_HOME/repod/data/repo/package/ The default per-user location below which package repository directories are created (aka. package repository base directory).

  • /var/lib/repod/data/repo/package/ The default system-wide location below which package repository directories are created (aka. package repository base directory).

  • $XDG_STATE_HOME/repod/data/pool/source/ The default per-user location below which source pool directories are created (aka. source pool base directory).

  • /var/lib/repod/data/pool/source/ The default system-wide location below which source pool directories are created (aka. source pool base directory).

  • $XDG_STATE_HOME/repod/data/repo/source/ The default per-user location below which source repository directories are created (aka. source repository base directory).

  • /var/lib/repod/data/repo/source/ The default system-wide location below which source repository directories are created (aka. source repository base directory).

DEFAULT OPTIONS

  • The default CPU architecture if neither global nor per-repository architecture is defined:

    "any"
    
  • The default database compression if neither global nor per-repository database_compression is defined:

    "gz"
    
  • The default repository name if no repository is defined:

    "default"
    
  • The default desc_version for sync databases if none is defined:

    1
    
  • The default files_version for sync databases if none is defined:

    1
    

EXAMPLES

Example 1. One repository with custom architecture

[[repositories]]
architecture = "x86_64"
name = "repo"
staging = "repo-staging"
testing = "repo-testing"

Example 2. Two repositories with shared staging and testing

[[repositories]]
architecture = "x86_64"
name = "repo1"
staging = "repo-staging"
testing = "repo-testing"

[[repositories]]
architecture = "x86_64"
name = "repo2"
staging = "repo-staging"
testing = "repo-testing"

Example 3. One repository with custom management repo

[[repositories]]
architecture = "x86_64"
name = "repo1"
staging = "repo-staging"
testing = "repo-testing"
[management_repo]
directory = "custom_management"
url = "ssh://user@custom-upstream.tld/repository.git"

Example 4. One repository with non-standard directories

[[repositories]]
architecture = "x86_64"
name = "/absolute/path/to/repo1"
staging = "/absolute/path/to/repo-staging"
testing = "/absolute/path/to/repo-testing"
[management_repo]
directory = "/absolute/path/to/management_repo"

Example 5. One repository with pacman-key based signature verification

package_verification = "pacman-key"

[[repositories]]
architecture = "x86_64"
name = "repo1"
debug = "repo-debug"
staging = "repo-staging"
testing = "repo-testing"

SEE ALSO

repod-file(1), pacman(8), pacman-key(8)