GNU bug report logs - #34820
[PATCH] gnu: rust: Update to 1.32.0

Previous Next

Package: guix-patches;

Reported by: Ivan Petkov <ivanppetkov <at> gmail.com>

Date: Tue, 12 Mar 2019 02:23:02 UTC

Severity: normal

Tags: patch

Done: Danny Milosavljevic <dannym <at> scratchpost.org>

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 34820 in the body.
You can then email your comments to 34820 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#34820; Package guix-patches. (Tue, 12 Mar 2019 02:23:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ivan Petkov <ivanppetkov <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Tue, 12 Mar 2019 02:23:02 GMT) Full text and rfc822 format available.

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

From: Ivan Petkov <ivanppetkov <at> gmail.com>
To: guix-patches <at> gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: [PATCH] gnu: rust: Update to 1.32.0
Date: Mon, 11 Mar 2019 19:21:53 -0700
* gnu/packages/rust.scm (rust-source): Rename to...
(rust-source-pre-1.32): ... this.
(rust-source): New variable.
(rust-bootstrapped-package-pre-1.32): New variable.
(rust): Rename to...
(rust-1.32): ...this.
(rust): New variable
---
 gnu/packages/rust.scm | 189 ++++++++++++++++++++++++++++++++----------
 1 file changed, 143 insertions(+), 46 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index be916743fb..5aa70cc962 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -70,7 +70,10 @@
     (_                (nix-system->gnu-triplet system))))
 
 
