From 1073ba2a5a028580914362e7b6e728c0cbcbd0e0 Mon Sep 17 00:00:00 2001 From: Nicolas Mailhot Date: Wed, 14 Feb 2018 18:38:37 +0100 Subject: [PATCH] Handle more github quirks --- macros.forge | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/macros.forge b/macros.forge index 665dbb6..c753147 100644 --- a/macros.forge +++ b/macros.forge @@ -122,13 +122,23 @@ if (forgeurl ~= "") then else explicitset("forgeurl", forgeurl) safeset("archiveext", "tar.gz") - safeset("forgesetupargs", "-n %{archivename}") + local forgesetupargs = "-n %{archivename}" if (commit ~= "") or (tag ~= "") then safeset("scm", "git") end local owner = string.match(forgeurl, "^[^:]+://[^/]+/([^/]+)") local repo = string.match(forgeurl, "^[^:]+://[^/]+/[^/]+/([^/]+)") if (tag ~= "") then + -- if upstream used a version suffix such as -rc1 or -beta it will not + -- be a valid version string for rpm but github will accept it fine and + -- use the same naming as for other versions: v prefix in the tag and + -- archivename, no v prefix in the topdir naming inside the archive + local version = rpm.expand("%{?version}") + if version ~= "" and + (string.match(tag, "^v" .. version .. "[^%d]") or + string.match(tag, "^v" .. version .. "$")) then + forgesetupargs = "-n " .. repo .. "-" .. string.gsub(tag, "^v", "") + end safeset("archivename", repo .. "-%{tag}") safeset("archiveurl", "%{forgeurl}/archive/%{tag}.%{archiveext}") else @@ -140,6 +150,7 @@ if (forgeurl ~= "") then safeset("archiveurl", "%{forgeurl}/archive/v%{version}.%{archiveext}") end end + safeset("forgesetupargs", forgesetupargs) end end if (forge == "code.googlesource.com") then