gbenhaim/mkrepo

Build Yum/DNF repositories from multiple sources

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 59 minutes ago
Added to GitGenius on June 26th, 2026
Created on January 9th, 2019
Open Issues & Pull Requests: 0 (+0)
Number of forks: 0
Total Stargazers: 1 (+0)
Total Subscribers: 1 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 0
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

mkrepo is a Python-based command-line tool designed to build Yum and DNF repositories from multiple sources. The project is distributed under the Apache Software License 2.0 and is available as a Docker container image hosted on Quay.io, making it accessible for users who prefer containerized deployment. The tool addresses a specific need in Linux package management by automating the composition of custom repositories from various upstream sources.

The core functionality of mkrepo centers on three main capabilities. First, it enables users to build Yum and DNF repositories by aggregating packages from multiple sources, allowing for flexible repository composition beyond what a single upstream repository might provide. Second, the tool implements RPM caching from remote repositories, which serves to accelerate the repository composition process by avoiding redundant downloads of the same packages across multiple builds. Third, mkrepo provides fine-grained control over RPM selection, giving users the ability to precisely specify which packages should be included in their target repositories rather than accepting entire upstream repositories wholesale.

The tool is designed for Docker-based workflows, with usage invoked through docker run commands against the quay.io/gbenhaim/mkrepo image. Users can leverage Docker's volume mounting capabilities with the -v option to maintain persistent RPM caches across container runs and to output the target repository outside of the container environment. This containerized approach eliminates dependency management concerns and ensures consistent behavior across different host systems.

mkrepo's implementation builds upon established open-source projects in the RPM ecosystem. The tool uses Repoman for constructing the target repository and Reposync from yum-utils for handling RPM caching operations. This architectural choice allows mkrepo to focus on orchestration and user-facing features while delegating core repository and synchronization operations to proven, specialized tools.

The project was bootstrapped using Cookiecutter with the audreyr/cookiecutter-pypackage template, indicating it follows Python packaging best practices and conventions established by that template. The repository includes continuous integration through Travis CI, with build status badges displayed in the README, and maintains container image builds on Quay.io with status indicators.

The tool targets developers and system administrators who need to compose custom Linux package repositories from heterogeneous sources while maintaining control over package selection and leveraging caching for efficiency.