From patchwork Tue Jan 24 09:46:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Efraim Flashner X-Patchwork-Id: 46384 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 97BB427BBED; Tue, 24 Jan 2023 09:47:38 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 0E7E727BBE9 for ; Tue, 24 Jan 2023 09:47:37 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pKFtR-00071J-Kr; Tue, 24 Jan 2023 04:47:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pKFtP-00070p-6u for guix-patches@gnu.org; Tue, 24 Jan 2023 04:47:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pKFtO-00046Q-J3 for guix-patches@gnu.org; Tue, 24 Jan 2023 04:47:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pKFtO-0004oq-C3 for guix-patches@gnu.org; Tue, 24 Jan 2023 04:47:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#61036] [PATCH 1/2] gnu: zig: Update to 0.10.1. Resent-From: Efraim Flashner Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 24 Jan 2023 09:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61036 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 61036@debbugs.gnu.org Cc: Efraim Flashner Received: via spool by 61036-submit@debbugs.gnu.org id=B61036.167455359118467 (code B ref 61036); Tue, 24 Jan 2023 09:47:02 +0000 Received: (at 61036) by debbugs.gnu.org; 24 Jan 2023 09:46:31 +0000 Received: from localhost ([127.0.0.1]:55880 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pKFss-0004nm-A1 for submit@debbugs.gnu.org; Tue, 24 Jan 2023 04:46:31 -0500 Received: from mail-ej1-f50.google.com ([209.85.218.50]:34814) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pKFsq-0004nT-5H for 61036@debbugs.gnu.org; Tue, 24 Jan 2023 04:46:28 -0500 Received: by mail-ej1-f50.google.com with SMTP id az20so37503383ejc.1 for <61036@debbugs.gnu.org>; Tue, 24 Jan 2023 01:46:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=gej+Db6vl0K+XsdwluUR3Nwm8cOalQ/f5yygD/mYWxY=; b=B/hdDWYhD9RssxD0DUr9Oc86jsI7EzVZvgWJaKIrbbaagZKakIAxXX1mVlpiHxME4y b3QfWWgAjzqWOriwhsLBQFAgv5fsyKMCD6k8Tvb5IL/O2Ml64Jrsr5UiMvVfm9nwurVy ggAbPD0H9VeVg+PigltUxNJQdS+cyMAkICpf7CqLB8naGFJ88LyXUcj0RJDBkiM2eGtT R8JHSKB0dLMOeMpai0wWS5hTe1zayGp4QuCwalTzsf0HQoeSuvDOExdJIFFvarxnU07A ajB6kaj1vIt9tY6HI6fOMumrJH71OM7cmaK8XdjSRGNqlWLUxsE5yhhOpYsZGeYdpTvI WYbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gej+Db6vl0K+XsdwluUR3Nwm8cOalQ/f5yygD/mYWxY=; b=2tRarbbPMJjZ05hlRrkriVFmoQJiEZvMC1Lk11YsGzROL/6/Jdqt59/XxBtc3wI53f WOY2MxWuquYIVFnJbalEFYXUevd+h7XoNico6n8rLSJ+ml6qZIrm7qImNoDhM0hopmjl cK6AKRH7zD1sex0OE4NyRAkPv7APnRpsXsEP5ULkQsRv7q6+A8Ys0gmX2NFeDtmDqrBY fhIklnIKSEiSs0xhLvmazQ9vtXDwkFwBGJUv1h6qxpww2iu+3EFmM4Po10o7lwTwezDf fYFA7It9xzhIV/qH5pOBVa+eDXMf3qdUaOP7M6TAcII499I9LgCJqo4TuZOntW/DRzA8 FX4w== X-Gm-Message-State: AFqh2koXWMyVGNZ7KGXoLajnDLmEYyciRpFVNnULo39bsAnFzeEoQCc5 3pd7KkQVRuqcAz6tG1gfMWjaNpKFklBGuQ== X-Google-Smtp-Source: AMrXdXu4fCWf0h/6N/1jEaV2bIIRRvKzTU9TpLjdwSyhqu8pSM6NM5c6TWpvML0CjI2oT6cQxYxlaQ== X-Received: by 2002:a17:907:c606:b0:870:d9a:9ebb with SMTP id ud6-20020a170907c60600b008700d9a9ebbmr26310792ejc.38.1674553581984; Tue, 24 Jan 2023 01:46:21 -0800 (PST) Received: from localhost ([141.226.15.115]) by smtp.gmail.com with ESMTPSA id a23-20020a1709065f9700b0085ff3202ce7sm632931eju.219.2023.01.24.01.46.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Jan 2023 01:46:21 -0800 (PST) From: Efraim Flashner Date: Tue, 24 Jan 2023 11:46:18 +0200 Message-Id: <1dee6b1c8526e33669f70550f1a387c9a26930a5.1674553213.git.efraim@flashner.co.il> X-Mailer: git-send-email 2.39.1 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * 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 ;;; Copyright © 2021 Sarah Morgensen ;;; Copyright © 2021 Calum Irwin -;;; Copyright © 2022 Efraim Flashner +;;; Copyright © 2022, 2023 Efraim Flashner ;;; ;;; 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)