rdopkg is an RPM packaging automation tool. It provides automation for
package maintenance including git-based patches management and automagic
rebases to new upstream versions with nice .spec changes, changelogs and
commit messages for both CLI and CI usage.
It also contains various functionality we needed for
RDO packaging, such as advanced
requirements.txt management for python projects and
and patches management functionality and conventions provided by
proved to be efficient way of packaging fast-moving upstream projects with
minimal human effort but without losing control over individual packages.
rdopkg is under constant development, serving mainly the needs of the
mighty RDO packager-warriors and their
weapons such as DLRN,
but it strives to help all RPM packagers. For example, see
how you can manage your RPMs with
rdopkg uses software factory
for CI and every commit goes through automatic unit, feature, and integration
testing as well as human reviews.
See open rdopkg reviews.
rdopkg is fully reusable but the goal of also serving as
packaging CLI tool framework as described in
pwnpkg proved to be out of scope. However,
jruzicka's) rants ignited rpkg2 project
which aims to provide exactly that. If you're interested in writing you own
packaging tools such as new
copr-cli we deserve, rpkg2 seems
like a good place to start and influence with good ideas.
from Fedora/EPEL repos (default)
rdopkg is available on Fedora 25 and newer:
dnf install rdopkg
On CentOS/RHEL 7,
rdopkg is available from
On CentOS 7:
yum install epel-release yum install rdopkg
On RHEL 7:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yum install rdopkg
If you want to hack
rdopkg or just have the latest fixes without waiting for
next release, I suggest using the git repo directly:
git clone https://github.com/softwarefactory-project/rdopkg cd rdopkg python setup.py develop --user
You may set the preference over
rdopkg RPM by correctly positioning
~/.local/bin/rdopkg in your
Or you can use virtualenv to avoid conflicts with RPM:
git clone https://github.com/softwarefactory-project/rdopkg cd rdopkg virtualenv --system-site-packages ~/rdopkg-venv source ~/rdopkg-venv/bin/activate python setup.py develop ln `which rdopkg` ~/bin/rdopkg-dev rdopkg-dev --version
For your convenience,
rdopkg is also available from the Cheese
Shop. This should come in handy especially if you want to reuse
pip install rdopkg
Note that you need to have python2-rpm(resp. python3-rpm) package installed in order for RPM macro related featuers to work as it isn't available from PyPI.
rdopkg manual is available, you can:
- read it nicely rendered on github: rdopkg manual
man rdopkgif you installed from RPM
- render it to HTML/man using
You might also be interested in
RDO packaging intro
which contains some examples of
rdopkg usage and more.
Please use the github Issues to report bugs. I usually fix critical bugs within days.