This is the rpkg project, which mostly is a python library for dealing with rpm packaging in a git source control. pyrpkg is the base library that sites can subclass to create useful tools.
rpkg works with Python 2.7, 3.6, 3.9 and 3.12.
Unless otherwise specified, all files are licensed under GPLv2+.
rpkg is available in Fedora and EPEL repositories. It can be installed with package manager command. There is Python 3 package for Fedora and EPEL8; and Python 2 package in EPEL7.
Install in a Fedora system:
sudo dnf install python3-rpkg
Install in EPEL7:
sudo yum install python2-rpkg
Install in EPEL8:
sudo dnf install python3-rpkg
Both Python 2 and 3 packages are published in PyPI. Install rpkg in a Python 3 virtual environment in these steps:
python3 -m venv .env source .env/bin/activate pip install rpkg rpm-py-installer
You are free to create a virtual environment with option --system-site-packages
.
Please note that, rpkg depends on some other utilities to build packages. These packages are required to be installed as well.
mock
: for local mockbuild.rpm-build
: for local RPM build, which provides the command line rpm
.rpmlint
: check SPEC.copr-cli
: for building package in Fedora Copr.module-build-service
: for building modules.You are welcome to write patches to fix or improve rpkg. All code should work with Python 2.7, and 3. Before you create a PR to propose your changes, make sure
Make sure to sign-off your commits by git commit -s
. This serves as a
confirmation that you have the right to submit your changes. See Developer
Certificate of Origin for details.
Before make a pull request, ensure local changes pass all test cases.
Before run tests, install these packages:
sudo dnf install python27 python36 python39 git make gcc rpm-build \ rpm-devel libcurl-devel krb5-devel openssl-devel python3-devel
To run tests simply, make test
.
By default, target test
runs tests with all supported Python versions.
However, if you look into Makefile
, there is still a target tox
that
allows developer to run tests with test environments one by one.