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.