Copr-team will address any security issues and make sure that the project builds. But any feature requests and even most bugs will not be addressed. If you want to maintain this project, please open an issue and state that you want to maintain it and this project is yours.
rpkg executable is a bridge between git and rpm.
This project provides rpkg
command-line tool, which is an rpm packaging utility that works with both DistGit
and standard Git repositories.
It can handle two basic types of directory content: packed and unpacked:
You can also use git submodules with any of the above options.
Some history:
This project is a continuation of rpkg
executable script that used to be provided
by python-rpkg
library/package. That library is called "rpkg" in some contexts,
therefore we opted for name rpkg-util here on pagure and in Bugzilla as well (basically
"rpkg-util" denotes source component of rpkg
rpm package and the command-line tool).
Project build status
This is an rpkg
's extension to the standard rpm spec file syntax.
Spec templates make it possible to generate certain parts of your spec file automatically from a Git repository where your spec file is located.
An example spec template might look like this:
Name: {{{ git_dir_name }}} Version: {{{ git_dir_version }}} Release: 1%{?dist} Summary: This is a test package. License: GPLv2+ URL: https://someurl.org VCS: {{{ git_dir_vcs }}} Source: {{{ git_dir_pack }}} %description This is a test package. %prep {{{ git_dir_setup_macro }}} %changelog {{{ git_dir_changelog }}}
Having a template like this in your project (instead of just a plain spec file) allows you to build rpm packages that automatically follow git history and the current content of your project. Read more here. If you just want to quickly start a new project with rpkg, go here. And if you are completely new to .spec files, you can find out a little bit more here.
Generate source rpm ("srpm"):
$ rpkg srpm git_dir_pack: archiving /home/clime/rpkg-util: commit 77117acfc089de7eab46baa0308f46413e71b431 (HEAD -> master, tag: rpkg-util-3.beta-1) Author: clime <clime@fedoraproject.org> Date: Fri Apr 30 18:22:21 2021 +0200 mark beta version git_dir_pack: Wrote: /tmp/rpkg/rpkg-util-1-9dnhco7d/rpkg-util-77117acf.tar.gz Wrote: /tmp/rpkg/rpkg-util-1-9dnhco7d/rpkg-util.spec setting SOURCE_DATE_EPOCH=1619740800 Wrote: /tmp/rpkg/rpkg-util-1-9dnhco7d/rpkg-util-3.beta-1.fc31.src.rpm
Run %prep
phase of an rpm build:
$ rpkg prep git_dir_pack: archiving /home/clime/rpkg-util: commit 77117acfc089de7eab46baa0308f46413e71b431 (HEAD -> master, tag: rpkg-util-3.beta-1) Author: clime <clime@fedoraproject.org> Date: Fri Apr 30 18:22:21 2021 +0200 mark beta version git_dir_pack: Wrote: /tmp/rpkg/rpkg-util-2-ts2unr3s/rpkg-util-77117acf.tar.gz Wrote: /tmp/rpkg/rpkg-util-2-ts2unr3s/rpkg-util.spec setting SOURCE_DATE_EPOCH=1619740800 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.NaPmFp + umask 022 + cd /tmp/rpkg/rpkg-util-2-ts2unr3s + cd /tmp/rpkg/rpkg-util-2-ts2unr3s + rm -rf rpkg-util + /usr/bin/gzip -dc /tmp/rpkg/rpkg-util-2-ts2unr3s/rpkg-util-77117acf.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd rpkg-util + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + RPM_EC=0 ++ jobs -p + exit 0
For the following command, you need to have a project in COPR created. See quick tutorial here on how to do it.
$ rpkg build git_dir_pack: archiving /home/clime/rpkg-util: commit 77117acfc089de7eab46baa0308f46413e71b431 (HEAD -> master, tag: rpkg-util-3.beta-1) Author: clime <clime@fedoraproject.org> Date: Fri Apr 30 18:22:21 2021 +0200 mark beta version git_dir_pack: Wrote: /tmp/rpkg/rpkg-util-3-793uxgm5/rpkg-util-77117acf.tar.gz Wrote: /tmp/rpkg/rpkg-util-3-793uxgm5/rpkg-util.spec setting SOURCE_DATE_EPOCH=1619740800 Wrote: /tmp/rpkg/rpkg-util-3-793uxgm5/rpkg-util-3.beta-1.fc31.src.rpm Uploading package /tmp/rpkg/rpkg-util-3-793uxgm5/rpkg-util-3.beta-1.fc31.src.rpm |################################| 204.8 kB 266.8 kB/s eta 0:00:00Build was added to rpkg-util: https://copr.fedorainfracloud.org/coprs/build/2157665 Created builds: 2157665
Other useful commands that you can use:
rpkg lint
to check the .spec file and the overall package conformance to RPM standardrpkg local
to locally build the package into an rpmrpkg upload
to upload a new source to DistGit lookaside cacherpkg pull/push/clone/log/...
to have an easy access to basic git operationsrpkg ...
(see rpkg --help
or man rpkg
)Do not put sensitive data into directory with your sources, otherwise they might get published together with them.