diff options
-rw-r--r-- | gnu/packages/rust.scm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 91b5d6b6ec..3c09f09edd 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2020 Matthew Kraai <kraai@ftbfs.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1319,5 +1320,42 @@ move around." (rust-bootstrapped-package rust-1.45 "1.46.0" "0a17jby2pd050s24cy4dfc0gzvgcl585v3vvyfilniyvjrqknsid")) +(define-public rust-1.47 + (let ((base-rust + (rust-bootstrapped-package rust-1.46 "1.47.0" + "07fqd2vp7cf1ka3hr207dnnz93ymxml4935vp74g4is79h3dz19i"))) + (package + (inherit base-rust) + (inputs + (alist-replace "llvm" (list llvm-11) + (package-inputs base-rust))) + (arguments + (substitute-keyword-arguments (package-arguments base-rust) + ((#:phases phases) + `(modify-phases ,phases + ;; The source code got rearranged: libstd is now in the newly created library folder. + (replace 'patch-tests + (lambda* (#:key inputs #:allow-other-keys) + (let ((bash (assoc-ref inputs "bash"))) + (substitute* "library/std/src/process.rs" + (("\"/bin/sh\"") (string-append "\"" bash "/bin/sh\""))) + ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00222.html> + (substitute* "library/std/src/sys/unix/process/process_common.rs" + (("fn test_process_mask") "#[allow(unused_attributes)] + #[ignore] + fn test_process_mask")) + #t))) + (delete 'patch-cargo-checksums) + (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums + ;; Generate checksums after patching generated files (in + ;; particular, vendor/jemalloc/rep/Makefile). + (lambda* _ + (use-modules (guix build cargo-utils)) + (substitute* "Cargo.lock" + (("(checksum = )\".*\"" all name) + (string-append name "\"" ,%cargo-reference-hash "\""))) + (generate-all-checksums "vendor") + #t))))))))) + ;; TODO(staging): Bump this variable to the latest packaged rust. (define-public rust rust-1.45) |