https://github.com/softwarefactory-project/rdopkg
power to the packagers
https://github.com/softwarefactory-project/rdopkg
Last synced: 3 days ago
JSON representation
power to the packagers
- Host: GitHub
- URL: https://github.com/softwarefactory-project/rdopkg
- Owner: softwarefactory-project
- License: apache-2.0
- Created: 2014-12-09T16:50:18.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2025-10-30T16:21:19.000Z (7 months ago)
- Last Synced: 2026-01-14T13:39:47.049Z (5 months ago)
- Language: Python
- Homepage:
- Size: 2.95 MB
- Stars: 29
- Watchers: 4
- Forks: 22
- Open Issues: 40
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# rdopkg
`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](https://www.rdoproject.org/) packaging, such as advanced
`requirements.txt` management for python projects and
[rdoinfo](https://github.com/redhat-openstack/rdoinfo) integration.
Generic
[distgit](https://www.rdoproject.org/documentation/intro-packaging/#distgit---where-the-spec-file-lives)
and patches management functionality and conventions provided by `rdopkg`
proved to be efficient way of packaging fast-moving upstream projects with
minimal human effort but without losing control over individual packages.
`rdopkg` is now considered **stable**. It was originally developed to serve
the needs of the mighty [RDO](https://www.rdoproject.org/) packager-warriors
and their weapons such as
[DLRN](https://github.com/softwarefactory-project/DLRN), but it can help with
any RPM package. For example, see [how you can manage your RPMs with
rdopkg](https://www.rdoproject.org//blog/2017/03/let-rdopkg-manage-your-RPM-package/).
`rdopkg` uses [software factory](https://softwarefactory-project.io/)
for CI and every commit goes through automatic unit, feature, and integration
testing as well as human reviews.
See [open rdopkg reviews](https://softwarefactory-project.io/r/#/q/status:open+project:rdopkg).
## Installation
`rdopkg` is currently compatible with both python 3 only.
### from Fedora/EPEL repos (default)
`rdopkg` is available on **Fedora 37** and newer:
dnf install rdopkg
On CentOS Stream/RHEL 8/9, `rdopkg` is available from
[EPEL](https://docs.fedoraproject.org/en-US/epel/).
On **CentOS Stream 8**:
dnf config-manager --set-enabled powertools
dnf install epel-release
dnf install rdopkg
On **CentOS Stream 9**:
dnf config-manager --set-enabled crb
dnf install epel-release
dnf install rdopkg
### from source
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
pip install -e rdopkg
You may set the preference over `rdopkg` RPM by correctly positioning
`~/.local/bin/rdopkg` in your `$PATH`.
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
pip install -e .
ln `which rdopkg` ~/bin/rdopkg-dev
rdopkg-dev --version
Required python modules are listed in
[requirements.txt](requirements.txt) and also in
[rdopkg.spec](https://src.fedoraproject.org/rpms/rdopkg/blob/master/f/rdopkg.spec) as
RPM Requires.
### from PyPI
For your convenience, `rdopkg` is also available from the Cheese
Shop. This should come in handy especially if you want to reuse `rdopkg` as
a module.
pip install rdopkg
Note that you need to have python3-rpm package installed in
order for RPM macro related features to work as it isn't available from
PyPI.
## The Manual
Exhaustive `rdopkg` manual is available, you can:
* read it nicely rendered on github: [rdopkg manual](https://github.com/softwarefactory-project/rdopkg/blob/master/doc/rdopkg.1.adoc)
* run `man rdopkg` if you installed from RPM
* render it to HTML/man using `make doc`
You might also be interested in
[RDO packaging intro](https://www.rdoproject.org/documentation/intro-packaging/)
which contains some examples of `rdopkg` usage and more.
## Bugs
Please use the
[github Issues](https://github.com/softwarefactory-project/rdopkg/issues)
to report bugs. I usually fix critical bugs within days.