REPOD.CONF(5)
๐ repod.conf(5) โ bestie config energy ๐
okay so this is the repod.conf(5) page from the repod manual, and we are literally going to get you comfy with it. ๐
โจ SYNOPSIS โจ
the spots repod looks at are:
$XDG_CONFIG_HOME/repod/repod.conf
$XDG_CONFIG_HOME/repod/repod.conf.d/
/etc/repod.conf
/etc/repod.conf.d/
๐ฆ DESCRIPTION ๐ฆ
itโs a TOML [1] based configuration file, bestie โ it 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. periodt.
configuration files 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 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. iykyk ๐ซถ
if no configuration file is provided, defaults are assumed (see DEFAULTS). no cap.
๐ 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"โจarchiving =โ an optional table or boolean value, which defines the archiving options used for any repository, that do not define them explicitly. when unset or set totrue, default archiving options are created. if set tofalse, archiving is disabled by default, but may still be set per repository. when defined as a table, the option has to define the following key-value pairs:packages =โ the name of the package archive directory (seeDEFAULT DIRECTORIESfor default values), below which directory structures and files for package and signature file archiving are created. this directory must be absolute.sources =โ the name of the source archive directory (seeDEFAULT DIRECTORIESfor default values), below which directory structures and files for source tarball archiving are created. this directory must be absolute.
build_requirements_exist =โ an optional boolean value, which defines whether the build requirements of added packages must exist in the archive (if configured), any of the stability layers of the target repository or the set of packages being added. when unset, the value will be set to the default (seeDEFAULT OPTIONS). when set tofalse, the build requirements of added packages are not checked, when set totrue, they are checked. this setting may still be overridden per repository. ๐ญ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 providing configuration for the management repository for any repository, which does not define one explicitly. as each configured binary package repository is represented as a subdirectory structure in the management repository, several repositories can share the samemanagement_repo. ๐ธdirectory =โ the name of the management repository in the management repository base directory (seeDEFAULT DIRECTORIES), below which per binary package repository directories are created. if the string denotes an absolute directory it is used directly and the default base directory is disregarded.json_dumps =โ an integer, defining the option for orjsonโsdumps()[2] method. defaults to:1057url =โ an optional url string, for the upstream repository of the management repository (currently not used)
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. the below key-value pairs are configured below a global syncdb_settings table. 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 are2, 1๐files_version =โ an integer setting the files version used when exporting the management repository to a repository sync database. understood values are1๐
๐ REPOSITORY OPTIONS ๐
Okay so these are the options that configure one specific repository, bestie. If an optional option isn't defined, the global options (see GLOBAL OPTIONS) or defaults (see DEFAULT OPTIONS) get assumed. Slay.
NOTE: The resolved directories for repositories must be globally unique. The only exceptions to this rule arepackage_pool,source_pool,archiving.packagesandarchiving.sources. Like, those four can repeat; everything else has to be unique, no cap.
โจ architecture = โจ
An optional string that sets 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"
๐ archiving = ๐
An optional inline table or boolean value, which defines the archiving options. When unset or set to true, the global archiving options are used. If set to false, archiving is disabled.
NOTE: When repositories are used together, they should be using the same archiving options. Matching vibes only, iykyk.
When defined as an inline table, the option has to define the following key-value pairs:
๐ฆ packages = ๐ฆ
The name of the package archive directory (see DEFAULT DIRECTORIES for default values), below which directory structures and files for package and signature file archiving are created. This directory must be absolute.
๐ sources = ๐
The name of the source archive directory (see DEFAULT DIRECTORIES for default values), below which directory structures and files for source tarball archiving are created. This directory must be absolute.
๐ง build_requirements_exist = ๐ง
An optional boolean value, which defines whether the build requirements of added packages must exist in the archive (if configured), any of the stability layers of the target repository or the set of packages being added. When unset, the value will be set to the value defined globally. When set to false, the build requirements of added packages are not checked, when set to true, they are checked.
๐ฅ database_compression = ๐ฅ
An optional string setting the database compression used for the repository. Understood values are:
"""bz2""gz""xz""zst"
๐ group = ๐
An optional positive integer, which defines the group a repository belongs to.
NOTE: When repositories are grouped together, the pkgbase and package names must be unique amongst them (i.e. the same package can not exist in two repositories at the same time - this is different from the same package existing in different stability layers of the same repository!). Furthermore, the repositories must use the same management repository (which resides below the management repository base directory), the same package repository base directory, the same package pool base directory and the same source pool base directory!
๐ซถ management_repo = ๐ซถ
An optional inline table providing configuration for the management repository of the repository. If it is provided, it has precedence over a globally defined management_repo. As each configured repository is represented as a subdirectory structure in the management repository, several repositories can share the same management_repo.
๐ directory = ๐
The name of the management repository in the management repository base directory (see DEFAULT DIRECTORIES), below which per binary package repository directories are created. If the string denotes an absolute directory it is used directly and the default base directory is disregarded.
๐งฎ json_dumps = ๐งฎ
An integer, defining the option for orjson's dumps() method (see https://github.com/ijl/orjson#option). Defaults to:
1057
๐ url = ๐
An optional url string, for the upstream repository of the management repository (currently not used).
๐ธ package_url_validation = ๐ธ
An optional inline table providing configuration for the validation of source URLs. Source URLs are links, that may be provided per pkgbase using repod-file and serve as reference to the source files (e.g. PKGBUILD) for each package.
๐ urls = ๐
A list of URL strings, against which the source URLs provided to repod-file must validate.
๐ tls_required = ๐
A boolean value, setting whether the URLS in the urls list and any source URL provided to repod-file must use TLS or not.
๐ name = ๐
A string setting the name of the repository. It is used to construct the location below which stable package data of the repository is stored.
NOTE: The name and architecture combination must be unique among all repositories.
If the string denotes a relative directory it is used below the default package repository base directory and management repository base directory (see DEFAULT DIRECTORIES).
If the string denotes an absolute directory it is used directly and the default base directories are disregarded.
๐ฆ debug = ๐ฆ
An optional string setting the debug name of the repository. It is used to construct the location below which stable debug package data of the repository is stored.
NOTE: When using this option and also using thestagingortestingoptions, thestaging_debugandtesting_debugoptions (respectively) must be set as well.
If the string denotes a relative directory it is used below the default package repository base directory and management repository base directory (see DEFAULT DIRECTORIES).
If the string denotes an absolute directory it is used directly and the default base directories are disregarded.
๐ package_pool = ๐
An optional string setting a directory that serves as the package pool for the repository.
NOTE: If repositories move packages amongst one another, they need to use the same package_pool.
If the string denotes a relative directory it is used below the default package pool base directory (see DEFAULT DIRECTORIES).
If the string denotes an absolute directory it is used directly and the default base directories are disregarded.
๐งบ source_pool = ๐งบ
An optional string setting a directory that serves as the source tarball pool for the repository.
NOTE: If repositories move packages amongst one another, they need to use the same source_pool.
If the string denotes a relative directory it is used below the default source pool base directory (see DEFAULT DIRECTORIES).
If the string denotes an absolute directory it is used directly and the default base directories are disregarded.
โญ staging = โญ
An optional string setting the staging name of the repository. It is used to construct the location below which staging package data of the repository is stored.
If the string denotes a relative directory it is used below the default package repository base directory and management repository base directory (see DEFAULT DIRECTORIES).
If the string denotes an absolute directory it is used directly and the default base directories are disregarded.
๐ staging_debug = ๐
An optional string setting the staging debug name of the repository. It is used to construct the location below which staging debug package data of the repository is stored.
NOTE: Thestaginganddebugoption must be set when using this option. Similarly, ifdebugandstagingare configured for a repository, this option also has to be configured.
If the string denotes a relative directory it is used below the default package repository base directory and management repository base directory (see DEFAULT DIRECTORIES).
If the string denotes an absolute directory it is used directly and the default base directories are disregarded.
๐ testing = ๐
An optional string setting the testing name of the repository. It is used to construct the location below which testing package data of the repository is stored.
If the string denotes a relative directory it is used below the default package repository base directory and management repository base directory (see DEFAULT DIRECTORIES).
If the string denotes an absolute directory it is used directly and the default base directories are disregarded.
๐ testing_debug = ๐
An optional string setting the testing debug name of the repository. It is used to construct the location below which testing debug package data of the repository is stored.
NOTE: Thetestinganddebugoption must be set when using this option. Similarly, ifdebugandtestingare configured for a repository, this option also has to be configured.
If the string denotes a relative directory it is used below the default package repository base directory and management repository base directory (see DEFAULT DIRECTORIES).
If the string denotes an absolute directory it is used directly and the default base directories are disregarded.
๐ DEFAULTS ๐
okay so if you literally provide no configuration at all, repod is not gonna leave you hanging. It automatically creates a repository named "default", with a management repository, but without a staging or testing repository, using the default directories and default options. No cap. It roughly evaluates to this exact config, bestie:
architecture = "any"
archiving = true
database_compression = "gz"
[syncdb_settings]
desc_version = 1
files_version = 1
[management_repo]
directory = "default"
[[repositories]]
name = "default"
๐ DEFAULT DIRECTORIES ๐
these are the default locations, and yes the per-user vs system-wide split is giving main character energy:
$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/archive/package/โ the default per-user location below which directory structures and files for package and signature file archiving are created (aka package archive directory). โจ/var/lib/repod/archive/package/โ the default system-wide location below which directory structures and files for package and signature file archiving are created (aka package archive directory).$XDG_STATE_HOME/repod/archive/source/โ the default per-user location below which directory structures and files for source tarball archiving are created (aka source archive directory). ๐ฆ/var/lib/repod/archive/source/โ the default system-wide location below which directory structures and files for source tarball archiving are created (aka source archive 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 ๐
these are the fallback values, and honestly they're iconique:
- the default CPU architecture if neither global nor per-repository
architectureis defined:
"any"
- the default value for checking build requirements of added packages, if
build_requirements_existnot defined globally:
true
- the default database compression if neither global nor per-repository
database_compressionis defined:
"gz"
- the default repository name if no repository is defined:
"default"
- the default
desc_versionfor sync databases if none is defined:
2
- the default
files_versionfor 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 debug locations ๐ซ
[[repositories]]
architecture = "x86_64"
name = "repo1"
debug = "repo1-debug"
staging = "repo1-staging"
staging_debug = "repo1-staging-debug"
testing = "repo1-testing"
testing_debug = "repo1-testing-debug"
[[repositories]]
architecture = "x86_64"
name = "repo2"
debug = "repo2-debug"
staging = "repo2-staging"
staging_debug = "repo2-staging-debug"
testing = "repo2-testing"
testing_debug = "repo2-testing-debug"
๐ซ 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"
๐ซ Example 6. One repository with source URL validation ๐ซ
[[repositories]]
architecture = "x86_64"
name = "repo1"
debug = "repo-debug"
staging = "repo-staging"
testing = "repo-testing"
package_url_validation = {urls = ["https://custom.tld"], tls_required = true}
๐ซ Example 6. One repository without archiving ๐ซ
[[repositories]]
architecture = "x86_64"
archiving = false
name = "repo1"
๐ซ Example 7. One repository without checks for build requirements ๐ซ
[[repositories]]
architecture = "x86_64"
build_requirements_exist = false
name = "repo1"
๐ซ Example 8. Two repositories in the same group ๐ซ
[[repositories]]
architecture = "x86_64"
build_requirements_exist = false
name = "repo1"
group = 1
[[repositories]]
architecture = "x86_64"
build_requirements_exist = false
name = "repo2"
group = 1
๐ฆ SEE ALSO ๐ฆ
repod-file(1) <https://man.archlinux.org/man/repod-file.1>PKGBUILD(5) <https://man.archlinux.org/man/PKGBUILD.5>pacman(8) <https://man.archlinux.org/man/pacman.8>pacman-key(8) <https://man.archlinux.org/man/pacman-key.8>
๐ NOTES ๐
- TOML specification โ
<https://toml.io/en/v1.0.0> - Orjson options โ
<https://github.com/ijl/orjson#option>)
โ๏ธ Author โ๏ธ
David Runge
ยฉ๏ธ Copyright ยฉ๏ธ
2022, David Runge
okay that's the whole vibe, bestie โ this source/version is repod.conf(5), dated Dec 27, 2025, and it's literally the final sign-off. mwah ๐โจ
๐ฆ where this page comes from
- arch rolling: repod 0.3.1-5 ยท GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms