Skip to content

Latest commit

 

History

History
67 lines (43 loc) · 1.62 KB

README.md

File metadata and controls

67 lines (43 loc) · 1.62 KB

Koji Rebuild

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.


Setup Koji infrastructure

You can deploy your own Koji infrastructure following this guide.

Alternatively you may use the shell scripts here.

Requirements

  • python3.11+
  • poetry

Installation

Clone the repository

git clone https://github.com/arif-desu/koji-build-automation

Install

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

Usage

koji-rebuild CONFIGFILE

The CONFIGFILE is a YAML formatted file. See config.yaml for reference.


Methodology

This is a simplified flowchart:


Approach

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.


Reference