~ruther/guix-local

402e697a1144788102b16ca8c9ea74607d2c2c3c — Matthew James Kraai 5 years ago 7d0e111
gnu: Add Rust 1.48.

* gnu/packages/rust.scm (rust-1.48): New variable.

Signed-off-by: Jakub Kądziołka <kuba@kadziolka.net>
2 files changed, 42 insertions(+), 0 deletions(-)

A gnu/packages/patches/rust-1.48-linker-locale.patch
M gnu/packages/rust.scm
A gnu/packages/patches/rust-1.48-linker-locale.patch => gnu/packages/patches/rust-1.48-linker-locale.patch +14 -0
@@ 0,0 1,14 @@
https://github.com/rust-lang/rust/pull/74416
diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs
index 3df956c465e..f45fee45be4 100644
--- a/compiler/rustc_codegen_ssa/src/back/linker.rs
+++ b/compiler/rustc_codegen_ssa/src/back/linker.rs
@@ -28,7 +28,7 @@
 pub fn disable_localization(linker: &mut Command) {
     // No harm in setting both env vars simultaneously.
     // Unix-style linkers.
-    linker.env("LC_ALL", "C");
+    linker.env("LC_ALL", "en_US.UTF-8");
     // MSVC's `link.exe`.
     linker.env("VSLANG", "1033");
 }

M gnu/packages/rust.scm => gnu/packages/rust.scm +28 -0
@@ 1357,5 1357,33 @@ move around."
                 (generate-all-checksums "vendor")
                 #t)))))))))

(define-public rust-1.48
  (let ((base-rust
         (rust-bootstrapped-package rust-1.47 "1.48.0"
           "0fz4gbb5hp5qalrl9lcl8yw4kk7ai7wx511jb28nypbxninkwxhf")))
    (package
      (inherit base-rust)
      (source
        (origin
          (inherit (package-source base-rust))
          ;; New patch required due to the second part of the source code rearrangement:
          ;; the relevant source code is now in the compiler directory.
          (patches (search-patches "rust-1.48-linker-locale.patch"))))
      (arguments
       (substitute-keyword-arguments (package-arguments base-rust)
         ((#:phases phases)
          `(modify-phases ,phases
             ;; Some tests got split out into separate files.
             (replace 'patch-tests
               (lambda* (#:key inputs #:allow-other-keys)
                 (let ((bash (assoc-ref inputs "bash")))
                   (substitute* "library/std/src/process/tests.rs"
                     (("\"/bin/sh\"") (string-append "\"" bash "/bin/sh\"")))
                   (substitute* "library/std/src/sys/unix/process/process_common/tests.rs"
                     (("fn test_process_mask") "#[allow(unused_attributes)]
    #[ignore]
    fn test_process_mask"))
                   #t))))))))))

;; TODO(staging): Bump this variable to the latest packaged rust.
(define-public rust rust-1.45)