-(define* (rust-source version hash #:key (patches '()))
+(define* (rust-source-pre-1.32 version hash
+                               #:key
+                               (patches '())
+                               (patch-flags '("-p1")))
   (origin
     (method url-fetch)
     (uri (string-append "https://static.rust-lang.org/dist/"
@@ -78,16 +81,51 @@
     (sha256 (base32 hash))
     (modules '((guix build utils)))
     (snippet '(begin (delete-file-recursively "src/llvm") #t))
-    (patches (map search-patch patches))))
+    (patches (map search-patch patches))
+    (patch-flags patch-flags)))
+
+(define* (rust-bootstrapped-package-pre-1.32 base-rust version checksum
+                                             #:key
+                                             (patches '())
+                                             (patch-flags '("-p1")))
+  "Bootstrap rust VERSION with source checksum CHECKSUM patched with PATCHES using BASE-RUST.
+Specific to rust versions before 1.32."
+  (package
+    (inherit base-rust)
+    (version version)
+    (source
+     (rust-source-pre-1.32 version checksum #:patches patches #:patch-flags patch-flags))
+    (native-inputs
+     (alist-replace "cargo-bootstrap" (list base-rust "cargo")
+                    (alist-replace "rustc-bootstrap" (list base-rust)
+                                   (package-native-inputs base-rust))))))
+
+(define* (rust-source version hash
+                      #:key
+                      (patches '())
+                      (patch-flags '("-p1")))
+  (origin
+    (method url-fetch)
+    (uri (string-append "https://static.rust-lang.org/dist/"
+                        "rustc-" version "-src.tar.gz"))
+    (sha256 (base32 hash))
+    (modules '((guix build utils)))
+    (snippet '(begin (delete-file-recursively "src/llvm")
+                     (delete-file-recursively "vendor/jemalloc-sys/jemalloc")
+                     #t))
+    (patches (map search-patch patches))
+    (patch-flags patch-flags)))
 
 (define* (rust-bootstrapped-package base-rust version checksum
-                                    #:key (patches '()))
+                                    #:key
+                                    (patches '())
+                                    (patch-flags '("-p1")))
   "Bootstrap rust VERSION with source checksum CHECKSUM patched with PATCHES using BASE-RUST."
   (package
     (inherit base-rust)
     (version version)
     (source
-     (rust-source version checksum #:patches patches))
+     (rust-source version checksum #:patches patches #:patch-flags patch-flags))
     (native-inputs
      (alist-replace "cargo-bootstrap" (list base-rust "cargo")
                     (alist-replace "rustc-bootstrap" (list base-rust)
@@ -116,7 +154,7 @@
          ("flex" ,flex)
          ;; Required for the libstd sources.
          ("rustc"
-          ,(rust-source "1.19.0" "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))))
+          ,(rust-source-pre-1.32 "1.19.0" "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))))
       (arguments
        `(#:test-target "local_tests"
          #:make-flags (list (string-append "LLVM_CONFIG="
@@ -189,7 +227,7 @@ safety and thread safety guarantees.")
   (package
     (name "rust")
     (version "1.19.0")
-    (source (rust-source version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"
+    (source (rust-source-pre-1.32 version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"
             #:patches '("rust-1.19-mrustc.patch")))
     (outputs '("out" "cargo"))
     (properties '((timeout . 72000)               ;20 hours
@@ -425,7 +463,7 @@ safety and thread safety guarantees.")
 
 (define-public rust-1.20
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.19 "1.20.0"
+         (rust-bootstrapped-package-pre-1.32 rust-1.19 "1.20.0"
           "0542y4rnzlsrricai130mqyxl8r6rd991frb4qsnwb27yigqg91a")))
     (package
       (inherit base-rust)
@@ -564,7 +602,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                    #t))))))))))
 
 (define-public rust-1.21
-  (let ((base-rust (rust-bootstrapped-package rust-1.20 "1.21.0"
+  (let ((base-rust (rust-bootstrapped-package-pre-1.32 rust-1.20 "1.21.0"
                     "1yj8lnxybjrybp00fqhxw8fpr641dh8wcn9mk44xjnsb4i1c21qp")))
     (package
       (inherit base-rust)
@@ -580,7 +618,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                  #t)))))))))
 
 (define-public rust-1.22
-  (let ((base-rust (rust-bootstrapped-package rust-1.21 "1.22.1"
+  (let ((base-rust (rust-bootstrapped-package-pre-1.32 rust-1.21 "1.22.1"
                     "1lrzzp0nh7s61wgfs2h6ilaqi6iq89f1pd1yaf65l87bssyl4ylb")))
     (package
       (inherit base-rust)
@@ -596,7 +634,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                  #t)))))))))
 
 (define-public rust-1.23
-  (let ((base-rust (rust-bootstrapped-package rust-1.22 "1.23.0"
+  (let ((base-rust (rust-bootstrapped-package-pre-1.32 rust-1.22 "1.23.0"
                     "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l")))
     (package
       (inherit base-rust)
@@ -615,8 +653,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 
 (define-public rust-1.24
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.23 "1.24.1"
-                                    "1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y")))
+         (rust-bootstrapped-package-pre-1.32 rust-1.23 "1.24.1"
+          "1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y")))
     (package
       (inherit base-rust)
       (arguments
@@ -637,7 +675,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 ;;; Keep using llvm 3.9.1 until builds become determenistic
 (define-public rust-1.25
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.24 "1.25.0"
+         (rust-bootstrapped-package-pre-1.32 rust-1.24 "1.25.0"
           "0baxjr99311lvwdq0s38bipbnj72pn6fgbk6lcq7j555xq53mxpf"
           #:patches '("rust-1.25-accept-more-detailed-gdb-lines.patch"))))
     (package
@@ -668,7 +706,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 
 (define-public rust-1.26
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.25 "1.26.2"
+         (rust-bootstrapped-package-pre-1.32 rust-1.25 "1.26.2"
           "0047ais0fvmqvngqkdsxgrzhb0kljg8wy85b01kbbjc88hqcz7pv"
           #:patches '("rust-coresimd-doctest.patch"
                       "rust-1.25-accept-more-detailed-gdb-lines.patch"))))
@@ -723,13 +761,13 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 
 (define-public rust-1.27
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.26 "1.27.2"
-                                    "0pg1s37bhx9zqbynxyydq5j6q7kij9vxkcv8maz0m25prm88r0cs"
-                                    #:patches
-                                    '("rust-coresimd-doctest.patch"
-                                      "rust-bootstrap-stage0-test.patch"
-                                      "rust-1.25-accept-more-detailed-gdb-lines.patch"
-                                      "rust-reproducible-builds.patch"))))
+         (rust-bootstrapped-package-pre-1.32 rust-1.26 "1.27.2"
+          "0pg1s37bhx9zqbynxyydq5j6q7kij9vxkcv8maz0m25prm88r0cs"
+          #:patches
+          '("rust-coresimd-doctest.patch"
+            "rust-bootstrap-stage0-test.patch"
+            "rust-1.25-accept-more-detailed-gdb-lines.patch"
+            "rust-reproducible-builds.patch"))))
     (package
       (inherit base-rust)
       (arguments
@@ -752,13 +790,13 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 
 (define-public rust-1.28
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.27 "1.28.0"
-                                    "11k4rn77bca2rikykkk9fmprrgjswd4x4kaq7fia08vgkir82nhx"
-                                    #:patches
-                                    '("rust-coresimd-doctest.patch"
-                                      "rust-bootstrap-stage0-test.patch"
-                                      "rust-1.25-accept-more-detailed-gdb-lines.patch"
-                                      "rust-reproducible-builds.patch"))))
+         (rust-bootstrapped-package-pre-1.32 rust-1.27 "1.28.0"
+          "11k4rn77bca2rikykkk9fmprrgjswd4x4kaq7fia08vgkir82nhx"
+          #:patches
+          '("rust-coresimd-doctest.patch"
+            "rust-bootstrap-stage0-test.patch"
+            "rust-1.25-accept-more-detailed-gdb-lines.patch"
+            "rust-reproducible-builds.patch"))))
     (package
       (inherit base-rust)
       (inputs
@@ -786,22 +824,22 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 
 (define-public rust-1.29
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.28 "1.29.2"
-                                    "1jb787080z754caa2w3w1amsygs4qlzj9rs1vy64firfmabfg22h"
-                                    #:patches
-                                    '("rust-1.25-accept-more-detailed-gdb-lines.patch"
-                                      "rust-reproducible-builds.patch"))))
+         (rust-bootstrapped-package-pre-1.32 rust-1.28 "1.29.2"
+          "1jb787080z754caa2w3w1amsygs4qlzj9rs1vy64firfmabfg22h"
+          #:patches
+          '("rust-1.25-accept-more-detailed-gdb-lines.patch"
+            "rust-reproducible-builds.patch"))))
     (package
       (inherit base-rust))))
 
 (define-public rust-1.30
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.29 "1.30.1"
-                                    "0aavdc1lqv0cjzbqwl5n59yd0bqdlhn0zas61ljf38yrvc18k8rn"
-                                    #:patches
-                                    '("rust-1.25-accept-more-detailed-gdb-lines.patch"
-                                      "rust-1.30-gdb-llvm.patch"
-                                      "rust-reproducible-builds.patch"))))
+         (rust-bootstrapped-package-pre-1.32 rust-1.29 "1.30.1"
+          "0aavdc1lqv0cjzbqwl5n59yd0bqdlhn0zas61ljf38yrvc18k8rn"
+          #:patches
+          '("rust-1.25-accept-more-detailed-gdb-lines.patch"
+            "rust-1.30-gdb-llvm.patch"
+            "rust-reproducible-builds.patch"))))
     (package
       (inherit base-rust)
       (inputs
@@ -838,14 +876,14 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
              ;; moved elsewhere, so the patch doesn't apply.
              (delete 'disable-amd64-avx-test))))))))
 
-(define-public rust
+(define-public rust-1.31
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.30 "1.31.1"
-                                    "0sk84ff0cklybcp0jbbxcw7lk7mrm6kb6km5nzd6m64dy0igrlli"
-                                    #:patches
-                                    '("rust-1.25-accept-more-detailed-gdb-lines.patch"
-                                      "rust-1.30-gdb-llvm.patch"
-                                      "rust-reproducible-builds.patch"))))
+         (rust-bootstrapped-package-pre-1.32 rust-1.30 "1.31.1"
+          "0sk84ff0cklybcp0jbbxcw7lk7mrm6kb6km5nzd6m64dy0igrlli"
+          #:patches
+          '("rust-1.25-accept-more-detailed-gdb-lines.patch"
+            "rust-1.30-gdb-llvm.patch"
+            "rust-reproducible-builds.patch"))))
     (package
       (inherit base-rust)
       (arguments
@@ -874,3 +912,62 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                  (substitute* "src/libstd/process.rs"
                    (("```rust") "```rust,no_run"))
                  #t)))))))))
+
+(define-public rust
+  (let ((base-rust
+         (rust-bootstrapped-package rust-1.31 "1.32.0"
+          "0ji2l9xv53y27xy72qagggvq47gayr5lcv2jwvmfirx029vlqnac"
+          #:patches '("rust-reproducible-builds.patch")
+          ;; the vendor directory has moved to the root of
+          ;; the tarball, so we have to strip an extra prefix
+          #:patch-flags '("-p2"))))
+    (package
+      (inherit base-rust)
+      (inputs
+       ;; Downgrade to LLVM 6, all LTO tests appear to fail with LLVM 7.0.1
+       (alist-replace "llvm" (list llvm-6)
+                      (package-inputs base-rust)))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             ;; Cargo.lock and the vendor/ directory have been moved to the
+             ;; root of the rust tarball
+             (replace 'patch-cargo-checksums
+               (lambda* _
+                 (substitute* "Cargo.lock"
+                   (("(\"checksum .* = )\".*\"" all name)
+                    (string-append name "\"" ,%cargo-reference-hash "\"")))
+                 (for-each
+                  (lambda (filename)
+                    (use-modules (guix build cargo-utils))
+                    (delete-file filename)
+                    (let* ((dir (dirname filename)))
+                      (display (string-append
+                                "patch-cargo-checksums: generate-checksums for "
+                                dir "\n"))
+                      (generate-checksums dir ,%cargo-reference-project-file)))
+                  (find-files "vendor" ".cargo-checksum.json"))
+                 #t))
+             (add-after 'enable-codegen-tests 'override-jemalloc
+               (lambda* (#:key inputs #:allow-other-keys)
+                 ;; The compiler is no longer directly built against jemalloc,
+                 ;; but rather via the jemalloc-sys crate (which vendors the
+                 ;; jemalloc source). To use jemalloc we must enable linking to
+                 ;; it (otherwise it would use the system allocator), and set
+                 ;; an environment variable pointing to the compiled jemalloc.
+                 (substitute* "config.toml"
+                   (("^jemalloc =.*$") "")
+                   (("[[]rust[]]") "\n[rust]\njemalloc=true\n"))
+                 (setenv "JEMALLOC_OVERRIDE" (string-append (assoc-ref inputs "jemalloc")
+                                                            "/lib/libjemalloc_pic.a"))
+                 #t))
+             (add-after 'patch-tests 'disable-amd64-avx-test
+               ;; That test would fail on x86_64 machines without avx.
+               (lambda* _
+                 (substitute* "src/test/ui/issues/issue-44056.rs"
+                   (("only-x86_64") "ignore-test"))
+                 #t))
+             ;; Remove no longer relevant steps
+             (delete 'remove-flaky-test)
+             (delete 'patch-aarch64-test))))))))
-- 
2.21.0





Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Mon, 18 Mar 2019 03:09:02 GMT) Full text and rfc822 format available.

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

From: Ivan Petkov <ivanppetkov <at> gmail.com>
To: 34820 <at> debbugs.gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: Re: [PATCH] gnu: rust: Update to 1.32.0
Date: Sun, 17 Mar 2019 20:07:54 -0700
Friendly ping! 
Already have a patch ready for packaging rust 1.33 :)

Thanks,
—Ivan



Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Tue, 19 Mar 2019 01:48:02 GMT) Full text and rfc822 format available.

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

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: Ivan Petkov <ivanppetkov <at> gmail.com>
Cc: 34820 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: rust: Update to 1.32.0
Date: Tue, 19 Mar 2019 02:47:19 +0100
[Message part 1 (text/plain, inline)]
Hi Ivan,

thanks for the reminder!

It's currently building in a private branch on bayfront.guixsd.org - let's see...
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Fri, 22 Mar 2019 15:34:01 GMT) Full text and rfc822 format available.

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

From: Ivan Petkov <ivanppetkov <at> gmail.com>
To: Danny Milosavljevic <dannym <at> scratchpost.org>
Cc: 34820 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: rust: Update to 1.32.0
Date: Fri, 22 Mar 2019 08:33:46 -0700
Thanks for submitting a build job!

Just curious, is there a public API to see the status/logs of the build similar to Hydra?
If not I’ll just wait for an email from you :)

—Ivan



Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Tue, 26 Mar 2019 13:22:02 GMT) Full text and rfc822 format available.

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

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: Ivan Petkov <ivanppetkov <at> gmail.com>
Cc: 34820 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: rust: Update to 1.32.0
Date: Tue, 26 Mar 2019 14:21:48 +0100
[Message part 1 (text/plain, inline)]
Hi Ivan,

On Fri, 22 Mar 2019 08:33:46 -0700
Ivan Petkov <ivanppetkov <at> gmail.com> wrote:

> Thanks for submitting a build job!
> 
> Just curious, is there a public API to see the status/logs of the build similar to Hydra?

I don't know.

> If not I’ll just wait for an email from you :)

I got a test failure while building rust 1.30.1, in ui/run-pass/issues/issue-44056.rs .

error: test run failed!
status: signal: 4
command: "/tmp/guix-build-rust-1.30.1.drv-0/rustc-1.30.1-src/build/x86_64-unknown-linux-gnu/test/ui/run-pass/issues/issue-44056/a"
thread '[ui] ui/run-pass/issues/issue-44056.rs' panicked at 'explicit panic', tools/compiletest/src/runtest.rs:3205:9

test result: FAILED. 6764 passed; 1 failed; 25 ignored; 0 measured; 0 filtered

command did not execute successfully: "/tmp/guix-build-rust-1.30.1.drv-0/rustc-1
.30.1-src/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compil
e-lib-path" "/tmp/guix-build-rust-1.30.1.drv-0/rustc-1.30.1-src/build/x86_64-unk
nown-linux-gnu/stage2/lib" "--run-lib-path" "/tmp/guix-build-rust-1.30.1.drv-0/r
ustc-1.30.1-src/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown
-linux-gnu/lib" "--rustc-path" "/tmp/guix-build-rust-1.30.1.drv-0/rustc-1.30.1-s
rc/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/tmp/guix-buil
d-rust-1.30.1.drv-0/rustc-1.30.1-src/src/test/ui" "--build-base" "/tmp/guix-buil
d-rust-1.30.1.drv-0/rustc-1.30.1-src/build/x86_64-unknown-linux-gnu/test/ui" "--
stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unk
nown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/gnu/sto
re/slhclazbx16ij6kyggz667sycmyy9iii-llvm-7.0.1/bin/FileCheck" "--host-rustcflags
" "-Crpath -O -Zunstable-options " "--target-rustcflags" "-Crpath -O -Zunstable-
options  -Lnative=/tmp/guix-build-rust-1.30.1.drv-0/rustc-1.30.1-src/build/x86_6
4-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/gnu/store/g87ha
mjyipk1j6dfq5pjfzfnfb64spbv-python2-2.7.15/bin/python2" "--lldb-python" "/gnu/st
ore/g87hamjyipk1j6dfq5pjfzfnfb64spbv-python2-2.7.15/bin/python2" "--gdb" "/gnu/s
tore/pp6nvrw47ip2r54k4kyk5a8fhyxvhsb8-gdb-8.2/bin/gdb" "--verbose" "--quiet" "--llvm-version" "7.0.1\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" ""
expected success, got: exit code: 101

I'm rebuilding that with "--keep-failed" now...
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Tue, 26 Mar 2019 14:14:01 GMT) Full text and rfc822 format available.

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

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: Ivan Petkov <ivanppetkov <at> gmail.com>
Cc: 34820 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: rust: Update to 1.32.0
Date: Tue, 26 Mar 2019 15:13:00 +0100
[Message part 1 (text/plain, inline)]
Upstream: https://github.com/rust-lang/rust/issues/55996
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Tue, 26 Mar 2019 15:01:01 GMT) Full text and rfc822 format available.

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

From: Ivan Petkov <ivanppetkov <at> gmail.com>
To: Danny Milosavljevic <dannym <at> scratchpost.org>
Cc: 34820 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: rust: Update to 1.32.0
Date: Tue, 26 Mar 2019 08:00:32 -0700
Hi Danny,

> On Mar 26, 2019, at 6:21 AM, Danny Milosavljevic <dannym <at> scratchpost.org> wrote:
> 
> I got a test failure while building rust 1.30.1, in ui/run-pass/issues/issue-44056.rs .

Hmm, I think I hit this too. The patch attempts to mark the test as ignored,
similar to what we do in earlier rust versions.

> I'm rebuilding that with "--keep-failed" now…

Could you check what the issue-44056 test file contains in case the
substitution didn’t work right?

Thanks,
—Ivan





Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Tue, 26 Mar 2019 18:15:01 GMT) Full text and rfc822 format available.

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

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: Ivan Petkov <ivanppetkov <at> gmail.com>
Cc: 34820 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: rust: Update to 1.32.0
Date: Tue, 26 Mar 2019 19:14:27 +0100
[Message part 1 (text/plain, inline)]
Hi Ivan,

the test has been moved to ./src/test/ui/run-pass/issues/issue-44056.rs

> Could you check what the issue-44056 test file contains in case the
> substitution didn’t work right?

The substitution phase has been deleted in rust-1.30 and thus can't work.

I've now reinstated an adjusted phase and restarted the build... let's see.
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Tue, 26 Mar 2019 19:19:02 GMT) Full text and rfc822 format available.

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

From: Ivan Petkov <ivanppetkov <at> gmail.com>
To: Danny Milosavljevic <dannym <at> scratchpost.org>
Cc: 34820 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: rust: Update to 1.32.0
Date: Tue, 26 Mar 2019 12:18:00 -0700
> On Mar 26, 2019, at 11:14 AM, Danny Milosavljevic <dannym <at> scratchpost.org> wrote:

> the test has been moved to ./src/test/ui/run-pass/issues/issue-44056.rs

> I've now reinstated an adjusted phase and restarted the build... let's see.

Great, thanks for fixing this, it looks like I got the path wrong in the original patch, and I added the phase to 1.32 instead of 1.31

—Ivan



Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Wed, 27 Mar 2019 01:52:02 GMT) Full text and rfc822 format available.

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

From: Brett Gilio <brettg <at> posteo.net>
To: Ivan Petkov <ivanppetkov <at> gmail.com>
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>, 34820 <at> debbugs.gnu.org
Subject: Re: [bug#34820] [PATCH] gnu: rust: Update to 1.32.0
Date: Tue, 26 Mar 2019 20:51:12 -0500
Ivan Petkov writes:

>> On Mar 26, 2019, at 11:14 AM, Danny Milosavljevic <dannym <at> scratchpost.org> wrote:
>
>> the test has been moved to ./src/test/ui/run-pass/issues/issue-44056.rs
>
>> I've now reinstated an adjusted phase and restarted the build... let's see.
>
> Great, thanks for fixing this, it looks like I got the path wrong in the original patch, and I added the phase to 1.32 instead of 1.31
>
> —Ivan

LGTM, I want to try maintaining a local build for nightly which requires
1.33 atm. Do we have an ETA on how long until we can get that? What can
I do to help?




Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Wed, 27 Mar 2019 02:20:02 GMT) Full text and rfc822 format available.

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

From: Ivan Petkov <ivanppetkov <at> gmail.com>
To: Brett Gilio <brettg <at> posteo.net>
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>, 34820 <at> debbugs.gnu.org
Subject: Re: [bug#34820] [PATCH] gnu: rust: Update to 1.32.0
Date: Tue, 26 Mar 2019 19:19:12 -0700
Hi Brett!

> On Mar 26, 2019, at 6:51 PM, Brett Gilio <brettg <at> posteo.net> wrote:
> 
> LGTM, I want to try maintaining a local build for nightly which requires
> 1.33 atm. Do we have an ETA on how long until we can get that? What can
> I do to help?

I actually have a patch ready for packaging 1.33, just been holding off to
avoid the noise while we get 1.31/1.32 built. Happy to post put it up if
you'd like to see a copy!

As far as maintaining nightlies goes, I think it would be a challenge to
keep up manually, unless you happen to have some cron job that builds a
new version daily. I've been considering packaging rustup within guix
after 1.33 lands, which might make it possible to develop with nightly
rust without having to maintain a nightly build within guix itself.

Not sure what challenges there may be with the rustup approach though
(will the prebuild binaries work well with guix?). I'd be happy to hear
if you make any progress though!

—Ivan



Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Wed, 27 Mar 2019 02:59:02 GMT) Full text and rfc822 format available.

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

From: Brett Gilio <brettg <at> posteo.net>
To: Ivan Petkov <ivanppetkov <at> gmail.com>
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>, 34820 <at> debbugs.gnu.org,
 Brett Gilio <brettg <at> posteo.net>
Subject: Re: [bug#34820] [PATCH] gnu: rust: Update to 1.32.0
Date: Tue, 26 Mar 2019 21:58:07 -0500
Ivan Petkov writes:

> Hi Brett!
>
>> On Mar 26, 2019, at 6:51 PM, Brett Gilio <brettg <at> posteo.net> wrote:
>> 
>> LGTM, I want to try maintaining a local build for nightly which requires
>> 1.33 atm. Do we have an ETA on how long until we can get that? What can
>> I do to help?
>
> I actually have a patch ready for packaging 1.33, just been holding off to
> avoid the noise while we get 1.31/1.32 built. Happy to post put it up if
> you'd like to see a copy!
>
> As far as maintaining nightlies goes, I think it would be a challenge to
> keep up manually, unless you happen to have some cron job that builds a
> new version daily. I've been considering packaging rustup within guix
> after 1.33 lands, which might make it possible to develop with nightly
> rust without having to maintain a nightly build within guix itself.
>
> Not sure what challenges there may be with the rustup approach though
> (will the prebuild binaries work well with guix?). I'd be happy to hear
> if you make any progress though!
>
> —Ivan

You are probably right, there are definitely going to be some liability
issues about working with the nightly branch. But it was something I was
interested in investigating. The more we deal with rust on Guix, the
more I think that rustup is going to have to become a necessity if we
want to attract more Rust developers to using Guix. Nightly is almost a
requirement for a good few.

You might be knowing that Nix has the rustup toolchain, and it seems to
work fine. Although, there is the nasty linker issue which requires
building all rust projects in a nix-shell with the mozilla rust
channel. So, there is definitely some potential challenges there, but it
is definitely something we need to investigate imo.

Also, yes, please send me the patch off list.

Brett




Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Wed, 27 Mar 2019 11:03:02 GMT) Full text and rfc822 format available.

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

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: Brett Gilio <brettg <at> posteo.net>
Cc: 34820 <at> debbugs.gnu.org, Ivan Petkov <ivanppetkov <at> gmail.com>
Subject: Re: [bug#34820] [PATCH] gnu: rust: Update to 1.32.0
Date: Wed, 27 Mar 2019 12:02:34 +0100
[Message part 1 (text/plain, inline)]
Hi,

On Tue, 26 Mar 2019 21:58:07 -0500
Brett Gilio <brettg <at> posteo.net> wrote:

> > Not sure what challenges there may be with the rustup approach though

Without using the Guix package manager?  That depends on whether they can
install into $HOME.  If so, it's not difficult.

> > (will the prebuild binaries work well with guix?).

We had prebuilt Rust binaries before, but we had to patch them slightly
using patchelf.

From a strategic standpoint we'd like to reduce the number of bootstrap
seeds required for Guix packages, not increase them.  But I guess as
long as they are optional (not dependencies of anything else), that's
the user's choice.

> You are probably right, there are definitely going to be some liability
> issues about working with the nightly branch. But it was something I was
> interested in investigating. The more we deal with rust on Guix, the
> more I think that rustup is going to have to become a necessity if we
> want to attract more Rust developers to using Guix. Nightly is almost a
> requirement for a good few.

I think Rust is one of the few languages getting it right in this regard:
There is a "stable" setting where you can only access APIs in the runtime
and/or language that won't change.  If there are unfinished experimental
APIs they can expose them (to programs not written to require the "stable"
setting) and later on change them and tell everyone "I told you so".

As a distribution, we usually package stable versions of software, so it
does make sense that if the feature is unstable (subject to change in
incompatible ways in less than, say, 1 month) then it's not available.

Long story short, I don't use Rust for production projects because some
important things are not deemed stable yet--and I had to do too much
pointless rewriting in my life just because some other API changed.

But there should be nothing stopping a user from testing Rust some other
way (install into $HOME etc).

In order to test Rust nightly I use a Docker container and this script:

dannym <at> dayas ~/.local/bin$ cat in-rust-nightly 
#!/bin/sh

p="`realpath \".\"`"
# example: cargo build --release
if [ "$1" = "" ]
then
        set -- sh
fi

exec docker run --rm -e USER="${USER}" --user "$(id -u)":"$(id -g)" -v "$PWD":"${p}" -w "${p}" rustlang/rust:nightly "$@"
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Thu, 28 Mar 2019 23:24:01 GMT) Full text and rfc822 format available.

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

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: Ivan Petkov <ivanppetkov <at> gmail.com>
Cc: 34820 <at> debbugs.gnu.org
Subject: Re: [bug#34820] [PATCH] gnu: rust: Update to 1.32.0
Date: Fri, 29 Mar 2019 00:23:09 +0100
[Message part 1 (text/plain, inline)]
Rust 1.31.1 moved the test again so it failed.

Fixing...
[Message part 2 (application/pgp-signature, inline)]

Reply sent to Danny Milosavljevic <dannym <at> scratchpost.org>:
You have taken responsibility. (Sun, 31 Mar 2019 19:13:01 GMT) Full text and rfc822 format available.

Notification sent to Ivan Petkov <ivanppetkov <at> gmail.com>:
bug acknowledged by developer. (Sun, 31 Mar 2019 19:13:02 GMT) Full text and rfc822 format available.

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

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: Ivan Petkov <ivanppetkov <at> gmail.com>
Cc: 34820-done <at> debbugs.gnu.org
Subject: Re: [bug#34820] [PATCH] gnu: rust: Update to 1.32.0
Date: Sun, 31 Mar 2019 21:12:56 +0200
[Message part 1 (text/plain, inline)]
Rust 1.32.0 just built fine.

I've pushed a variant of this patchset to master.

Thanks!
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#34820; Package guix-patches. (Mon, 01 Apr 2019 03:26:02 GMT) Full text and rfc822 format available.

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

From: Ivan Petkov <ivanppetkov <at> gmail.com>
To: Danny Milosavljevic <dannym <at> scratchpost.org>
Cc: 34820 <at> debbugs.gnu.org
Subject: Re: [bug#34820] [PATCH] gnu: rust: Update to 1.32.0
Date: Sun, 31 Mar 2019 20:25:43 -0700
> On Mar 31, 2019, at 12:12 PM, Danny Milosavljevic <dannym <at> scratchpost.org> wrote:
> 
> Rust 1.32.0 just built fine.
> 
> I've pushed a variant of this patchset to master.

Awesome, thanks again for your help Danny!

—Ivan



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

This bug report was last modified 4 years and 363 days ago.

Previous Next


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