GNU bug report logs - #61036
[PATCH 0/3] Update zig to 0.10.1

Previous Next

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.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 61036 in the body.
You can then email your comments to 61036 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#61036; Package guix-patches. (Tue, 24 Jan 2023 09:43:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Efraim Flashner <efraim <at> flashner.co.il>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Tue, 24 Jan 2023 09:43:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: guix-patches <at> gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 0/3] Update zig to 0.10.1
Date: Tue, 24 Jan 2023 11:42:17 +0200
After looking heavily through the sources I'm of the opinion that zig
0.10.1 doesn't use the new binary bootstrap that they've developed.

I'm unsure what to do with $output/bin/zig not finding ld-linux in its
RUNPATH, but it's the only thing that's left me unhappy.

I wasn't sure if we wanted to keep 0.9 around also, but I didn't want to
be responsible for updating zig-zls so I figured we'd keep it for now,
especially since they make a point of saying that the language isn't
finalized at its 1.0 release yet.


Efraim Flashner (2):
  gnu: zig: Update to 0.10.1.
  gnu: ncdu: Update to 2.2.2.

 gnu/packages/ncdu.scm    |   6 +--
 gnu/packages/zig-xyz.scm |   2 +-
 gnu/packages/zig.scm     | 100 +++++++++++++++++++++++++++++++--------
 3 files changed, 85 insertions(+), 23 deletions(-)


base-commit: 5965d74c8ce53d0861af9ad3744844ac925c4a12
-- 
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





Information forwarded to guix-patches <at> gnu.org:
bug#61036; Package guix-patches. (Tue, 24 Jan 2023 09:47:02 GMT) Full text and rfc822 format available.

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





Information forwarded to guix-patches <at> gnu.org:
bug#61036; Package guix-patches. (Tue, 24 Jan 2023 09:47:02 GMT) Full text and rfc822 format available.

Message #11 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 2/2] gnu: ncdu: Update to 2.2.2.
Date: Tue, 24 Jan 2023 11:46:19 +0200
* gnu/packages/ncdu.scm (ncdu): Update to 2.2.2.
[native-inputs]: Switch from zig-0.9 to zig.
---
 gnu/packages/ncdu.scm | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/ncdu.scm b/gnu/packages/ncdu.scm
index 7e47314351..39cf48273e 100644
--- a/gnu/packages/ncdu.scm
+++ b/gnu/packages/ncdu.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 John Darrington <jmd <at> gnu.org>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me <at> tobias.gr>
-;;; 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.
 ;;;
@@ -62,14 +62,14 @@ (define-public ncdu
   (package
     (inherit ncdu-1)
     (name "ncdu")
-    (version "2.2.1")
+    (version "2.2.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://dev.yorhel.nl/download/ncdu-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0hfimrr7z9zrfkiyj09i8nh4a1rjn7d00y9xzpc7mkyqpkvghjjy"))
+                "14zrmcxnrczamqjrib99jga05ixk0dzfav3pd6s1h8vm9q121nch"))
               (modules '((guix build utils)))
               (snippet
                #~(begin
@@ -97,7 +97,7 @@ (define-public ncdu
                (when tests?
                  (invoke "zig" "test" "build.zig")))))))
     (native-inputs
-     (list perl zig-0.9))))
+     (list perl zig))))
 
 (define-public ncdu-2
   (deprecated-package "ncdu2" ncdu))
-- 
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





Reply sent to Efraim Flashner <efraim <at> flashner.co.il>:
You have taken responsibility. (Tue, 06 Jun 2023 05:58:02 GMT) Full text and rfc822 format available.

Notification sent to Efraim Flashner <efraim <at> flashner.co.il>:
bug acknowledged by developer. (Tue, 06 Jun 2023 05:58:02 GMT) Full text and rfc822 format available.

Message #16 received at 61036-done <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 61036-done <at> debbugs.gnu.org
Subject: Re: [PATCH 1/2] gnu: zig: Update to 0.10.1.
Date: Tue, 6 Jun 2023 08:57:03 +0300
[Message part 1 (text/plain, inline)]
Patch was pushed a few months ago. Closing!

-- 
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
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 04 Jul 2023 11:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 296 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.