Subject: [PATCH] gnu: LLVM: Support release candidates as version.

From: Greg Hogan <[email-masked]>
Date: Fri, 4 Feb 2022 16:17:39 -0500

I recently used this patch when building the LLVM release candidates to
unsuccessfully fix a bug in a statically linked clang when building
ungoogled-chromium. Due to the complexity of the interlinked LLVM
packages this seemed much simpler than package variants. Patch inlined and
attached.

>From 11df3eecb2b21575fb96b99561a38b75cfffbc52 Mon Sep 17 00:00:00 2001
From: Greg Hogan <[email-masked]>
Date: Thu, 3 Feb 2022 20:47:35 +0000
Subject: [PATCH] gnu: LLVM: Support release candidates as version.

* gnu/packages/llvm.scm (llvm-uri, clang-from-llvm):
Support release candidates as version.
---
 gnu/packages/llvm.scm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index acd56c3d92..64b4e7521d 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -99,8 +99,10 @@ (define* (system->llvm-target #:optional
              ("i586"        => "X86"))))

 (define (llvm-uri component version)
+  ;; LLVM release candidate file names are formatted
'tool-A.B.C-rcN/tool-A.B.CrcN.src.tar.xz'
+  ;; so we specify the version as A.B.C-rcN and delete the hyphen when
referencing the file name.
   (string-append "https://github.com/llvm/llvm-project/releases/download"
-                 "/llvmorg-" version "/" component "-" version
".src.tar.xz"))
+                 "/llvmorg-" version "/" component "-" (string-delete #\-
version) ".src.tar.xz"))

 (define %llvm-release-monitoring-url
   "https://github.com/llvm/llvm-project/releases")
@@ -223,7 +225,7 @@ (define* (clang-from-llvm llvm clang-runtime hash
                                 (invoke "tar" "xf" extra)
                                 (rename-file ,(string-append
                                                "clang-tools-extra-"
-                                               (package-version llvm)
+                                               (string-delete #\-
(package-version llvm))
                                                ".src")
                                              "tools/extra")
                                 #t)))
-- 
2.34.0
From 11df3eecb2b21575fb96b99561a38b75cfffbc52 Mon Sep 17 00:00:00 2001
From: Greg Hogan <[email-masked]>
Date: Thu, 3 Feb 2022 20:47:35 +0000
Subject: [PATCH] gnu: LLVM: Support release candidates as version.

* gnu/packages/llvm.scm (llvm-uri, clang-from-llvm):
Support release candidates as version.
---
 gnu/packages/llvm.scm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index acd56c3d92..64b4e7521d 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -99,8 +99,10 @@ (define* (system->llvm-target #:optional
              ("i586"        => "X86"))))
 
 (define (llvm-uri component version)
+  ;; LLVM release candidate file names are formatted 'tool-A.B.C-rcN/tool-A.B.CrcN.src.tar.xz'
+  ;; so we specify the version as A.B.C-rcN and delete the hyphen when referencing the file name.
   (string-append "https://github.com/llvm/llvm-project/releases/download"
-                 "/llvmorg-" version "/" component "-" version ".src.tar.xz"))
+                 "/llvmorg-" version "/" component "-" (string-delete #\- version) ".src.tar.xz"))
 
 (define %llvm-release-monitoring-url
   "https://github.com/llvm/llvm-project/releases")
@@ -223,7 +225,7 @@ (define* (clang-from-llvm llvm clang-runtime hash
                                 (invoke "tar" "xf" extra)
                                 (rename-file ,(string-append
                                                "clang-tools-extra-"
-                                               (package-version llvm)
+                                               (string-delete #\- (package-version llvm))
                                                ".src")
                                              "tools/extra")
                                 #t)))
-- 
2.34.0