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 <
code@greghogan.com>
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