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 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