Hi,
I am proposing for inclusion a macro set aimed at automating the packaging of forge-hosted
projects.
— Packaging draft:
https://fedoraproject.org/wiki/Forge-hosted_projects_packaging_automation
— FPC ticket:
https://pagure.io/packaging-committee/issue/719 (without the “hasdraft” tag
because I don't know how to add it in pagure)
— fedora-rpm-macros RFE with the macro file:
https://bugzilla.redhat.com/show_bug.cgi?id=1523779
What it does: conversion of a forge url, version, tag, commit set to the values expected
in rpm specfiles, in optional rpm variables. Computation of the corresponding %{dist}.
Objective: centralize forge structure know-how in a single technical place, deprecate all
the complex manual forge URL handling spread over many Fedora spec files, simplify
packaging and spend time on more interesting stuff.
What's currently implemented: definitions for
github.com and
code.googlesource.com
(I didn't want to propose stuff I didn't use myself. Adding more definitions is
trivial. The macros are in Lua which is change-friendly, no arcane rpm syntax knowledge is
needed).
Please consult packaging draft for full information.
This is a spin-off of the work I'm currently doing on Go packaging, as Go is heavily
forge-oriented. I took the time to extract the generic non-Go-specific forge knowledge in
a separate macro file. The macros have been heavily tested on real-life Go projects with
quite a lot of variance, on EL7 and rawhide. That's why they come with built-in error
handling.
Regards,
--
Nicolas Mailhot