MPB.CONFIG(5)
β¨ MPB.CONFIG β¨
okay bestie, this is the manual page for mpb.config β section 5 of the manual, so like, the file-format one π
β and it's literally all about the format of mpb.config. sit down, grab a strawberry drink π, we're doing this.
π¦ NAME π¦
mpb.config β it's giving "the format of mpb.config" β¨
π DESCRIPTION π
π General configuration π
So the mass-prebuilder config file is written in YAML, periodt. It's made of a main section with global parameters, plus backend-specific sections. That's the whole vibe.
At the top-level, here's what you can use:
bootstrapβ a boolean that turns on bootstrap mode for the entire build. no cap, the whole thing π
By default, mpb goes looking for config files in this exact order:
- any file you hand it through the
--configargument - a
mpb.configfile sitting in the current directory ${HOME}/.mpb/config
And the way that it works: if any of these is found, it gets read and the others are straight-up ignored π.
At its simplest, the config just gives you the list of main packages to be built:
packages:
autoconf:
src_type: file
src: /path/to/autoconf.src.rpm
This creates a mass build around autoconf, on Fedora rawhide for the x86_64 architecture. The list of packages that depend on autoconf and need to be rebuilt is computed automatically. iconic behaviour honestly β¨
All the available configuration options, the defaults and the accepted values are detailed in /usr/share/doc/mass-prebuild/examples/mpb.config.yaml. go read it, iykyk π
Note β thepriorityandenable_prioritiesconfiguration keys are deprecated π and have been replaced bybuild_orderandautomatic_build_orderingrespectively. They're kept around for backward compatibility, but they may be removed in a future release. so like, move on fr fr.
π Reverse dependency configuration π
The revdeps key in the config file lets you customize how reverse dependencies are handled. two knobs, that's it:
sampleβ an integer. if you set it to a value greater than 0, MPB will select a random sample of this many reverse dependencies to build. random sample era π²postprocessβ a string containing the path to an executable script. if you provide it, this script gets executed to programmatically modify the list of reverse dependencies before the build begins. this allows for custom filtering, reordering, or addition of packages. Seemass-prebuild(7)for a detailed explanation and important security considerations. β οΈ like, genuinely read that one bestie, security matters.
π§ Backends π§
The mass-prebuilder comes with multiple back-ends which have different sets of capabilities. pick your fighter π
copr is the original back-end, the one that's recommended in most situations. It provides flexibility in terms of architecture and distributions, and it even allows you to rebuild a failed package while providing SSH access to the builder if needed. This back-end has similar requirements as the copr-cli tool in terms of credentials and accesses. the main character of backends, honestly π
mock allows you to build the packages on your local machine. This may be handy when debugging the build failure is needed. There are some limitations in terms of flexibility. Currently not all state can be cleaned up correctly if the python sub-process is terminated manually during the mbp build. It is therefore recommended to either let the process run until the end, or daemonize it (and let it run). so like, don't ghost it mid-build π
remote_mock uses similar features as the mock backend, through SSH. Similar limitations to the mock backend are to be expected, moreover if the connection isn't stable. flaky wifi? not the vibe π«
koji makes use of the Koji build infrastructure notably available for distributions like Fedora. This back-end provides limited features compared to copr. Among the limitations:
filesource type can't be used for the main packages. Koji is an official builder, and builds that generate usable artifacts may only be generated from dist-git. This limitation doesn't apply to the reverse dependencies as they are built using the scratch build feature of Koji.- Since the main package is built using the draft feature, all necessary changes must be available in dist-git, and the NEVRA must have been updated.
- For the same reason, this back-end can't be used to rebuild a package with a NEVRA that has been consumed. Yet, one may use the
deps_onlyoption which will make mpb aware that a build is already available for the main package.
The koji back-end needs credentials to be set up through kinit. Other login methods aren't supported. π
πΈ Repository configuration πΈ
In order to compute the list of packages that depend on the main packages, mpb looks at distribution repositories and interrogates Koji servers about the latest build-able version of these packages.
Default repository configurations are available in /etc/mpb/repo.conf.d/. They are superseded by configuration files available in ${HOME}/.mpb/repos.conf.d. π
Although mpb could use the system provided repository files, this would limit its capabilities, since it may need to request information for a foreign distribution, or simply a different version. Thus, one may provide customized information, for mpb to do the package computation.
The configuration file is written in YAML, and a few examples are available in /usr/share/doc/mass-prebuild/examples/repos.conf.d.
Note that these files are named against the distribution they refer to by convention β only the content of it is important. the name is just β¨aestheticβ¨
The structure of the file is the following:
distribution: # The name of the distribution, e.g. fedora
release: # The name of the release, e.g. rawhide
koji: https://my.kojiserver.org/kojihub # Address to the kojihub to request for latest version of a package
base: https://thebase.ofmyrepository.org/
src-repos:
- BaseOS/source/os/ # Any path to be concatenated to base
bin-repos:
- BaseOS/{}/os/ # Any path to be concatenated to base, {} will be replaced by the architecture
If the release isn't given (i.e. everything else moves one level up), then the values provided will be used as default for the distribution. An example for that behavior is given with /usr/share/doc/mass-prebuild/examples/repos.conf.d/fedora.yaml. π
π SEE ALSO π
and that's the whole page bestie, you ate it π«Ά this was the mpb.config page, dated 2026-08-27 β mwah, go build something cute π
π¦ where this page comes from
- fedora 44: mass-prebuild 1.8.0-5.fc44 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms