GNU bug report logs - #39982
[PATCH _/?] Add new rust versions

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix-patches; Reported by: Jakub Kądziołka <kuba@HIDDEN>; Keywords: patch; dated Sun, 8 Mar 2020 13:14:02 UTC; Maintainer for guix-patches is guix-patches@HIDDEN.
Changed bug title to '[PATCH _/?] Add new rust versions' from '[PATCH] gnu: rust: Add 1.38' Request was from Jakub Kądziołka <kuba@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 39982 <at> debbugs.gnu.org:


Received: (at 39982) by debbugs.gnu.org; 9 Mar 2020 09:01:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 09 05:01:42 2020
Received: from localhost ([127.0.0.1]:49757 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jBEIA-0007iI-56
	for submit <at> debbugs.gnu.org; Mon, 09 Mar 2020 05:01:42 -0400
Received: from pat.zlotemysli.pl ([37.59.186.212]:56802)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <kuba@HIDDEN>) id 1jBEI7-0007i8-PZ
 for 39982 <at> debbugs.gnu.org; Mon, 09 Mar 2020 05:01:40 -0400
Received: (qmail 20006 invoked by uid 1009); 9 Mar 2020 10:01:37 +0100
Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by pat
 (envelope-from <kuba@HIDDEN>, uid 1002) with qmail-scanner-2.08st 
 (clamdscan: 0.98.6/25745. spamassassin: 3.4.0. perlscan: 2.08st.  
 Clear:RC:1(188.123.215.55):. 
 Processed in 0.009673 secs); 09 Mar 2020 09:01:37 -0000
Received: from unknown (HELO localhost.localdomain)
 (kuba@HIDDEN@188.123.215.55)
 by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 9 Mar 2020 10:01:37 +0100
From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>
To: 39982 <at> debbugs.gnu.org
Subject: [PATCH 2/2] gnu: rust: Add 1.39
Date: Mon,  9 Mar 2020 10:02:18 +0100
Message-Id: <20200309090218.31768-1-kuba@HIDDEN>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Qmailux-2.08st: added fake Content-Type header
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39982
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/rust.scm (rust-1.39): New variable.
  (%cargo-reference-hash): Add a comment explaining the role of the
  variable.
---

I'm just gonna send all my Rust updates to this bug number...

I just realized that I forgot to add the trailing #t to the phase in my
last patch, this is now fixed as can be seen in the context for this
patch.

 gnu/packages/rust.scm | 46 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index e0106841c8..11522b933e 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -55,6 +55,32 @@
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-26))
 
+;; This is the hash for the empty file, and the reason it's relevant is not
+;; the most obvious.
+;;
+;; The root of the problem is that Cargo keeps track of a file called
+;; Cargo.lock, that contains the hash of the tarball source of each dependency.
+;;
+;; However, tarball sources aren't handled well by Guix because of the need to
+;; patch shebangs in any helper scripts. This is why we use Cargo's vendoring
+;; capabilities, where instead of the tarball, a directory is provided in its
+;; place. (In the case of rustc, the source code already ships with vendored
+;; dependencies, but crates built with cargo-build-system undergo vendoring
+;; during the build.)
+;;
+;; To preserve the advantages of checksumming, vendored dependencies contain
+;; a file called .cargo-checksum.json, which contains the hash of the tarball,
+;; as well as the list of files in it, with the hash of each file.
+;;
+;; The patch-cargo-checksums phase of cargo-build-system runs after
+;; any Guix-specific patches to the vendored dependencies and regenerates the
+;; .cargo-checksum.json files, but it's hard to know the tarball checksum that
+;; should be written to the file - and taking care of any unhandled edge case
+;; would require rebuilding everything that depends on rust. This is why we lie,
+;; and say that the tarball has the hash of an empty file. It's not a problem
+;; because cargo-build-system removes the Cargo.lock file. We can't do that
+;; for rustc because of a quirk of its build system, so we modify the lock file
+;; to substitute the hash.
 (define %cargo-reference-hash
   "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
 
@@ -1130,4 +1156,24 @@ move around."
                    (("ignore-sgx") "ignore-sgx\n// ignore-tidy-linelength"))
                  #t)))))))))
 
+(define-public rust-1.39
+  (let ((base-rust
+         (rust-bootstrapped-package rust-1.38 "1.39.0"
+           "0mwkc1bnil2cfyf6nglpvbn2y0zfbv44zfhsd5qg4c9rm6vgd8dl")))
+    (package
+      (inherit base-rust)
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (replace 'patch-cargo-checksums
+               ;; The Cargo.lock format changed.
+               (lambda* _
+                 (use-modules (guix build cargo-utils))
+                 (substitute* "Cargo.lock"
+                   (("(checksum = )\".*\"" all name)
+                    (string-append name "\"" ,%cargo-reference-hash "\"")))
+                 (generate-all-checksums "vendor")
+                 #t)))))))))
+
 (define-public rust rust-1.37)
-- 
2.25.1





Information forwarded to guix-patches@HIDDEN:
bug#39982; Package guix-patches. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 8 Mar 2020 13:13:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 08 09:13:21 2020
Received: from localhost ([127.0.0.1]:48003 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jAvk9-0000JH-Do
	for submit <at> debbugs.gnu.org; Sun, 08 Mar 2020 09:13:21 -0400
Received: from lists.gnu.org ([209.51.188.17]:33585)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <kuba@HIDDEN>) id 1jAvk8-0000JA-2N
 for submit <at> debbugs.gnu.org; Sun, 08 Mar 2020 09:13:20 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:51457)
 by lists.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <kuba@HIDDEN>) id 1jAvk6-0000iE-QA
 for guix-patches@HIDDEN; Sun, 08 Mar 2020 09:13:19 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_NONE,
 URIBL_BLOCKED autolearn=disabled version=3.3.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <kuba@HIDDEN>) id 1jAvk5-00022z-GG
 for guix-patches@HIDDEN; Sun, 08 Mar 2020 09:13:18 -0400
Received: from pat.zlotemysli.pl ([37.59.186.212]:41352)
 by eggs.gnu.org with esmtp (Exim 4.71)
 (envelope-from <kuba@HIDDEN>) id 1jAvk5-00021c-6e
 for guix-patches@HIDDEN; Sun, 08 Mar 2020 09:13:17 -0400
Received: (qmail 19835 invoked by uid 1009); 8 Mar 2020 14:13:14 +0100
Received: from 188.123.215.55 (kuba@HIDDEN@188.123.215.55) by pat
 (envelope-from <kuba@HIDDEN>, uid 1002) with qmail-scanner-2.08st 
 (clamdscan: 0.98.6/25744. spamassassin: 3.4.0. perlscan: 2.08st.  
 Clear:RC:1(188.123.215.55):. 
 Processed in 0.009607 secs); 08 Mar 2020 13:13:14 -0000
Received: from unknown (HELO localhost.localdomain)
 (kuba@HIDDEN@188.123.215.55)
 by pat.zlotemysli.pl with AES256-SHA encrypted SMTP; 8 Mar 2020 14:13:14 +0100
From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@HIDDEN>
To: guix-patches@HIDDEN
Subject: [PATCH] gnu: rust: Add 1.38
Date: Sun,  8 Mar 2020 14:14:03 +0100
Message-Id: <20200308131403.11680-1-kuba@HIDDEN>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Qmailux-2.08st: added fake Content-Type header
Content-Type: text/plain
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x
X-Received-From: 37.59.186.212
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

All packages are still built with rustc 1.37, but users will see rustc
1.38 in their profiles, and packages that require newer compiler
versions will be possible to add.

* gnu/packages/rust.scm (rust-1.31): Factor out the
  patch-command-exec-tests phase to a separate procedure.
  (patch-command-exec-tests-phase): New procedure.
  (rust): Rename to rust-1.37, make rust an alias.
  (rust-1.38): New variable.
---
 gnu/packages/rust.scm | 74 ++++++++++++++++++++++++++++++-------------
 1 file changed, 52 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index d0a64b134f..3efd76b156 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -909,9 +909,30 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
              (replace 'disable-amd64-avx-test
                (lambda _
                  (substitute* "src/test/ui/run-pass/issues/issue-44056.rs"
-	          (("only-x86_64") "ignore-test"))
+                  (("only-x86_64") "ignore-test"))
                   #t)))))))))
 
+(define (patch-command-exec-tests-phase test-path)
+  "The command-exec.rs test moves around between releases.  We need to apply
+a Guix-specific patch to it for each release.  This function generates the phase
+that applies said patch, parametrized by the test-path.  This is done this way
+because the phase is more complex than the equivalents for other tests that
+move around."
+ `(lambda* (#:key inputs #:allow-other-keys)
+    (let ((coreutils (assoc-ref inputs "coreutils")))
+      (substitute* ,test-path
+        ;; This test suite includes some tests that the stdlib's
+        ;; `Command` execution properly handles situations where
+        ;; the environment or PATH variable are empty, but this
+        ;; fails since we don't have `echo` available in the usual
+        ;; Linux directories.
+        ;; NB: the leading space is so we don't fail a tidy check
+        ;; for trailing whitespace, and the newlines are to ensure
+        ;; we don't exceed the 100 chars tidy check as well
+        ((" Command::new\\(\"echo\"\\)")
+         (string-append "\nCommand::new(\"" coreutils "/bin/echo\")\n")))
+      #t)))
+
 (define-public rust-1.31
   (let ((base-rust
          (rust-bootstrapped-package rust-1.30 "1.31.1"
@@ -923,26 +944,14 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
          ((#:phases phases)
           `(modify-phases ,phases
              (add-after 'patch-tests 'patch-command-exec-tests
-               (lambda* (#:key inputs #:allow-other-keys)
-                 (let ((coreutils (assoc-ref inputs "coreutils")))
-                   (substitute* "src/test/run-pass/command-exec.rs"
-                     ;; This test suite includes some tests that the stdlib's
-                     ;; `Command` execution properly handles situations where
-                     ;; the environment or PATH variable are empty, but this
-                     ;; fails since we don't have `echo` available in the usual
-                     ;; Linux directories.
-                     ;; NB: the leading space is so we don't fail a tidy check
-                     ;; for trailing whitespace, and the newlines are to ensure
-                     ;; we don't exceed the 100 chars tidy check as well
-                     ((" Command::new\\(\"echo\"\\)")
-                      (string-append "\nCommand::new(\"" coreutils "/bin/echo\")\n")))
-                   #t)))
-	      ;; The test has been moved elsewhere.
-	      (replace 'disable-amd64-avx-test
-	        (lambda _
-	          (substitute* "src/test/ui/issues/issue-44056.rs"
-                   (("only-x86_64") "ignore-test"))
-                  #t))
+               ,(patch-command-exec-tests-phase
+                  "src/test/run-pass/command-exec.rs"))
+             ;; The test has been moved elsewhere.
+             (replace 'disable-amd64-avx-test
+               (lambda _
+                 (substitute* "src/test/ui/issues/issue-44056.rs"
+                  (("only-x86_64") "ignore-test"))
+                 #t))
              (add-after 'patch-tests 'patch-process-docs-rev-cmd
                (lambda* _
                  ;; Disable some doc tests which depend on the "rev" command
@@ -1084,7 +1093,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
           `(modify-phases ,phases
              (delete 'patch-process-docs-rev-cmd))))))))
 
-(define-public rust
+(define-public rust-1.37
   (let ((base-rust
          (rust-bootstrapped-package rust-1.36 "1.37.0"
            "1hrqprybhkhs6d9b5pjskfnc5z9v2l2gync7nb39qjb5s0h703hj")))
@@ -1100,3 +1109,24 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                    (mkdir-p cargo-home)
                    (setenv "CARGO_HOME" cargo-home)
                    #t))))))))))
+
+(define-public rust-1.38
+  (let ((base-rust
+         (rust-bootstrapped-package rust-1.37 "1.38.0"
+           "101dlpsfkq67p0hbwx4acqq6n90dj4bbprndizpgh1kigk566hk4")))
+    (package
+      (inherit base-rust)
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (replace 'patch-command-exec-tests
+               ,(patch-command-exec-tests-phase
+                  "src/test/ui/command-exec.rs"))
+             (add-after 'patch-tests 'patch-command-uid-gid-test
+               (lambda _
+                 (substitute* "src/test/ui/command-uid-gid.rs"
+                   (("/bin/sh") (which "sh"))
+                   (("ignore-sgx") "ignore-sgx\n// ignore-tidy-linelength")))))))))))
+
+(define-public rust rust-1.37)
-- 
2.25.1





Acknowledgement sent to Jakub Kądziołka <kuba@HIDDEN>:
New bug report received and forwarded. Copy sent to guix-patches@HIDDEN. Full text available.
Report forwarded to guix-patches@HIDDEN:
bug#39982; Package guix-patches. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 9 Mar 2020 09:15:01 UTC

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