forgeversion: make sure nothing is stored in distprefix

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2359090
This commit is contained in:
Maxwell G 2025-05-31 16:35:30 -05:00
commit ca72c7b7fc
Signed by: gotmax23
GPG key ID: F79E4E25E8C661F8
2 changed files with 23 additions and 5 deletions

View file

@ -143,6 +143,12 @@ if util.get_flag("a") then
else
local i = util.get_flag("z", true) or ""
part = part .. (util.get_macro("_forgeversionsuffix" .. i) or "")
-- Regardless of whether -a is used, undefine all other distprefixes to avoid
-- extra information in Release when forgeversion is already used.
-- See https://bugzilla.redhat.com/show_bug.cgi?id=2359090.
for i=0,9999 do
rpm.undefine("distprefix" .. i)
end
end
\
-- Strip any leading '.'

View file

@ -530,10 +530,16 @@ cases:
- id: unit_forge_version
defines:
# Check with version
- version: "1.0.0"
_forgeversionsuffix0: ".abcd"
_forgeversionsuffix5: ".sxyz"
_forgeversionsuffix9999: ".s456"
# Used for distprefix check
distprefix0: "something"
distprefix5: "something"
distprefix9999: "something"
# Check with version0
- version0: "1.0.0"
_forgeversionsuffix0: ".abcd"
_forgeversionsuffix5: ".sxyz"
@ -545,15 +551,19 @@ cases:
_forgeversionsuffix5: ".sxyz"
_forgeversionsuffix9999: ".s456"
expected:
"forgeversion": "1.0.0^abcd"
# Make sure distprefix is cleared out
"undefined distprefix": "1"
"undefined distprefix0": "1"
"undefined distprefix5": "1"
"undefined distprefix9999": "1"
"forgeversion -z0": "1.0.0^abcd"
# Only first with pre-release
"forgeversion -p": "1.0.0~abcd"
# Basic all usage
"forgeversion -a": "1.0.0^abcd.sxyz.s456"
# Pre-release
"forgeversion -p -a": "1.0.0~abcd.sxyz.s456"
# Only first
"forgeversion": "1.0.0^abcd"
"forgeversion -z0": "1.0.0^abcd"
# Only first with pre-release
"forgeversion -p": "1.0.0~abcd"
# -z12 doesn't exist
"forgeversion -z12": "1.0.0"
"forgeversion -p -z12": "1.0.0"
@ -582,3 +592,5 @@ cases:
zero_indexed: *zeroidx
expected_undefined:
- distprefix