Hello,

I have built rpkg-3.rc2 (package sources:
https://src.fedoraproject.org/rpms/rpkg-util) into rawhide yesterday.
It should be now available for installation.

It is a complete rewrite of version 2. It aims to be a tool with
minimal deps that allows people to easily transform git repositories
containing spec files into rpm packages.

Historically, the goal of this tool was to provide a single client to
all dist-git instances (i.e Fedora, CentOS, maybe something else too).
This was the idea when I started to work on it still in RedHat under
the lead of Miroslav Suchý. We wanted to tweak the rpkg script
provided by python-rpkg lib (https://pagure.io/rpkg) for that purpose.
However, that script was soon being discontinued. There I created a
separate project (rpkg-util) which would be providing the script so
that I can continue in my goal.

Eventually, I realized that some steps rather need to be taken
server-side (https://github.com/release-engineering/dist-git) for a
generic client to exist so that I did and then it was about adoption
of the dist-git package (which provides the unified interface) by
various dist-git instances.

Meanwhile, I was thinking what to do next with rpkg while being
heavily influenced by Copr that I primarily worked on at that time and
also by discussion on devel list about automatically generating
changelog and release from git. I realized there is an opportunity to
provide a solution for this in the generic dist-git client (rpkg
executable) and that it was not a bad place for it.

This problem was then and even today solved by basically sedding spec
file with regexps which I thought is kind of hacky and that it could
be useful to have a library for common substitutions anyway so that
people can reuse it. So a simple spec templating language was born
(https://docs.pagure.org/rpkg-util/v3/spec_templates_from_scratch.html)
and also a simple library of macros
(https://docs.pagure.org/rpkg-util/v3/macro_reference.html) that use git
content and metadata to render spec file content or parts of it. It
now allows not only to generate changelog or release but also e.g. to
generate a source tarball from a git submodule placed next to the spec
file.

There is also the possibility for users to define their own macros and
therefore customize git->rpm transform in any way.

You can try this now in rawhide (`dnf install rpkg`) or also in Copr
(SCM rpkg build method) but note that in Copr, there is still v2 so
there might be some differences. You might also need to install
python3-setuptools - that package seems to be required by
python3-munch but is not being brought in automatically at the moment.

You can use rpkg tool similarly to fedpkg to work with Fedora dist-git
packages (except that `rpkg build` command builds in Copr and the
command set is mostly trimmed-down) or you can use it to work with
those git layouts that contain unpackaged sources together with spec
file (or rather spec file template) or link to the upstream sources
through a git submodule.

Best regards
clime

P.S.: the project is hosted here: https://pagure.io/rpkg-util
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to