A program to interact with Koji server(s) to build RPM packages.
The aim of this project is to fetch package and tag info from upstream Koji instances such as from Fedora's instance and build those packages in a downstream koji instance, while keeping your patched compilers and/or custom RPM packages.
You can deploy your own Koji infrastructure following this guide.
Alternatively you may use the shell scripts here.
python3.11+
poetry
git clone https://github.com/arif-desu/koji-build-automation
Currently python koji modules from PyPI do not work as intended. It is thus recommended to install koji as an rpm package, build the module and install it
poetry build
pip install dist/*.whl
koji-rebuild CONFIGFILE
The CONFIGFILE
is a YAML formatted file. See config.yaml for reference.
This is a simplified flowchart:
Building and waiting on packages is heavily IO-bounded operation. Thus we employ asynchronous programming patterns to a big extent, utilizing generator objects and Python's asyncio library.