diff --git a/rpm/macros.d/macros.forge b/rpm/macros.d/macros.forge index d6bf22a..2e3d5b3 100644 --- a/rpm/macros.d/macros.forge +++ b/rpm/macros.d/macros.forge @@ -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 '.' diff --git a/tests/vectors.yaml b/tests/vectors.yaml index 8e6c437..c06b194 100644 --- a/tests/vectors.yaml +++ b/tests/vectors.yaml @@ -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 + +