Package: guix;
Reported by: Adam Van Ymeren <adam <at> vany.ca>
Date: Fri, 1 Dec 2017 16:22:01 UTC
Severity: normal
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 29522 in the body.
You can then email your comments to 29522 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
bug-guix <at> gnu.org
:bug#29522
; Package guix
.
(Fri, 01 Dec 2017 16:22:01 GMT) Full text and rfc822 format available.Adam Van Ymeren <adam <at> vany.ca>
:bug-guix <at> gnu.org
.
(Fri, 01 Dec 2017 16:22:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Adam Van Ymeren <adam <at> vany.ca> To: bug-guix <at> gnu.org Subject: rustc-1.16.0 broken after jemalloc updated to 5.0.1 Date: Thu, 30 Nov 2017 17:41:38 -0500
I haven't had time to dig in to this further, but in case anyone wants to fix rustc-1.16.0, it's broken after the upgrade of jemalloc to 5.0.1. Reverting commit 475b99fa5cf402430aa93a40e406e854ad2ff6e4 which reverts jemalloc back to 4.5.0 causes rustc to build successfully again. It has been broken for some time. https://hydra.gnu.org/job/gnu/master/rustc-1.16.0.x86_64-linux
bug-guix <at> gnu.org
:bug#29522
; Package guix
.
(Mon, 04 Dec 2017 00:02:02 GMT) Full text and rfc822 format available.Message #8 received at 29522 <at> debbugs.gnu.org (full text, mbox):
From: Jelle Licht <jlicht <at> fsfe.org> To: Adam Van Ymeren <adam <at> vany.ca> Cc: 29522 <at> debbugs.gnu.org Subject: Re: bug#29522: rustc-1.16.0 broken after jemalloc updated to 5.0.1 Date: Mon, 4 Dec 2017 01:01:29 +0100
[Message part 1 (text/plain, inline)]
2017-11-30 23:41 GMT+01:00 Adam Van Ymeren <adam <at> vany.ca>: > I haven't had time to dig in to this further, but in case anyone wants > to fix rustc-1.16.0, it's broken after the upgrade of jemalloc to 5.0.1. > > Reverting commit 475b99fa5cf402430aa93a40e406e854ad2ff6e4 which reverts > jemalloc back to 4.5.0 causes rustc to build successfully again. It has > been broken for some time. > > https://hydra.gnu.org/job/gnu/master/rustc-1.16.0.x86_64-linux > > > > It seems that the bundled copy of jemalloc in the rustc repo is currently pinned at 4.5.0 partially because of this specific issue as well. I did find an issue on the rust GH repo [0], and it seems this also affects the nix-rust project, who seem to have the same errors as our currently failing build [1]. A temporary workaround could be to have a custom version of jemalloc with the c++ features disabled by building with `--disable-cxx'. Alternatively, we could just make use of jemalloc 4.5.0 for rustc only until this is all sorted our by upstream. [0]: https://github.com/rust-lang/rust/issues/43586 [1]: https://gist.github.com/marmistrz/a6e503a5491df80a493030e0a0e702d2
[Message part 2 (text/html, inline)]
bug-guix <at> gnu.org
:bug#29522
; Package guix
.
(Mon, 04 Dec 2017 09:10:01 GMT) Full text and rfc822 format available.Message #11 received at 29522 <at> debbugs.gnu.org (full text, mbox):
From: ludo <at> gnu.org (Ludovic Courtès) To: Jelle Licht <jlicht <at> fsfe.org> Cc: Adam Van Ymeren <adam <at> vany.ca>, 29522 <at> debbugs.gnu.org Subject: Re: bug#29522: rustc-1.16.0 broken after jemalloc updated to 5.0.1 Date: Mon, 04 Dec 2017 10:09:54 +0100
Hi, Jelle Licht <jlicht <at> fsfe.org> skribis: > 2017-11-30 23:41 GMT+01:00 Adam Van Ymeren <adam <at> vany.ca>: > >> I haven't had time to dig in to this further, but in case anyone wants >> to fix rustc-1.16.0, it's broken after the upgrade of jemalloc to 5.0.1. >> >> Reverting commit 475b99fa5cf402430aa93a40e406e854ad2ff6e4 which reverts >> jemalloc back to 4.5.0 causes rustc to build successfully again. It has >> been broken for some time. >> >> https://hydra.gnu.org/job/gnu/master/rustc-1.16.0.x86_64-linux >> >> >> >> > It seems that the bundled copy of jemalloc in the rustc repo is currently > pinned at 4.5.0 partially > because of this specific issue as well. > > I did find an issue on the rust GH repo [0], and it seems this also affects > the nix-rust project, > who seem to have the same errors as our currently failing build [1]. > > A temporary workaround could be to have a custom version of jemalloc with > the c++ features disabled > by building with `--disable-cxx'. Alternatively, we could just make use of > jemalloc 4.5.0 for rustc only > until this is all sorted our by upstream. Using a --disable-cxx variant of the latest jemalloc sounds preferable to me over running an old jemalloc. How does that sound? Thanks, Ludo’.
bug-guix <at> gnu.org
:bug#29522
; Package guix
.
(Mon, 04 Dec 2017 14:55:03 GMT) Full text and rfc822 format available.Message #14 received at 29522 <at> debbugs.gnu.org (full text, mbox):
From: Nikolai Merinov <nikolai.merinov <at> member.fsf.org> To: Jelle Licht <jlicht <at> fsfe.org> Cc: 29522 <at> debbugs.gnu.org, 29555 <at> debbugs.gnu.org Subject: Re: [bug#29555] [PATCH] gnu: rust: update rust to 1.22.1 and cargo to 1.23.0 Date: Mon, 04 Dec 2017 19:54:13 +0500
[Message part 1 (text/plain, inline)]
I added "-lstdc++" to rust standard lib to overcome issue. Which solution is better: 1. change link flags for rust standard library, or 2. create rust-specific jemalloc as suggested in #29522? 4 декабря 2017 г. 19:33:31 GMT+05:00, Jelle Licht <jlicht <at> fsfe.org> пишет: >2017-12-03 20:01 GMT+01:00 Nikolai Merinov ><nikolai.merinov <at> member.fsf.org>: > >> Update for a rustc and cargo packages. This update will also fix a >> build. >> >> >I do not have enough know-how to properly review your patch, but at >least I >can verify it seems to work. >I was able to build rustc and cargo succesfully with your patches, and >was >able to build and run a trivial hello world program written in rust. >When this patch is merged, I think we can also close >http://lists.gnu.org/archive/html/bug-guix/2017-12/msg00006.html, as it >will no longer be relevant. -- Nikolai Merinov
[Message part 2 (text/html, inline)]
bug-guix <at> gnu.org
:bug#29522
; Package guix
.
(Mon, 04 Dec 2017 16:06:02 GMT) Full text and rfc822 format available.Message #17 received at 29522 <at> debbugs.gnu.org (full text, mbox):
From: Danny Milosavljevic <dannym <at> scratchpost.org> To: Nikolai Merinov <nikolai.merinov <at> member.fsf.org> Cc: Jelle Licht <jlicht <at> fsfe.org>, 29522 <at> debbugs.gnu.org, 29555 <at> debbugs.gnu.org Subject: Re: [bug#29555] [PATCH] gnu: rust: update rust to 1.22.1 and cargo to 1.23.0 Date: Mon, 4 Dec 2017 17:05:11 +0100
Hi, On Mon, 04 Dec 2017 19:54:13 +0500 Nikolai Merinov <nikolai.merinov <at> member.fsf.org> wrote: > I added "-lstdc++" to rust standard lib to overcome issue. Which solution is better: > 1. change link flags for rust standard library, or Sounds hacky and I'm not sure why it helps or whether it will keep working. > 2. create rust-specific jemalloc as suggested in #29522? I vote for using a rust-specific jemalloc without the C++ parts (named "jemalloc-without-c++" or something, it just has to pass a flag to "configure"). It's smaller, too. Any downsides?
bug-guix <at> gnu.org
:bug#29522
; Package guix
.
(Mon, 04 Dec 2017 16:11:01 GMT) Full text and rfc822 format available.Message #20 received at 29522 <at> debbugs.gnu.org (full text, mbox):
From: Adam Van Ymeren <adam <at> vany.ca> To: ludo <at> gnu.org (Ludovic Courtès) Cc: Jelle Licht <jlicht <at> fsfe.org>, 29522 <at> debbugs.gnu.org Subject: Re: bug#29522: rustc-1.16.0 broken after jemalloc updated to 5.0.1 Date: Mon, 04 Dec 2017 11:10:10 -0500
ludo <at> gnu.org (Ludovic Courtès) writes: > Hi, > > Jelle Licht <jlicht <at> fsfe.org> skribis: > >> 2017-11-30 23:41 GMT+01:00 Adam Van Ymeren <adam <at> vany.ca>: >> >>> I haven't had time to dig in to this further, but in case anyone wants >>> to fix rustc-1.16.0, it's broken after the upgrade of jemalloc to 5.0.1. >>> >>> Reverting commit 475b99fa5cf402430aa93a40e406e854ad2ff6e4 which reverts >>> jemalloc back to 4.5.0 causes rustc to build successfully again. It has >>> been broken for some time. >>> >>> https://hydra.gnu.org/job/gnu/master/rustc-1.16.0.x86_64-linux >>> >>> >>> >>> >> It seems that the bundled copy of jemalloc in the rustc repo is currently >> pinned at 4.5.0 partially >> because of this specific issue as well. >> >> I did find an issue on the rust GH repo [0], and it seems this also affects >> the nix-rust project, >> who seem to have the same errors as our currently failing build [1]. >> >> A temporary workaround could be to have a custom version of jemalloc with >> the c++ features disabled >> by building with `--disable-cxx'. Alternatively, we could just make use of >> jemalloc 4.5.0 for rustc only >> until this is all sorted our by upstream. > > Using a --disable-cxx variant of the latest jemalloc sounds preferable > to me over running an old jemalloc. I feel like if rust is pegged at jemalloc 4.5.0 then that's what we should be feeding it. The changelog suggestst that jemalloc 5 has some pretty significant changes, changing rust to use that theoretically lead to some subtle bugs, I feel like I'd rather wait for upstream to make the upgrade themselves. > > How does that sound? > > Thanks, > Ludo’.
bug-guix <at> gnu.org
:bug#29522
; Package guix
.
(Mon, 04 Dec 2017 17:20:02 GMT) Full text and rfc822 format available.Message #23 received at 29522 <at> debbugs.gnu.org (full text, mbox):
From: ludo <at> gnu.org (Ludovic Courtès) To: Adam Van Ymeren <adam <at> vany.ca> Cc: Jelle Licht <jlicht <at> fsfe.org>, 29522 <at> debbugs.gnu.org Subject: Re: bug#29522: rustc-1.16.0 broken after jemalloc updated to 5.0.1 Date: Mon, 04 Dec 2017 18:19:32 +0100
Adam Van Ymeren <adam <at> vany.ca> skribis: > ludo <at> gnu.org (Ludovic Courtès) writes: > >> Hi, >> >> Jelle Licht <jlicht <at> fsfe.org> skribis: [...] >>> It seems that the bundled copy of jemalloc in the rustc repo is currently >>> pinned at 4.5.0 partially >>> because of this specific issue as well. >>> >>> I did find an issue on the rust GH repo [0], and it seems this also affects >>> the nix-rust project, >>> who seem to have the same errors as our currently failing build [1]. >>> >>> A temporary workaround could be to have a custom version of jemalloc with >>> the c++ features disabled >>> by building with `--disable-cxx'. Alternatively, we could just make use of >>> jemalloc 4.5.0 for rustc only >>> until this is all sorted our by upstream. >> >> Using a --disable-cxx variant of the latest jemalloc sounds preferable >> to me over running an old jemalloc. > > I feel like if rust is pegged at jemalloc 4.5.0 then that's what we > should be feeding it. The changelog suggestst that jemalloc 5 has some > pretty significant changes, changing rust to use that theoretically lead > to some subtle bugs, I feel like I'd rather wait for upstream to make > the upgrade themselves. Right, that makes sense. In that case, we should reintroduce jemalloc 4.5 and use that in Rust. Ludo’.
bug-guix <at> gnu.org
:bug#29522
; Package guix
.
(Mon, 04 Dec 2017 19:36:01 GMT) Full text and rfc822 format available.Message #26 received at 29522 <at> debbugs.gnu.org (full text, mbox):
From: Adam Van Ymeren <adam <at> vany.ca> To: ludo <at> gnu.org (Ludovic Courtès) Cc: Jelle Licht <jlicht <at> fsfe.org>, 29522 <at> debbugs.gnu.org Subject: Re: bug#29522: rustc-1.16.0 broken after jemalloc updated to 5.0.1 Date: Mon, 04 Dec 2017 14:35:07 -0500
ludo <at> gnu.org (Ludovic Courtès) writes: > Adam Van Ymeren <adam <at> vany.ca> skribis: > >> ludo <at> gnu.org (Ludovic Courtès) writes: >> >>> Hi, >>> >>> Jelle Licht <jlicht <at> fsfe.org> skribis: > > [...] > >>>> It seems that the bundled copy of jemalloc in the rustc repo is currently >>>> pinned at 4.5.0 partially >>>> because of this specific issue as well. >>>> >>>> I did find an issue on the rust GH repo [0], and it seems this also affects >>>> the nix-rust project, >>>> who seem to have the same errors as our currently failing build [1]. >>>> >>>> A temporary workaround could be to have a custom version of jemalloc with >>>> the c++ features disabled >>>> by building with `--disable-cxx'. Alternatively, we could just make use of >>>> jemalloc 4.5.0 for rustc only >>>> until this is all sorted our by upstream. >>> >>> Using a --disable-cxx variant of the latest jemalloc sounds preferable >>> to me over running an old jemalloc. >> >> I feel like if rust is pegged at jemalloc 4.5.0 then that's what we >> should be feeding it. The changelog suggestst that jemalloc 5 has some >> pretty significant changes, changing rust to use that theoretically lead >> to some subtle bugs, I feel like I'd rather wait for upstream to make >> the upgrade themselves. > > Right, that makes sense. > > In that case, we should reintroduce jemalloc 4.5 and use that in Rust. Sounds good, I have a patch that does this and also bumps rust to latest upstream, but the build is taking forever. Will post once I've built it successfully. > > Ludo’.
bug-guix <at> gnu.org
:bug#29522
; Package guix
.
(Tue, 05 Dec 2017 06:11:02 GMT) Full text and rfc822 format available.Message #29 received at 29522 <at> debbugs.gnu.org (full text, mbox):
From: Nikolai Merinov <nikolai.merinov <at> member.fsf.org> To: Danny Milosavljevic <dannym <at> scratchpost.org> Cc: Jelle Licht <jlicht <at> fsfe.org>, 29522 <at> debbugs.gnu.org, 29555 <at> debbugs.gnu.org Subject: Re: [bug#29555] [PATCH] gnu: rust: update rust to 1.22.1 and cargo to 1.23.0 Date: Tue, 05 Dec 2017 11:10:21 +0500
[Message part 1 (text/plain, inline)]
Please find new version of patch: I removed linkage with libstdc++ and added new jemalloc-without-c++
[0001-gnu-rust-update-rust-to-1.22.1-and-cargo-to-1.23.0.patch (text/x-patch, inline)]
From 7cc263d0cbed910c9fdfcef57b52538229054e6b Mon Sep 17 00:00:00 2001 From: Nikolay Merinov <nikolay.merinov <at> member.fsf.org> Date: Sun, 3 Dec 2017 19:55:24 +0500 Subject: [PATCH] gnu: rust: update rust to 1.22.1 and cargo to 1.23.0 To: guix-patches <at> gnu.org * gnu/packages/rust.scm (%rust-bootstrap-binaries-version): update version (%rust-bootstrap-binaries): use x86_64 rust bootstrap package for x86_64 build (%cargo-reference-project-file): Use specific file as "project" file when patching rust vendored sources (%cargo-reference-hash): sha256 sum for %cargo-reference-project-file (rustc-bootstrap): use bootstrap package with host architecture (cargo-bootstrap): use bootstrap package with host architecture (rustc): Add new test dependency, fix build issues, use "./x.py" script for build instead of "./configure" (cargo): Update dependencies, patch shebangs for vendored sources * gnu/packages/jemalloc.scm: add version of jemalloc without c++ --- gnu/packages/jemalloc.scm | 10 + gnu/packages/rust.scm | 1179 ++++++++++++++++++++++++++++++--------------- 2 files changed, 808 insertions(+), 381 deletions(-) diff --git a/gnu/packages/jemalloc.scm b/gnu/packages/jemalloc.scm index a3bd2c93a..b1f324e1a 100644 --- a/gnu/packages/jemalloc.scm +++ b/gnu/packages/jemalloc.scm @@ -23,6 +23,7 @@ #:use-module ((guix licenses) #:select (bsd-2)) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (gnu packages perl) #:use-module (guix build-system gnu)) @@ -62,3 +63,12 @@ "This library providing a malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support.") (license bsd-2))) + +(define-public jemalloc-without-c++ + (package + (inherit jemalloc) + (name "jemalloc-without-c++") + (arguments + (substitute-keyword-arguments (package-arguments jemalloc) + ((#:configure-flags cf) + `(cons "--disable-cxx" ,cf)))))) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 583ea37c8..11e8a8b25 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev <at> free.fr> ;;; Copyright © 2016 ng0 <ng0 <at> infotropique.org> ;;; Copyright © 2017 Ben Woodcroft <donttrustben <at> gmail.com> +;;; Copyright © 2017 Nikolai Merinov <nikolai.merinov <at> member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +30,7 @@ #:use-module (gnu packages elf) #:use-module (gnu packages flex) #:use-module (gnu packages gcc) + #:use-module (gnu packages gdb) #:use-module (gnu packages jemalloc) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) @@ -37,17 +39,19 @@ #:use-module (gnu packages ssh) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) + #:use-module (gnu packages) #:use-module (guix build-system cargo) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (guix download) + #:use-module (guix base16) ;for generated "cargo" native-inputs #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (ice-9 match) #:use-module (srfi srfi-26)) ;; Should be one less than the current released version. -(define %rust-bootstrap-binaries-version "1.15.0") +(define %rust-bootstrap-binaries-version "1.21.0") (define %rust-bootstrap-binaries (origin @@ -55,10 +59,18 @@ (uri (string-append "https://static.rust-lang.org/dist/" "rust-" %rust-bootstrap-binaries-version - "-i686-unknown-linux-gnu.tar.gz")) + "-" %host-type ".tar.gz")) (sha256 (base32 - "0wmkfx8pxmkkw021mrq9s3xhra8f0daqdl6j56pxyn4w39i0rzrw")))) + (match %host-type + ("i686-unknown-linux-gnu" + "1vnvqwz30hvyjcfr1f602lg43v2vlqjr3yhb5vr8xnrcc07yvjmp") + ("x86_64-unknown-linux-gnu" + "1s0866qcy0645bqhsbs3pvk2hi52ps8jzs7x096w0as033h707ml")))))) + +(define %cargo-reference-project-file "/dev/null") +(define %cargo-reference-hash + "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855") (define (increment-rust-version rust-version major patch) (match (string-split rust-version #\.) @@ -92,7 +104,6 @@ (arguments `(#:tests? #f #:strip-binaries? #f - #:system "i686-linux" #:phases (modify-phases %standard-phases (delete 'configure) @@ -103,8 +114,7 @@ (gcc:lib (assoc-ref inputs "gcc:lib")) (libc (assoc-ref inputs "libc")) (zlib (assoc-ref inputs "zlib")) - (ld-so (string-append libc - ,(glibc-dynamic-linker "i686-linux"))) + (ld-so (string-append libc ,(glibc-dynamic-linker))) (rpath (string-append out "/lib:" zlib "/lib:" libc "/lib:" gcc:lib "/lib")) (rustc (string-append out "/bin/rustc")) @@ -112,7 +122,7 @@ (system* "bash" "install.sh" (string-append "--prefix=" out) (string-append "--components=rustc," - "rust-std-i686-unknown-linux-gnu")) + "rust-std-" %host-type)) (for-each (lambda (file) (system* "patchelf" "--set-rpath" rpath file)) (cons* rustc rustdoc (find-files out "\\.so$"))) @@ -129,7 +139,7 @@ which can in turn be used to build the final Rust compiler.") (define cargo-bootstrap (package (name "cargo-bootstrap") - (version (cargo-version %rust-bootstrap-binaries-version)) + (version (cargo-version %rust-bootstrap-binaries-version 1)) (source %rust-bootstrap-binaries) (build-system gnu-build-system) (native-inputs @@ -139,7 +149,6 @@ which can in turn be used to build the final Rust compiler.") (arguments `(#:tests? #f #:strip-binaries? #f - #:system "i686-linux" #:phases (modify-phases %standard-phases (delete 'configure) @@ -149,8 +158,7 @@ which can in turn be used to build the final Rust compiler.") (let* ((out (assoc-ref outputs "out")) (gcc:lib (assoc-ref inputs "gcc:lib")) (libc (assoc-ref inputs "libc")) - (ld-so (string-append libc - ,(glibc-dynamic-linker "i686-linux"))) + (ld-so (string-append libc ,(glibc-dynamic-linker))) (rpath (string-append out "/lib:" libc "/lib:" gcc:lib "/lib")) (cargo (string-append out "/bin/cargo"))) @@ -196,11 +204,11 @@ manager, which is required to build itself.") (description "Meta package for a rust environment. Provides pre-compiled rustc-bootstrap and cargo-bootstrap packages.") (license license:asl2.0))) - + (define-public rustc (package (name "rustc") - (version (rustc-version %rust-bootstrap-binaries-version)) + (version (rustc-version %rust-bootstrap-binaries-version 1)) (source (origin (method url-fetch) (uri (string-append @@ -208,109 +216,139 @@ rustc-bootstrap and cargo-bootstrap packages.") "rustc-" version "-src.tar.gz")) (sha256 (base32 - "1d78jq7mc34n265by68amr9r4nzbiqrilfbwh7gx56ydn4gb6rpr")) - (modules '((guix build utils))) - (snippet - `(begin - (delete-file-recursively "src/llvm") - #t)))) + "1lrzzp0nh7s61wgfs2h6ilaqi6iq89f1pd1yaf65l87bssyl4ylb")) + (modules '((guix build utils))) + (snippet + `(begin + (delete-file-recursively "src/llvm") + #t)))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) ; For the tests ("cmake" ,cmake) ("flex" ,flex) ; For the tests + ("gdb" ,gdb) ; For the tests ("git" ,git) ("procps" ,procps) ; For the tests ("python-2" ,python-2) ("rust-bootstrap" ,rust-bootstrap) ("which" ,which))) (inputs - `(("jemalloc" ,jemalloc) + `(("jemalloc" ,jemalloc-without-c++) ("llvm" ,llvm-3.9.1))) (arguments - `(#:phases + `(#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums' + #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-configure - (lambda _ - (substitute* "configure" - (("/usr/bin/env") (which "env")) ; Detect target CPU correctly. - (("probe_need CFG_CURL curl") "") ; Avoid curl build dependency. - ;; Newer LLVM has a NVPTX (NVIDIA) backend which the Rust - ;; Makefiles don't know about, causing a linker failure - ;; if we don't intervene. - ;; Therefore, we add NVPTX here. - ;; See <https://github.com/rust-lang/rust/issues/40698>. - ;; For the next release, we will have to use rustbuild. - ;; Right now, rustbuild doesn't work yet. - (("-DLLVM_TARGETS_TO_BUILD='") - "-DLLVM_TARGETS_TO_BUILD='NVPTX;")) ; Make LLVM >= 3.8.1 work. - (substitute* "src/tools/compiletest/src/util.rs" - (("(\"amd64\", \"x86_64\"),") "(\"amd64\", \"x86_64\"), -(\"nvptx\", \"nvptx\"),")) ; Make LLVM >= 3.8.1 work. - (substitute* "mk/main.mk" - (("LLVM_OPTIONAL_COMPONENTS=") - "LLVM_OPTIONAL_COMPONENTS=nvptx ")) ; Make LLVM >= 3.8.1 work. - #t)) (add-after 'unpack 'set-env (lambda _ (setenv "SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh")) + ;; guix llvm-3.9.1 package install only shared libraries + (setenv "LLVM_LINK_SHARED" "1") #t)) (add-after 'unpack 'patch-tests (lambda* (#:key inputs #:allow-other-keys) (let ((bash (assoc-ref inputs "bash"))) - (substitute* "src/tools/tidy/src/main.rs" - (("^.*cargo.*::check.*$") "")) + (substitute* "src/build_helper/lib.rs" + ;; In same folder as gcc there is only "gcc-ar" utility + (("file\\.push_str\\(\"ar\"\\);") "file.push_str(\"gcc-ar\");")) (substitute* "src/libstd/process.rs" ;; The newline is intentional. ;; There's a line length "tidy" check in Rust which would ;; fail otherwise. - (("\"/bin/sh\"") (string-append " -\"" bash "/bin/sh\""))) - ;; See <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00222.html>. + (("\"/bin/sh\"") (string-append "\n\"" bash "/bin/sh\""))) + (substitute* "src/libstd/net/tcp.rs" + ;; There is no network in build environment + (("fn connect_timeout_unroutable") + "#[ignore]\nfn connect_timeout_unroutable")) + ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00222.html> (substitute* "src/libstd/sys/unix/process/process_common.rs" - (("fn test_process_mask") "#[cfg_attr(target_os = \"linux\", ignore)] -fn test_process_mask")) + (("fn test_process_mask") "#[ignore]\nfn test_process_mask")) ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH. - ;; See <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00193.html>. + ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00193.html> (delete-file-recursively "src/test/run-make/linker-output-non-utf8") + (substitute* "src/build_helper/lib.rs" + ;; Bug in Rust code. + ;; Current implementation assume that if dst not exist then it's mtime + ;; is 0, but in same time "src" have 0 mtime in guix build! + (("let threshold = mtime\\(dst\\);") + "if !dst.exists() {\nreturn false\n}\n let threshold = mtime(dst);")) #t))) + (add-after 'patch-source-shebangs 'patch-cargo-checksums + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/Cargo.lock" + (("(\"checksum .* = )\".*\"" all name) + (string-append name "\"" ,%cargo-reference-hash "\""))) + (for-each + (lambda (filename) + (use-modules (guix build cargo-build-system)) + (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 "src/vendor" ".cargo-checksum.json")))) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (gcc (assoc-ref inputs "gcc")) + (gdb (assoc-ref inputs "gdb")) (binutils (assoc-ref inputs "binutils")) (python (assoc-ref inputs "python-2")) (rustc (assoc-ref inputs "rustc-bootstrap")) + (cargo (assoc-ref inputs "cargo-bootstrap")) (llvm (assoc-ref inputs "llvm")) - (jemalloc (assoc-ref inputs "jemalloc")) - (flags (list - (string-append "--prefix=" out) - (string-append "--datadir=" out "/share") - (string-append "--infodir=" out "/share/info") - (string-append "--default-linker=" gcc "/bin/gcc") - (string-append "--default-ar=" binutils "/bin/ar") - (string-append "--python=" python "/bin/python2") - (string-append "--local-rust-root=" rustc) - (string-append "--llvm-root=" llvm) - (string-append "--jemalloc-root=" jemalloc "/lib") - "--release-channel=stable" - "--enable-rpath" - "--enable-local-rust" - "--disable-rustbuild" ; rustbuild doesn't work yet. - "--disable-manage-submodules"))) - ;; Rust uses a custom configure script (no autoconf). - (zero? (apply system* "./configure" flags))))) - (add-after 'install 'wrap-rustc + (jemalloc (assoc-ref inputs "jemalloc"))) + (call-with-output-file "config.toml" + (lambda (port) + (display (string-append " +[llvm] +[build] +cargo = \"" cargo "/bin/cargo" "\" +rustc = \"" rustc "/bin/rustc" "\" +python = \"" python "/bin/python2" "\" +gdb = \"" gdb "/bin/gdb" "\" +vendor = true +submodules = false +[install] +prefix = \"" out "\" +[rust] +default-linker = \"" gcc "/bin/gcc" "\" +default-ar = \"" binutils "/bin/ar" "\" +channel = \"stable\" +rpath = true +# There is 2 failed codegen tests: +# codegen/mainsubprogram.rs and codegen/mainsubprogramstart.rs +# This tests required patched LLVM +codegen-tests = false +[target." %host-type "] +llvm-config = \"" llvm "/bin/llvm-config" "\" +cc = \"" gcc "/bin/gcc" "\" +cxx = \"" gcc "/bin/g++" "\" +jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" +[dist] +") port)))))) + (replace 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (zero? (system* "./x.py" "build")))) + (replace 'check (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (libc (assoc-ref inputs "libc")) - (ld-wrapper (assoc-ref inputs "ld-wrapper"))) + (zero? (system* "./x.py" "test")))) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (zero? (system* "./x.py" "install")))) + (add-after 'install 'wrap-rustc + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (libc (assoc-ref inputs "libc")) + (ld-wrapper (assoc-ref inputs "ld-wrapper"))) ;; Let gcc find ld and libc startup files. - (wrap-program (string-append out "/bin/rustc") - `("PATH" ":" prefix (,(string-append ld-wrapper "/bin"))) - `("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib")))) - #t)))))) + (wrap-program (string-append out "/bin/rustc") + `("PATH" ":" prefix (,(string-append ld-wrapper "/bin"))) + `("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib")))) + #t)))))) ;; rustc invokes gcc, so we need to set its search paths accordingly. (native-search-paths (package-native-search-paths gcc)) (synopsis "Compiler for the Rust progamming language") @@ -325,7 +363,7 @@ safety and thread safety guarantees.") (define-public cargo (package (name "cargo") - (version (cargo-version (rustc-version %rust-bootstrap-binaries-version))) + (version (cargo-version (rustc-version %rust-bootstrap-binaries-version) 0)) (source (origin (method url-fetch) (uri (string-append "https://github.com/rust-lang/cargo/archive/" @@ -333,7 +371,7 @@ safety and thread safety guarantees.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1y0zy8gk1ly0wh57y78fisk7cdd92qk0x7z664f6l7lzl2krqs7w")))) + "0kr7rml7v2bm7zl8jcb3056h63zpyy9m08s212i8vfwxf6lf5fzl")))) (build-system cargo-build-system) (propagated-inputs `(("cmake" ,cmake) @@ -346,506 +384,870 @@ safety and thread safety guarantees.") ("python-2" ,python-2) ("zlib" ,zlib))) (native-inputs - `(("rust-openssl" + `(("git" ,git) ; required for tests + ;; Next dependencies generated with next command: + ;; cat Cargo.lock | awk ' + ;; /^"checksum/ + ;; { oname=name=$2; vers=$3; hash=$6; + ;; if (ns[name] != 1) { ns[name]=1; } else { name = name "-" vers; } + ;; print " (\"rust-" name "\""; + ;; print " ,(origin"; + ;; print " (method url-fetch)"; + ;; print " (uri (crate-uri \"" oname "\" \"" vers "\"))"; + ;; print " (sha256"; + ;; print " (base16-string->bytevector"; + ;; print " " hash "))))" + ;; }' + ("rust-advapi32-sys" ,(origin (method url-fetch) - (uri (crate-uri "openssl" "0.9.6")) + (uri (crate-uri "advapi32-sys" "0.2.0")) (sha256 - (base32 - "0g28g692gby6izp9qmnwnyxyhf9b0870yhd500p18j9l69lxl00c")))) - ("rust-strsim" + (base16-string->bytevector + "e06588080cb19d0acb6739808aafa5f26bfb2ca015b2b6370028b44cf7cb8a9a")))) + ("rust-aho-corasick" ,(origin (method url-fetch) - (uri (crate-uri "strsim" "0.5.1")) + (uri (crate-uri "aho-corasick" "0.5.3")) (sha256 - (base32 - "0bj4fsm1l2yqbfpspyvjf9m3m50pskapcddzm0ji9c74jbgnkh2h")))) - ("rust-libc" + (base16-string->bytevector + "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686ddb66")))) + ("rust-aho-corasick-0.6.3" ,(origin (method url-fetch) - (uri (crate-uri "libc" "0.2.18")) + (uri (crate-uri "aho-corasick" "0.6.3")) (sha256 - (base32 - "0w5cghr0wx3hi2sclk8r9iyzlbxsakil87ada40q2ykyhky24655")))) + (base16-string->bytevector + "500909c4f87a9e52355b26626d890833e9e1d53ac566db76c36faa984b889699")))) + ("rust-atty" + ,(origin + (method url-fetch) + (uri (crate-uri "atty" "0.2.3")) + (sha256 + (base16-string->bytevector + "21e50800ec991574876040fff8ee46b136a53e985286fbe6a3bdfe6421b78860")))) + ("rust-backtrace" + ,(origin + (method url-fetch) + (uri (crate-uri "backtrace" "0.3.3")) + (sha256 + (base16-string->bytevector + "99f2ce94e22b8e664d95c57fff45b98a966c2252b60691d0b7aeeccd88d70983")))) + ("rust-backtrace-sys" + ,(origin + (method url-fetch) + (uri (crate-uri "backtrace-sys" "0.1.14")) + (sha256 + (base16-string->bytevector + "c63ea141ef8fdb10409d0f5daf30ac51f84ef43bff66f16627773d2a292cd189")))) ("rust-bitflags" ,(origin (method url-fetch) (uri (crate-uri "bitflags" "0.7.0")) (sha256 - (base32 - "0v8hh6wdkpk9my8z8442g4hqrqf05h0qj53dsay6mv18lqvqklda")))) - ("rust-unicode-normalization" + (base16-string->bytevector + "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d")))) + ("rust-bitflags-0.9.1" ,(origin (method url-fetch) - (uri (crate-uri "unicode-normalization" "0.1.2")) + (uri (crate-uri "bitflags" "0.9.1")) (sha256 - (base32 - "0whi4xxqcjfsz6ywyrfd5lhgk1a44c86qwgvfqcmzidshcpklr16")))) - ("rust-rand" + (base16-string->bytevector + "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5")))) + ("rust-bufstream" ,(origin (method url-fetch) - (uri (crate-uri "rand" "0.3.14")) + (uri (crate-uri "bufstream" "0.1.3")) (sha256 - (base32 - "1984zvj8572ig28fz6idc4r96fx39h4lzmr07yf7kb7gdn6di497")))) - ("rust-gcc" + (base16-string->bytevector + "f2f382711e76b9de6c744cc00d0497baba02fb00a787f088c879f01d09468e32")))) + ("rust-cc" ,(origin (method url-fetch) - (uri (crate-uri "gcc" "0.3.39")) + (uri (crate-uri "cc" "1.0.0")) (sha256 - (base32 - "1q0idjvmhp6shkb9hqabh51rgfr8dqpi1xfmyzq7q8vgzybll7kp")))) - ("rust-tempdir" + (base16-string->bytevector + "7db2f146208d7e0fbee761b09cd65a7f51ccc38705d4e7262dad4d73b12a76b1")))) + ("rust-cfg-if" ,(origin (method url-fetch) - (uri (crate-uri "tempdir" "0.3.5")) + (uri (crate-uri "cfg-if" "0.1.2")) (sha256 - (base32 - "1mij45kgzflkja0h8q9avrik76h5a0b60m9hfd6k9yqxbiplm5w7")))) - ("rust-memchr" + (base16-string->bytevector + "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de")))) + ("rust-cmake" ,(origin (method url-fetch) - (uri (crate-uri "memchr" "0.1.11")) + (uri (crate-uri "cmake" "0.1.26")) (sha256 - (base32 - "084d85hjfa3xf5kwdms2mhbkh78m1gl2254cp5swcxj3a7xjkdnq")))) - ("rust-rustc-serialize" + (base16-string->bytevector + "357c07e7a1fc95732793c1edb5901e1a1f305cfcf63a90eb12dbd22bdb6b789d")))) + ("rust-commoncrypto" ,(origin (method url-fetch) - (uri (crate-uri "rustc-serialize" "0.3.21")) + (uri (crate-uri "commoncrypto" "0.2.0")) (sha256 - (base32 - "064qmyr2508qf78dwcpiv25rfjp9h9vd0wrj4mmwgppjg4fgrydz")))) - ("rust-cmake" + (base16-string->bytevector + "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b69007")))) + ("rust-commoncrypto-sys" ,(origin (method url-fetch) - (uri (crate-uri "cmake" "0.1.19")) + (uri (crate-uri "commoncrypto-sys" "0.2.0")) (sha256 - (base32 - "0am8c8ns1h6b1a5x9z2r1m3rszvya5nccl2pzszzjv5aiiaydgcf")))) - ("rust-matches" + (base16-string->bytevector + "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f4083e2")))) + ("rust-conv" ,(origin (method url-fetch) - (uri (crate-uri "matches" "0.1.4")) + (uri (crate-uri "conv" "0.3.3")) (sha256 - (base32 - "1c8190j84hbicy8jwscw5icfam12j6lcxi02lvmadq9260p65mzg")))) - ("rust-winapi" + (base16-string->bytevector + "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d1299")))) + ("rust-core-foundation" ,(origin (method url-fetch) - (uri (crate-uri "winapi" "0.2.8")) + (uri (crate-uri "core-foundation" "0.4.4")) (sha256 - (base32 - "0yh816lh6lf56dpsgxy189c2ai1z3j8mw9si6izqb6wsjkbcjz8n")))) - ("rust-pkg-config" + (base16-string->bytevector + "5909502e547762013619f4c4e01cc7393c20fe2d52d7fa471c1210adb2320dc7")))) + ("rust-core-foundation-sys" ,(origin (method url-fetch) - (uri (crate-uri "pkg-config" "0.3.8")) + (uri (crate-uri "core-foundation-sys" "0.4.4")) (sha256 - (base32 - "1ypj4nj2z9z27qg06v3g40jyhw685i3l2wi098d21bvyri781vlc")))) - ("rust-libssh2-sys" + (base16-string->bytevector + "bc9fb3d6cb663e6fd7cf1c63f9b144ee2b1e4a78595a0451dd34bff85b9a3387")))) + ("rust-crossbeam" ,(origin (method url-fetch) - (uri (crate-uri "libssh2-sys" "0.2.5")) + (uri (crate-uri "crossbeam" "0.2.10")) (sha256 - (base32 - "0d2r36hrh9vc1821r0v4kywv30svpf37d31calwql69fbij3bqci")))) - ("rust-libz-sys" + (base16-string->bytevector + "0c5ea215664ca264da8a9d9c3be80d2eaf30923c259d03e870388eb927508f97")))) + ("rust-crossbeam-0.3.0" + ,(origin + (method url-fetch) + (uri (crate-uri "crossbeam" "0.3.0")) + (sha256 + (base16-string->bytevector + "8837ab96533202c5b610ed44bc7f4183e7957c1c8f56e8cc78bb098593c8ba0a")))) + ("rust-crypto-hash" + ,(origin + (method url-fetch) + (uri (crate-uri "crypto-hash" "0.3.0")) + (sha256 + (base16-string->bytevector + "34903878eec1694faf53cae8473a088df333181de421d4d3d48061d6559fe602")))) + ("rust-curl" ,(origin (method url-fetch) - (uri (crate-uri "libz-sys" "1.0.13")) + (uri (crate-uri "curl" "0.4.8")) (sha256 - (base32 - "034pgvxzgsv37iafgs0lmvd1ifm0bg0zm1xcsn9x71nn8lm93vp5")))) + (base16-string->bytevector + "7034c534a1d7d22f7971d6088aa9d281d219ef724026c3428092500f41ae9c2c")))) ("rust-curl-sys" ,(origin (method url-fetch) - (uri (crate-uri "curl-sys" "0.3.6")) + (uri (crate-uri "curl-sys" "0.3.15")) (sha256 - (base32 - "0fi8kjz3f8m8vfazycs3ddm0h6j3x78hw78gwbvybx71129192i1")))) - ("rust-error-chain" + (base16-string->bytevector + "4bee31aa3a079d5f3ff9579ea4dcfb1b1a17a40886f5f467436d383e78134b55")))) + ("rust-custom_derive" ,(origin (method url-fetch) - (uri (crate-uri "error-chain" "0.7.2")) + (uri (crate-uri "custom_derive" "0.1.7")) (sha256 - (base32 - "03qjh6l2a9fkiyg0428p7q3dcpi47cbmrqf9zmlymkg43v3v731i")))) - ("rust-metadeps" + (base16-string->bytevector + "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9")))) + ("rust-dbghelp-sys" ,(origin (method url-fetch) - (uri (crate-uri "metadeps" "1.1.1")) + (uri (crate-uri "dbghelp-sys" "0.2.0")) (sha256 - (base32 - "0l818461bslb7nrs7r1amkqv45n53fcp5sabyqipwx0xxbkzz7w2")))) - ("rust-openssl-sys" + (base16-string->bytevector + "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5b850")))) + ("rust-docopt" ,(origin (method url-fetch) - (uri (crate-uri "openssl-sys" "0.9.6")) + (uri (crate-uri "docopt" "0.8.1")) (sha256 - (base32 - "1hzpyf9z8xg1yn5r9g17bl5j20nifd6s2zp10xh90v7m0sd2yj5i")))) - ("rust-fs2" + (base16-string->bytevector + "3b5b93718f8b3e5544fcc914c43de828ca6c6ace23e0332c6080a2977b49787a")))) + ("rust-dtoa" ,(origin (method url-fetch) - (uri (crate-uri "fs2" "0.3.0")) + (uri (crate-uri "dtoa" "0.4.2")) (sha256 - (base32 - "0lg57mgcm1r0m8jm4nqpcrl6lmxg8lj854k2h0r7qp46pphh2034")))) - ("rust-log" + (base16-string->bytevector + "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab")))) + ("rust-env_logger" ,(origin (method url-fetch) - (uri (crate-uri "log" "0.3.6")) + (uri (crate-uri "env_logger" "0.4.3")) (sha256 - (base32 - "0m40hgs3cg57dd5kk1mabfk6gk8z6l1cihar8akx4kmzz1xlk0xb")))) + (base16-string->bytevector + "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b")))) + ("rust-error-chain" + ,(origin + (method url-fetch) + (uri (crate-uri "error-chain" "0.11.0")) + (sha256 + (base16-string->bytevector + "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3")))) ("rust-filetime" ,(origin (method url-fetch) - (uri (crate-uri "filetime" "0.1.10")) + (uri (crate-uri "filetime" "0.1.12")) (sha256 - (base32 - "08p9scgv30i1141cnp5xi4pqlnkfci455nrpca55df1r867anqsk")))) - ("rust-tar" + (base16-string->bytevector + "6ab199bf38537c6f38792669e081e0bb278b9b7405bba2642e4e5d15bf732c0e")))) + ("rust-flate2" + ,(origin + (method url-fetch) + (uri (crate-uri "flate2" "0.2.20")) + (sha256 + (base16-string->bytevector + "e6234dd4468ae5d1e2dbb06fe2b058696fdc50a339c68a393aefbf00bc81e423")))) + ("rust-fnv" + ,(origin + (method url-fetch) + (uri (crate-uri "fnv" "1.0.5")) + (sha256 + (base16-string->bytevector + "6cc484842f1e2884faf56f529f960cc12ad8c71ce96cc7abba0a067c98fee344")))) + ("rust-foreign-types" + ,(origin + (method url-fetch) + (uri (crate-uri "foreign-types" "0.2.0")) + (sha256 + (base16-string->bytevector + "3e4056b9bd47f8ac5ba12be771f77a0dae796d1bbaaf5fd0b9c2d38b69b8a29d")))) + ("rust-fs2" + ,(origin + (method url-fetch) + (uri (crate-uri "fs2" "0.4.2")) + (sha256 + (base16-string->bytevector + "9ab76cfd2aaa59b7bf6688ad9ba15bbae64bff97f04ea02144cfd3443e5c2866")))) + ("rust-git2" + ,(origin + (method url-fetch) + (uri (crate-uri "git2" "0.6.8")) + (sha256 + (base16-string->bytevector + "0c1c0203d653f4140241da0c1375a404f0a397249ec818cd2076c6280c50f6fa")))) + ("rust-git2-curl" ,(origin (method url-fetch) - (uri (crate-uri "tar" "0.4.9")) + (uri (crate-uri "git2-curl" "0.7.0")) (sha256 - (base32 - "1vi3nl8s3jjf5l20ni47gmh1p4bdjfh7q50fbg7izzqrf7i4i40c")))) + (base16-string->bytevector + "68676bc784bf0bef83278898929bf64a251e87c0340723d0b93fa096c9c5bf8e")))) ("rust-glob" ,(origin (method url-fetch) (uri (crate-uri "glob" "0.2.11")) (sha256 - (base32 - "1ysvi72slkw784fcsymgj4308c3y03gwjjzqxp80xdjnkbh8vqcb")))) - ("rust-cfg-if" + (base16-string->bytevector + "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb")))) + ("rust-globset" ,(origin (method url-fetch) - (uri (crate-uri "cfg-if" "0.1.0")) + (uri (crate-uri "globset" "0.2.0")) (sha256 - (base32 - "137qikjcal4h75frzcn6mknygqk8vy5bva7w851aydb5gc6pc7ny")))) - ("rust-winapi-build" + (base16-string->bytevector + "feeb1b6840809ef5efcf7a4a990bc4e1b7ee3df8cf9e2379a75aeb2ba42ac9c3")))) + ("rust-hamcrest" ,(origin (method url-fetch) - (uri (crate-uri "winapi-build" "0.1.1")) + (uri (crate-uri "hamcrest" "0.1.1")) (sha256 - (base32 - "1g4rqsgjky0a7530qajn2bbfcrl2v0zb39idgdws9b1l7gp5wc9d")))) - ("rust-advapi32-sys" + (base16-string->bytevector + "bf088f042a467089e9baa4972f57f9247e42a0cc549ba264c7a04fbb8ecb89d4")))) + ("rust-hex" ,(origin (method url-fetch) - (uri (crate-uri "advapi32-sys" "0.2.0")) + (uri (crate-uri "hex" "0.2.0")) (sha256 - (base32 - "16largvlrd1800vvdchml0ngnszjlnpqm01rcz5hm7di1h48hrg0")))) - ("rust-gdi32-sys" + (base16-string->bytevector + "d6a22814455d41612f41161581c2883c0c6a1c41852729b17d5ed88f01e153aa")))) + ("rust-home" ,(origin (method url-fetch) - (uri (crate-uri "gdi32-sys" "0.2.0")) + (uri (crate-uri "home" "0.3.0")) (sha256 - (base32 - "0605d4ngjsspghwjv4jicajich1gnl0aik9f880ajjzjixd524h9")))) - ("rust-ws2_32-sys" + (base16-string->bytevector + "9f25ae61099d8f3fee8b483df0bd4ecccf4b2731897aad40d50eca1b641fe6db")))) + ("rust-idna" ,(origin (method url-fetch) - (uri (crate-uri "ws2_32-sys" "0.2.1")) + (uri (crate-uri "idna" "0.1.4")) (sha256 - (base32 - "0ppscg5qfqaw0gzwv2a4nhn5bn01ff9iwn6ysqnzm4n8s3myz76m")))) - ("rust-user32-sys" + (base16-string->bytevector + "014b298351066f1512874135335d62a789ffe78a9974f94b43ed5621951eaf7d")))) + ("rust-ignore" ,(origin (method url-fetch) - (uri (crate-uri "user32-sys" "0.2.0")) + (uri (crate-uri "ignore" "0.2.2")) (sha256 - (base32 - "0ivxc7hmsxax9crdhxdd1nqwik4s9lhb2x59lc8b88bv20fp3x2f")))) - ("rust-unicode-bidi" + (base16-string->bytevector + "b3fcaf2365eb14b28ec7603c98c06cc531f19de9eb283d89a3dff8417c8c99f5")))) + ("rust-itoa" + ,(origin + (method url-fetch) + (uri (crate-uri "itoa" "0.3.4")) + (sha256 + (base16-string->bytevector + "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c")))) + ("rust-jobserver" + ,(origin + (method url-fetch) + (uri (crate-uri "jobserver" "0.1.6")) + (sha256 + (base16-string->bytevector + "443ae8bc0af6c106e6e8b77e04684faecc1a5ce94e058f4c2b0a037b0ea1b133")))) + ("rust-kernel32-sys" + ,(origin + (method url-fetch) + (uri (crate-uri "kernel32-sys" "0.2.2")) + (sha256 + (base16-string->bytevector + "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d")))) + ("rust-lazy_static" + ,(origin + (method url-fetch) + (uri (crate-uri "lazy_static" "0.2.9")) + (sha256 + (base16-string->bytevector + "c9e5e58fa1a4c3b915a561a78a22ee0cac6ab97dca2504428bc1cb074375f8d5")))) + ("rust-libc" + ,(origin + (method url-fetch) + (uri (crate-uri "libc" "0.2.31")) + (sha256 + (base16-string->bytevector + "d1419b2939a0bc44b77feb34661583c7546b532b192feab36249ab584b86856c")))) + ("rust-libgit2-sys" + ,(origin + (method url-fetch) + (uri (crate-uri "libgit2-sys" "0.6.16")) + (sha256 + (base16-string->bytevector + "6f74b4959cef96898f5123148724fc7dee043b9a6b99f219d948851bfbe53cb2")))) + ("rust-libssh2-sys" + ,(origin + (method url-fetch) + (uri (crate-uri "libssh2-sys" "0.2.6")) + (sha256 + (base16-string->bytevector + "0db4ec23611747ef772db1c4d650f8bd762f07b461727ec998f953c614024b75")))) + ("rust-libz-sys" + ,(origin + (method url-fetch) + (uri (crate-uri "libz-sys" "1.0.17")) + (sha256 + (base16-string->bytevector + "44ebbc760fd2d2f4d93de09a0e13d97e057612052e871da9985cedcb451e6bd5")))) + ("rust-log" + ,(origin + (method url-fetch) + (uri (crate-uri "log" "0.3.8")) + (sha256 + (base16-string->bytevector + "880f77541efa6e5cc74e76910c9884d9859683118839d6a1dc3b11e63512565b")))) + ("rust-magenta" ,(origin (method url-fetch) - (uri (crate-uri "unicode-bidi" "0.2.3")) + (uri (crate-uri "magenta" "0.1.1")) (sha256 - (base32 - "0gqbyf6slkgzr14nf6v8dw8a19l5snh6bpms8bpfvzpxdawwxxy1")))) + (base16-string->bytevector + "4bf0336886480e671965f794bc9b6fce88503563013d1bfb7a502c81fe3ac527")))) + ("rust-magenta-sys" + ,(origin + (method url-fetch) + (uri (crate-uri "magenta-sys" "0.1.1")) + (sha256 + (base16-string->bytevector + "40d014c7011ac470ae28e2f76a02bfea4a8480f73e701353b49ad7a8d75f4699")))) + ("rust-matches" + ,(origin + (method url-fetch) + (uri (crate-uri "matches" "0.1.6")) + (sha256 + (base16-string->bytevector + "100aabe6b8ff4e4a7e32c1c13523379802df0772b82466207ac25b013f193376")))) + ("rust-memchr" + ,(origin + (method url-fetch) + (uri (crate-uri "memchr" "0.1.11")) + (sha256 + (base16-string->bytevector + "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20")))) + ("rust-memchr-1.0.1" + ,(origin + (method url-fetch) + (uri (crate-uri "memchr" "1.0.1")) + (sha256 + (base16-string->bytevector + "1dbccc0e46f1ea47b9f17e6d67c5a96bd27030519c519c9c91327e31275a47b4")))) + ("rust-miniz-sys" + ,(origin + (method url-fetch) + (uri (crate-uri "miniz-sys" "0.1.10")) + (sha256 + (base16-string->bytevector + "609ce024854aeb19a0ef7567d348aaa5a746b32fb72e336df7fcc16869d7e2b4")))) + ("rust-miow" + ,(origin + (method url-fetch) + (uri (crate-uri "miow" "0.2.1")) + (sha256 + (base16-string->bytevector + "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919")))) ("rust-net2" ,(origin (method url-fetch) - (uri (crate-uri "net2" "0.2.26")) + (uri (crate-uri "net2" "0.2.31")) (sha256 - (base32 - "1qp3q6xynb481rsp3ig1nmqb6qlxfba3shfrmqij88cppsv9rpsy")))) - ("rust-utf8-ranges" + (base16-string->bytevector + "3a80f842784ef6c9a958b68b7516bc7e35883c614004dd94959a4dca1b716c09")))) + ("rust-num" ,(origin (method url-fetch) - (uri (crate-uri "utf8-ranges" "0.1.3")) + (uri (crate-uri "num" "0.1.40")) (sha256 - (base32 - "03xf604b2v51ag3jgzw92l97xnb10kw9zv948bhc7ja1ik017jm1")))) - ("rust-crossbeam" + (base16-string->bytevector + "a311b77ebdc5dd4cf6449d81e4135d9f0e3b153839ac90e648a8ef538f923525")))) + ("rust-num-bigint" ,(origin (method url-fetch) - (uri (crate-uri "crossbeam" "0.2.10")) + (uri (crate-uri "num-bigint" "0.1.40")) (sha256 - (base32 - "15wga0kvk3iqf3l077957j931brf1pl3p74xibd698jccqas4phc")))) - ("rust-toml" + (base16-string->bytevector + "8fd0f8dbb4c0960998958a796281d88c16fbe68d87b1baa6f31e2979e81fd0bd")))) + ("rust-num-complex" ,(origin (method url-fetch) - (uri (crate-uri "toml" "0.2.1")) + (uri (crate-uri "num-complex" "0.1.40")) (sha256 - (base32 - "1d1cz43bxrx4fd6j2p6myckf81f72bp47akg36y3flxjkhj60svk")))) - ("rust-aho-corasick" + (base16-string->bytevector + "503e668405c5492d67cf662a81e05be40efe2e6bcf10f7794a07bd9865e704e6")))) + ("rust-num-integer" ,(origin (method url-fetch) - (uri (crate-uri "aho-corasick" "0.5.3")) + (uri (crate-uri "num-integer" "0.1.35")) + (sha256 + (base16-string->bytevector + "d1452e8b06e448a07f0e6ebb0bb1d92b8890eea63288c0b627331d53514d0fba")))) + ("rust-num-iter" + ,(origin + (method url-fetch) + (uri (crate-uri "num-iter" "0.1.34")) + (sha256 + (base16-string->bytevector + "7485fcc84f85b4ecd0ea527b14189281cf27d60e583ae65ebc9c088b13dffe01")))) + ("rust-num-rational" + ,(origin + (method url-fetch) + (uri (crate-uri "num-rational" "0.1.39")) + (sha256 + (base16-string->bytevector + "288629c76fac4b33556f4b7ab57ba21ae202da65ba8b77466e6d598e31990790")))) + ("rust-num-traits" + ,(origin + (method url-fetch) + (uri (crate-uri "num-traits" "0.1.40")) + (sha256 + (base16-string->bytevector + "99843c856d68d8b4313b03a17e33c4bb42ae8f6610ea81b28abe076ac721b9b0")))) + ("rust-num_cpus" + ,(origin + (method url-fetch) + (uri (crate-uri "num_cpus" "1.7.0")) + (sha256 + (base16-string->bytevector + "514f0d73e64be53ff320680ca671b64fe3fb91da01e1ae2ddc99eb51d453b20d")))) + ("rust-openssl" + ,(origin + (method url-fetch) + (uri (crate-uri "openssl" "0.9.19")) + (sha256 + (base16-string->bytevector + "816914b22eb15671d62c73442a51978f311e911d6a6f6cbdafa6abce1b5038fc")))) + ("rust-openssl-probe" + ,(origin + (method url-fetch) + (uri (crate-uri "openssl-probe" "0.1.1")) + (sha256 + (base16-string->bytevector + "d98df0270d404ccd3c050a41d579c52d1db15375168bb3471e04ec0f5f378daf")))) + ("rust-openssl-sys" + ,(origin + (method url-fetch) + (uri (crate-uri "openssl-sys" "0.9.19")) + (sha256 + (base16-string->bytevector + "1e4c63a7d559c1e5afa6d6a9e6fa34bbc5f800ffc9ae08b72c605420b0c4f5e8")))) + ("rust-percent-encoding" + ,(origin + (method url-fetch) + (uri (crate-uri "percent-encoding" "1.0.0")) + (sha256 + (base16-string->bytevector + "de154f638187706bde41d9b4738748933d64e6b37bdbffc0b47a97d16a6ae356")))) + ("rust-pkg-config" + ,(origin + (method url-fetch) + (uri (crate-uri "pkg-config" "0.3.9")) (sha256 - (base32 - "0rnvdmlajikq0i4zdy1p3pv699q6apvsxfc7av7byhppllp2r5ya")))) + (base16-string->bytevector + "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903")))) ("rust-psapi-sys" ,(origin (method url-fetch) (uri (crate-uri "psapi-sys" "0.1.0")) (sha256 - (base32 - "0y14g8qshsfnmb7nk2gs1rpbrs1wrggajmzp4yby4q6k0wd5vkdb")))) - ("rust-idna" + (base16-string->bytevector + "abcd5d1a07d360e29727f757a9decb3ce8bc6e0efa8969cfaad669a8317a2478")))) + ("rust-quote" ,(origin (method url-fetch) - (uri (crate-uri "idna" "0.1.0")) + (uri (crate-uri "quote" "0.3.15")) (sha256 - (base32 - "049c2rmlydrrrgrxdaq2v21adx9vkfh6k9x4xj56ckyf01p26lqh")))) - ("rust-url" + (base16-string->bytevector + "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a")))) + ("rust-rand" + ,(origin + (method url-fetch) + (uri (crate-uri "rand" "0.3.16")) + (sha256 + (base16-string->bytevector + "eb250fd207a4729c976794d03db689c9be1d634ab5a1c9da9492a13d8fecbcdf")))) + ("rust-redox_syscall" + ,(origin + (method url-fetch) + (uri (crate-uri "redox_syscall" "0.1.31")) + (sha256 + (base16-string->bytevector + "8dde11f18c108289bef24469638a04dce49da56084f2d50618b226e47eb04509")))) + ("rust-redox_termios" + ,(origin + (method url-fetch) + (uri (crate-uri "redox_termios" "0.1.1")) + (sha256 + (base16-string->bytevector + "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76")))) + ("rust-regex" + ,(origin + (method url-fetch) + (uri (crate-uri "regex" "0.1.80")) + (sha256 + (base16-string->bytevector + "4fd4ace6a8cf7860714a2c2280d6c1f7e6a413486c13298bbc86fd3da019402f")))) + ("rust-regex-0.2.2" ,(origin (method url-fetch) - (uri (crate-uri "url" "1.2.3")) + (uri (crate-uri "regex" "0.2.2")) (sha256 - (base32 - "1myr1i8djbl2bhvvrm6n3h7bj7sl6kh5dmaaz2f7c6x8hyyzgk28")))) + (base16-string->bytevector + "1731164734096285ec2a5ec7fea5248ae2f5485b3feeb0115af4fda2183b2d1b")))) ("rust-regex-syntax" ,(origin (method url-fetch) (uri (crate-uri "regex-syntax" "0.3.9")) (sha256 - (base32 - "0ms9hgdhhsxw9w920i7gipydvagf100bb56jbs192rz86ln01v7r")))) - ("rust-kernel32-sys" + (base16-string->bytevector + "f9ec002c35e86791825ed294b50008eea9ddfc8def4420124fbc6b08db834957")))) + ("rust-regex-syntax-0.4.1" ,(origin (method url-fetch) - (uri (crate-uri "kernel32-sys" "0.2.2")) + (uri (crate-uri "regex-syntax" "0.4.1")) (sha256 - (base32 - "1389av0601a9yz8dvx5zha9vmkd6ik7ax0idpb032d28555n41vm")))) - ("rust-term" + (base16-string->bytevector + "ad890a5eef7953f55427c50575c680c42841653abd2b028b68cd223d157f62db")))) + ("rust-rustc-demangle" ,(origin (method url-fetch) - (uri (crate-uri "term" "0.4.4")) + (uri (crate-uri "rustc-demangle" "0.1.5")) (sha256 - (base32 - "0jpr7jb1xidadh0arklwr99r8w1k1dfc4an3ginpsq5nnfigivrx")))) - ("rust-thread-id" + (base16-string->bytevector + "aee45432acc62f7b9a108cc054142dac51f979e69e71ddce7d6fc7adf29e817e")))) + ("rust-rustc-serialize" ,(origin (method url-fetch) - (uri (crate-uri "thread-id" "2.0.0")) + (uri (crate-uri "rustc-serialize" "0.3.24")) (sha256 - (base32 - "00zzs2bx1xw8aqm5plqqgr7bc2zz6zkqrdxq8vpiqb8hc2srslx9")))) - ("rust-thread_local" + (base16-string->bytevector + "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda")))) + ("rust-same-file" ,(origin (method url-fetch) - (uri (crate-uri "thread_local" "0.2.7")) + (uri (crate-uri "same-file" "0.1.3")) (sha256 - (base32 - "1mgxikqvhpsic6xk7pan95lvgsky1sdxzw2w5m2l35pgrazxnxl5")))) - ("rust-miow" + (base16-string->bytevector + "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7")))) + ("rust-scoped-tls" ,(origin (method url-fetch) - (uri (crate-uri "miow" "0.1.3")) + (uri (crate-uri "scoped-tls" "0.1.0")) (sha256 - (base32 - "16jvfjsp6fr4mbd2sw5hcdmi4dsa0m0aa45gjz78mb1h4mwcdgym")))) - ("rust-regex" + (base16-string->bytevector + "f417c22df063e9450888a7561788e9bd46d3bb3c1466435b4eccb903807f147d")))) + ("rust-scopeguard" ,(origin (method url-fetch) - (uri (crate-uri "regex" "0.1.80")) + (uri (crate-uri "scopeguard" "0.1.2")) (sha256 - (base32 - "0bs036h3vzc6pj5jj4vc909s9rppq7b808ic99qn0y6gm3karm2g")))) - ("rust-num_cpus" + (base16-string->bytevector + "59a076157c1e2dc561d8de585151ee6965d910dd4dcb5dabb7ae3e83981a6c57")))) + ("rust-semver" ,(origin (method url-fetch) - (uri (crate-uri "num_cpus" "1.1.0")) + (uri (crate-uri "semver" "0.8.0")) (sha256 - (base32 - "1bfwcn3yhwa31rinjw9yr7b6gvn6c06hnwnjz06pvm938w4fd448")))) - ("rust-libgit2-sys" + (base16-string->bytevector + "bee2bc909ab2d8d60dab26e8cad85b25d795b14603a0dcb627b78b9d30b6454b")))) + ("rust-semver-parser" ,(origin (method url-fetch) - (uri (crate-uri "libgit2-sys" "0.6.6")) + (uri (crate-uri "semver-parser" "0.7.0")) (sha256 - (base32 - "074h9q4p60xh6canb0sj4vrc801wqv6p53l9lp0q724bkwzf7967")))) - ("rust-env_logger" + (base16-string->bytevector + "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3")))) + ("rust-serde" ,(origin (method url-fetch) - (uri (crate-uri "env_logger" "0.3.5")) + (uri (crate-uri "serde" "1.0.15")) (sha256 - (base32 - "0bvcjgkw4s3k1rd7glpflgc8s9a393zjd6jfdgvs8gjvwj0dgaqm")))) - ("rust-openssl-probe" + (base16-string->bytevector + "6a7046c9d4c6c522d10b2d098f9bebe2bef227e0e74044d8c1bfcf6b476af799")))) + ("rust-serde_derive" ,(origin (method url-fetch) - (uri (crate-uri "openssl-probe" "0.1.0")) + (uri (crate-uri "serde_derive" "1.0.15")) (sha256 - (base32 - "0689h6rhzy6dypqr90lsxnf108nsnh952wsx7ggs70s48b44jvbm")))) - ("rust-lazy_static" + (base16-string->bytevector + "1afcaae083fd1c46952a315062326bc9957f182358eb7da03b57ef1c688f7aa9")))) + ("rust-serde_derive_internals" ,(origin (method url-fetch) - (uri (crate-uri "lazy_static" "0.2.2")) + (uri (crate-uri "serde_derive_internals" "0.16.0")) (sha256 - (base32 - "16z1h7w702sxnscak38jykxlhxq0b5ip4mndlb46pkaqwzi0xgka")))) - ("rust-semver-parser" + (base16-string->bytevector + "bd381f6d01a6616cdba8530492d453b7761b456ba974e98768a18cad2cd76f58")))) + ("rust-serde_ignored" ,(origin (method url-fetch) - (uri (crate-uri "semver-parser" "0.6.1")) + (uri (crate-uri "serde_ignored" "0.0.4")) (sha256 - (base32 - "1s8s7a7yg8xhgci17y0xhyyncg229byivhpr0wbs3ljdlyjl73p8")))) - ("rust-semver" + (base16-string->bytevector + "190e9765dcedb56be63b6e0993a006c7e3b071a016a304736e4a315dc01fb142")))) + ("rust-serde_json" ,(origin (method url-fetch) - (uri (crate-uri "semver" "0.5.1")) + (uri (crate-uri "serde_json" "1.0.3")) (sha256 - (base32 - "1xbiv8l72rmngb3lgbmk3vd4lalcbzxcnrn085c2b75irl7gcbxf")))) - ("rust-docopt" + (base16-string->bytevector + "d243424e06f9f9c39e3cd36147470fd340db785825e367625f79298a6ac6b7ac")))) + ("rust-shell-escape" + ,(origin + (method url-fetch) + (uri (crate-uri "shell-escape" "0.1.3")) + (sha256 + (base16-string->bytevector + "dd5cc96481d54583947bfe88bf30c23d53f883c6cd0145368b69989d97b84ef8")))) + ("rust-socket2" ,(origin (method url-fetch) - (uri (crate-uri "docopt" "0.6.86")) + (uri (crate-uri "socket2" "0.2.3")) (sha256 - (base32 - "1nf4f4zf5yk0d0l4kl7hkii4na22fhn0l2hgfb46yzv08l2g6zja")))) - ("rust-miniz-sys" + (base16-string->bytevector + "9e76b159741052c7deaa9fd0b5ca6b5f79cecf525ed665abfe5002086c6b2791")))) + ("rust-strsim" ,(origin (method url-fetch) - (uri (crate-uri "miniz-sys" "0.1.7")) + (uri (crate-uri "strsim" "0.6.0")) (sha256 - (base32 - "0m7dlggsxash0k5jkx576p556g9r8vnhyl9244gjxhq1g8rls7wx")))) - ("rust-curl" + (base16-string->bytevector + "b4d15c810519a91cf877e7e36e63fe068815c678181439f2f29e2562147c3694")))) + ("rust-syn" ,(origin (method url-fetch) - (uri (crate-uri "curl" "0.4.1")) + (uri (crate-uri "syn" "0.11.11")) (sha256 - (base32 - "1b0y27b6vpqffgzm2kxc1s2i6bgdzxk3wn65g2asbcdxrvys3mcg")))) - ("rust-flate2" + (base16-string->bytevector + "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad")))) + ("rust-synom" ,(origin (method url-fetch) - (uri (crate-uri "flate2" "0.2.14")) + (uri (crate-uri "synom" "0.11.3")) (sha256 - (base32 - "1fx3zsls5bb1zfx87s5sxkgk853z4nhjsbvq5s6if13kjlg4isry")))) - ("rust-git2" + (base16-string->bytevector + "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6")))) + ("rust-tar" ,(origin (method url-fetch) - (uri (crate-uri "git2" "0.6.3")) + (uri (crate-uri "tar" "0.4.13")) (sha256 - (base32 - "06b1bw3pwszs8617xn8js6h0j983qjgfwsychw33lshccj3cld05")))) - ("rust-crates-io" + (base16-string->bytevector + "281285b717926caa919ad905ef89c63d75805c7d89437fb873100925a53f2b1b")))) + ("rust-tempdir" ,(origin (method url-fetch) - (uri (crate-uri "crates-io" "0.4.0")) + (uri (crate-uri "tempdir" "0.3.5")) (sha256 - (base32 - "0kk6abp1qbpv44hkq1yjp7xgpzjzafs83i1l26ycr0aph1gbwig9")))) - ("rust-git2-curl" + (base16-string->bytevector + "87974a6f5c1dfb344d733055601650059a3363de2a6104819293baff662132d6")))) + ("rust-termcolor" ,(origin (method url-fetch) - (uri (crate-uri "git2-curl" "0.7.0")) + (uri (crate-uri "termcolor" "0.3.3")) (sha256 - (base32 - "13mzqp4rd81zp78261rlq23iw9aaysdr56484y1yy2xzhk3nnrv8")))) - ("rust-bufstream" + (base16-string->bytevector + "9065bced9c3e43453aa3d56f1e98590b8455b341d2fa191a1090c0dd0b242c75")))) + ("rust-termion" ,(origin (method url-fetch) - (uri (crate-uri "bufstream" "0.1.2")) + (uri (crate-uri "termion" "1.5.1")) (sha256 - (base32 - "0x6h27md1fwabbhbycfldj0wklrpjr520z9p0cpzm60fzzidnj3v")))) - ("rust-hamcrest" + (base16-string->bytevector + "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096")))) + ("rust-thread-id" ,(origin (method url-fetch) - (uri (crate-uri "hamcrest" "0.1.1")) + (uri (crate-uri "thread-id" "2.0.0")) (sha256 - (base32 - "1m49rf7bnkx0qxja56slrjh44zi4z5bjz5x4pblqjw265828y25z")))) - ("rust-num" + (base16-string->bytevector + "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03")))) + ("rust-thread_local" ,(origin (method url-fetch) - (uri (crate-uri "num" "0.1.36")) + (uri (crate-uri "thread_local" "0.2.7")) (sha256 - (base32 - "081i1r3mdz6jasqd7qwraqqfqa3sdpvdvxl1xq0s7ip714xw1rxx")))) - ("rust-num-traits" + (base16-string->bytevector + "8576dbbfcaef9641452d5cf0df9b0e7eeab7694956dd33bb61515fb8f18cfdd5")))) + ("rust-thread_local-0.3.4" ,(origin (method url-fetch) - (uri (crate-uri "num-traits" "0.1.36")) + (uri (crate-uri "thread_local" "0.3.4")) (sha256 - (base32 - "07688sp4z40p14lh5ywvrpm4zq8kcxzhjks8sg33jsr5da2l4sm1")))) - ("rust-num-integer" + (base16-string->bytevector + "1697c4b57aeeb7a536b647165a2825faddffb1d3bad386d507709bd51a90bb14")))) + ("rust-toml" ,(origin (method url-fetch) - (uri (crate-uri "num-integer" "0.1.32")) + (uri (crate-uri "toml" "0.4.5")) (sha256 - (base32 - "14pvaaawl0pgdcgh4dfdd67lz58yxlfl95bry86h28pjnfzxj97v")))) - ("rust-num-bigint" + (base16-string->bytevector + "a7540f4ffc193e0d3c94121edb19b055670d369f77d5804db11ae053a45b6e7e")))) + ("rust-unicode-bidi" ,(origin (method url-fetch) - (uri (crate-uri "num-bigint" "0.1.35")) + (uri (crate-uri "unicode-bidi" "0.3.4")) (sha256 - (base32 - "0jayfkdm33p4zvcahlv46zdfhlzg053mpw32abf2lz0z8xw47cc8")))) - ("rust-num-rational" + (base16-string->bytevector + "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5")))) + ("rust-unicode-normalization" ,(origin (method url-fetch) - (uri (crate-uri "num-rational" "0.1.35")) + (uri (crate-uri "unicode-normalization" "0.1.5")) (sha256 - (base32 - "1bwaygv64qg7i78yqg0v4d0amfhamj598rpy4yxjz9rlhcxn1zsl")))) - ("rust-num-iter" + (base16-string->bytevector + "51ccda9ef9efa3f7ef5d91e8f9b83bbe6955f9bf86aec89d5cce2c874625920f")))) + ("rust-unicode-xid" ,(origin (method url-fetch) - (uri (crate-uri "num-iter" "0.1.32")) + (uri (crate-uri "unicode-xid" "0.0.4")) (sha256 - (base32 - "0p74nj5c1mc33h9lx4wpmlmggmn5lnkhxv1225g0aix8d6ciqyi8")))) - ("rust-num-complex" + (base16-string->bytevector + "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc")))) + ("rust-unreachable" ,(origin (method url-fetch) - (uri (crate-uri "num-complex" "0.1.35")) + (uri (crate-uri "unreachable" "1.0.0")) (sha256 - (base32 - "0bzrjfppnnzf9vmkpklhp2dw9sb1lqzydb8r6k83z76i9l2qxizh")))) - ("rust-shell-escape" + (base16-string->bytevector + "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56")))) + ("rust-url" ,(origin (method url-fetch) - (uri (crate-uri "shell-escape" "0.1.3")) + (uri (crate-uri "url" "1.5.1")) + (sha256 + (base16-string->bytevector + "eeb819346883532a271eb626deb43c4a1bb4c4dd47c519bd78137c3e72a4fe27")))) + ("rust-userenv-sys" + ,(origin + (method url-fetch) + (uri (crate-uri "userenv-sys" "0.2.0")) + (sha256 + (base16-string->bytevector + "71d28ea36bbd9192d75bd9fa9b39f96ddb986eaee824adae5d53b6e51919b2f3")))) + ("rust-utf8-ranges" + ,(origin + (method url-fetch) + (uri (crate-uri "utf8-ranges" "0.1.3")) + (sha256 + (base16-string->bytevector + "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f")))) + ("rust-utf8-ranges-1.0.0" + ,(origin + (method url-fetch) + (uri (crate-uri "utf8-ranges" "1.0.0")) + (sha256 + (base16-string->bytevector + "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122")))) + ("rust-vcpkg" + ,(origin + (method url-fetch) + (uri (crate-uri "vcpkg" "0.2.2")) + (sha256 + (base16-string->bytevector + "9e0a7d8bed3178a8fb112199d466eeca9ed09a14ba8ad67718179b4fd5487d0b")))) + ("rust-void" + ,(origin + (method url-fetch) + (uri (crate-uri "void" "1.0.2")) + (sha256 + (base16-string->bytevector + "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d")))) + ("rust-walkdir" + ,(origin + (method url-fetch) + (uri (crate-uri "walkdir" "1.0.7")) + (sha256 + (base16-string->bytevector + "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff")))) + ("rust-winapi" + ,(origin + (method url-fetch) + (uri (crate-uri "winapi" "0.2.8")) (sha256 - (base32 - "1y2fp2brv639icv4a0fdqs1zhlrxq8qbz27ygfa86ifmh5jcjp6x")))))) + (base16-string->bytevector + "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a")))) + ("rust-winapi-build" + ,(origin + (method url-fetch) + (uri (crate-uri "winapi-build" "0.1.1")) + (sha256 + (base16-string->bytevector + "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc")))) + ("rust-wincolor" + ,(origin + (method url-fetch) + (uri (crate-uri "wincolor" "0.1.4")) + (sha256 + (base16-string->bytevector + "a39ee4464208f6430992ff20154216ab2357772ac871d994c51628d60e58b8b0")))) + ("rust-ws2_32-sys" + ,(origin + (method url-fetch) + (uri (crate-uri "ws2_32-sys" "0.2.1")) + (sha256 + (base16-string->bytevector + "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e")))))) (arguments `(#:cargo ,cargo-bootstrap - #:tests? #f ; FIXME + #:rustc ,rustc ; Force to use rustc from current file #:modules ((ice-9 match) (srfi srfi-1) ; 'every @@ -853,12 +1255,8 @@ safety and thread safety guarantees.") (guix build cargo-build-system)) #:phases (modify-phases %standard-phases - ;; Avoid cargo complaining about missmatched checksums. - (delete 'patch-source-shebangs) - (delete 'patch-generated-file-shebangs) - (delete 'patch-usr-bin-file) - (add-after 'unpack 'unpack-submodule-sources - (lambda* (#:key inputs #:allow-other-keys) + (add-after 'unpack 'unpack-dependencies + (lambda* (#:key inputs outputs #:allow-other-keys) (define (unpack source target) (mkdir-p target) (with-directory-excursion target @@ -871,37 +1269,56 @@ safety and thread safety guarantees.") (match entry ((name . src) (if (string-prefix? "rust-" name) - (let* ((rust-length (string-length "rust-")) - (rust-name (string-drop name - rust-length)) - (rsrc (string-append "vendor/" - rust-name)) - (unpack-status (unpack src rsrc))) - (touch (string-append rsrc "/.cargo-ok")) - (generate-checksums rsrc src) - unpack-status))) + (let* ((rust-length (string-length "rust-")) + (rust-name (string-drop name rust-length)) + (rsrc (string-append "vendor/" rust-name)) + (unpack-status (unpack src rsrc))) + (touch (string-append rsrc "/.cargo-ok")) + (generate-checksums rsrc src) + unpack-status))) (_ #t))) - (mkdir "vendor") - (every install-rust-library inputs))) - (add-after 'unpack 'set-environment-up + (mkdir "vendor") + (every install-rust-library inputs))) + (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums (lambda* (#:key inputs #:allow-other-keys) - (let* ((gcc (assoc-ref inputs "gcc")) - (cc (string-append gcc "/bin/gcc"))) - (mkdir ".cargo") - (call-with-output-file ".cargo/config" - (lambda (p) - (format p " + (substitute* "Cargo.lock" + (("(\"checksum .* = )\".*\"" all name) + (string-append name "\"" ,%cargo-reference-hash "\""))) + (for-each + (lambda (filename) + (use-modules (guix build cargo-build-system)) + (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")))) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "tests/build.rs" + (("/usr/bin/env") (which "env")) + ;; Guix llvm compiled without asmjs-unknown-emscripten at all + (("fn wasm32_final_outputs") "#[ignore]\nfn wasm32_final_outputs")) + (substitute* "tests/death.rs" + ;; Stuck when built in container + (("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_everyone")) + (mkdir ".cargo") + (call-with-output-file ".cargo/config" + (lambda (port) + (display " [source.crates-io] registry = 'https://github.com/rust-lang/crates.io-index' replace-with = 'vendored-sources' [source.vendored-sources] directory = 'vendor' -"))) - (setenv "CMAKE_C_COMPILER" cc) - (setenv "CC" cc)) - #t)) - (delete 'configure)))) +" port))) + ;; Disable test for cross compilation support + (setenv "CFG_DISABLE_CROSS_TESTS" "1") + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))))))) (home-page "https://github.com/rust-lang/cargo") (synopsis "Build tool and package manager for Rust") (description "Cargo is a tool that allows Rust projects to declare their -- 2.15.0
Danny Milosavljevic <dannym <at> scratchpost.org>
to control <at> debbugs.gnu.org
.
(Wed, 13 Dec 2017 23:19:02 GMT) Full text and rfc822 format available.Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Thu, 11 Jan 2018 12:24:04 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.