Package: guix-patches;
Reported by: Efraim Flashner <efraim <at> flashner.co.il>
Date: Tue, 24 Jan 2023 09:43:02 UTC
Severity: normal
Tags: patch
Done: Efraim Flashner <efraim <at> flashner.co.il>
Bug is archived. No further changes may be made.
Message #8 received at 61036 <at> debbugs.gnu.org (full text, mbox):
From: Efraim Flashner <efraim <at> flashner.co.il> To: 61036 <at> debbugs.gnu.org Cc: Efraim Flashner <efraim <at> flashner.co.il> Subject: [PATCH 1/2] gnu: zig: Update to 0.10.1. Date: Tue, 24 Jan 2023 11:46:18 +0200
* gnu/packages/zig.scm (zig-0.10): New variable. (zig-0.9): Rename from zig-0.9. Inherit from zig-0.10. (zig): Define as zig-0.10. * gnu/packages/ncdu.scm (ncdu)[native-inputs]: Use zig-0.9. * gnu/packages/zig-xyz.scm (zig-zls)[inputs]: Use zig-0.9. --- gnu/packages/ncdu.scm | 2 +- gnu/packages/zig-xyz.scm | 2 +- gnu/packages/zig.scm | 100 +++++++++++++++++++++++++++++++-------- 3 files changed, 83 insertions(+), 21 deletions(-) diff --git a/gnu/packages/ncdu.scm b/gnu/packages/ncdu.scm index feea8f8819..7e47314351 100644 --- a/gnu/packages/ncdu.scm +++ b/gnu/packages/ncdu.scm @@ -97,7 +97,7 @@ (define-public ncdu (when tests? (invoke "zig" "test" "build.zig"))))))) (native-inputs - (list perl zig)))) + (list perl zig-0.9)))) (define-public ncdu-2 (deprecated-package "ncdu2" ncdu)) diff --git a/gnu/packages/zig-xyz.scm b/gnu/packages/zig-xyz.scm index 3812aa0125..fd42c21638 100644 --- a/gnu/packages/zig-xyz.scm +++ b/gnu/packages/zig-xyz.scm @@ -41,7 +41,7 @@ (define-public zig-zls (base32 "1hhs7dz9rpshfd1a7x5swmix2rmh53vsqskh3mzqlrj2lgb3cnii")))) (build-system gnu-build-system) - (inputs (list zig python)) + (inputs (list zig-0.9 python)) (arguments (list #:phases #~(modify-phases %standard-phases (delete 'configure) diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm index cda93bed2e..b30e691bc5 100644 --- a/gnu/packages/zig.scm +++ b/gnu/packages/zig.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2021 Liliana Marie Prikler <liliana.prikler <at> gmail.com> ;;; Copyright © 2021 Sarah Morgensen <iskarian <at> mgsn.dev> ;;; Copyright © 2021 Calum Irwin <calumirwin1 <at> gmail.com> -;;; Copyright © 2022 Efraim Flashner <efraim <at> flashner.co.il> +;;; Copyright © 2022, 2023 Efraim Flashner <efraim <at> flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,12 +25,14 @@ (define-module (gnu packages zig) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system cmake) #:use-module (gnu packages) + #:use-module (gnu packages bootstrap) + #:use-module (gnu packages compression) #:use-module (gnu packages llvm)) -(define-public zig +(define-public zig-0.10 (package (name "zig") - (version "0.9.1") + (version "0.10.1") (source (origin (method git-fetch) @@ -39,21 +41,25 @@ (define-public zig (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0nfvgg23sw50ksy0z0ml6lkdsvmd0278mq29m23dbb2jsirkhry7")) - (patches (search-patches "zig-use-system-paths.patch")))) + (base32 "1sh5xjsksl52i4cfv1qj36sz5h0ln7cq4pdhgs3960mk8a90im7b")))) (build-system cmake-build-system) (inputs - (list clang-13 ; Clang propagates llvm. - lld-13)) + (list clang-15 ; Clang propagates llvm. + lld-15 + zlib + (list zstd "lib"))) ;; Zig compiles fine with GCC, but also needs native LLVM libraries. (native-inputs - (list llvm-13)) + (list llvm-15)) (arguments `(#:configure-flags (list ,@(if (%current-target-system) - (string-append "-DZIG_TARGET_TRIPLE=" - (%current-target-system)) - '())) + '(string-append "-DZIG_TARGET_TRIPLE=" + (%current-target-system)) + '()) + (string-append "-DZIG_LIB_DIR=" (assoc-ref %outputs "out") + "/lib/zig")) + #:validate-runpath? #f ; TODO: zig binary can't find ld-linux. #:out-of-source? #f ; for tests #:phases (modify-phases %standard-phases @@ -62,17 +68,20 @@ (define-public zig ;; Set cache dir, otherwise Zig looks for `$HOME/.cache'. (setenv "ZIG_GLOBAL_CACHE_DIR" (string-append (getcwd) "/zig-cache")))) + (add-after 'patch-source-shebangs 'patch-more-shebangs + (lambda* (#:key inputs #:allow-other-keys) + ;; Zig uses information about /usr/bin/env to determine the + ;; version of glibc and other data. + (substitute* "lib/std/zig/system/NativeTargetInfo.zig" + (("/usr/bin/env") (search-input-file inputs "/bin/env"))))) (delete 'check) (add-after 'install 'check (lambda* (#:key outputs tests? #:allow-other-keys) (when tests? (invoke (string-append (assoc-ref outputs "out") "/bin/zig") - ;; Testing the standard library takes >7.5GB RAM, and - ;; will fail if it is OOM-killed. The 'test-toolchain' - ;; target skips standard library and doc tests. - "build" "test-toolchain" - ;; Stage 2 is experimental, not what we run with `zig', - ;; and stage 2 tests require a lot of RAM. + "build" "test" + ;; We're not testing the compiler bootstrap chain. + "-Dskip-stage1" "-Dskip-stage2-tests" ;; Non-native tests try to link and execute non-native ;; binaries. @@ -100,7 +109,60 @@ (define-public zig @item concurrency via async functions. @end itemize") (home-page "https://github.com/ziglang/zig") + (license license:expat))) + +(define-public zig-0.9 + (package + (inherit zig-0.10) + (name "zig") + (version "0.9.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ziglang/zig.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nfvgg23sw50ksy0z0ml6lkdsvmd0278mq29m23dbb2jsirkhry7")) + (patches (search-patches "zig-use-system-paths.patch")))) + (inputs + (list clang-13 ; Clang propagates llvm. + lld-13)) + ;; Zig compiles fine with GCC, but also needs native LLVM libraries. + (native-inputs + (list llvm-13)) + (arguments + `(#:configure-flags + (list ,@(if (%current-target-system) + (string-append "-DZIG_TARGET_TRIPLE=" + (%current-target-system)) + '())) + #:out-of-source? #f ; for tests + #:phases + (modify-phases %standard-phases + (add-after 'configure 'set-cache-dir + (lambda _ + ;; Set cache dir, otherwise Zig looks for `$HOME/.cache'. + (setenv "ZIG_GLOBAL_CACHE_DIR" + (string-append (getcwd) "/zig-cache")))) + (delete 'check) + (add-after 'install 'check + (lambda* (#:key outputs tests? #:allow-other-keys) + (when tests? + (invoke (string-append (assoc-ref outputs "out") "/bin/zig") + ;; Testing the standard library takes >7.5GB RAM, and + ;; will fail if it is OOM-killed. The 'test-toolchain' + ;; target skips standard library and doc tests. + "build" "test-toolchain" + ;; Stage 2 is experimental, not what we run with `zig', + ;; and stage 2 tests require a lot of RAM. + "-Dskip-stage2-tests" + ;; Non-native tests try to link and execute non-native + ;; binaries. + "-Dskip-non-native"))))))) ;; Currently building zig can take up to 10GB of RAM for linking stage1: ;; https://github.com/ziglang/zig/issues/6485 - (supported-systems %64bit-supported-systems) - (license license:expat))) + (supported-systems %64bit-supported-systems))) + +(define-public zig zig-0.10) -- Efraim Flashner <efraim <at> flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.