summary refs log tree commit diff
path: root/gnu/packages/rust.scm
diff options
context:
space:
mode:
authorFries <fries1234@protonmail.com>2023-09-18 15:19:49 +0300
committerEfraim Flashner <efraim@flashner.co.il>2023-10-18 11:35:39 +0300
commit299a223835f875c9fcb526a76bbe0b7f32cbefaf (patch)
tree790bbba8347336cadf064f28257ae895fff697af /gnu/packages/rust.scm
parentfb04d0139e4415e9e6c89c5fb72618b8d80b94bb (diff)
downloadguix-299a223835f875c9fcb526a76bbe0b7f32cbefaf.tar.gz
gnu: Add rust-1.70.
* gnu/packages/rust.scm (rust-1.70): New variable.
* gnu/packages/patches/rust-1.70-fix-rustix-build.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register file.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Diffstat (limited to 'gnu/packages/rust.scm')
-rw-r--r--gnu/packages/rust.scm17
1 files changed, 17 insertions, 0 deletions
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index ca34231803..f0e921375b 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -726,6 +726,23 @@ safety and thread safety guarantees.")
               (for-each delete-file
                         (find-files "vendor" "\\.(a|dll|exe|lib)$")))))))))
 
+(define rust-1.70
+  (let ((base-rust
+         (rust-bootstrapped-package
+          rust-1.69 "1.70.0"
+                      "0z6j7d0ni0rmfznv0w3mrf882m11kyh51g2bxkj40l3s1c0axgxj")))
+   (package
+     (inherit base-rust)
+     (source
+      (origin
+        (inherit (package-source base-rust))
+        ;; Rust 1.70 adds the rustix library which depends on the vendored
+        ;; fd-lock crate.  The fd-lock crate uses Outline assembly which expects
+        ;; a precompiled static library.  Enabling the "cc" feature tells the
+        ;; build.rs script to compile the assembly files instead of searching
+        ;; for a precompiled library.
+        (patches (search-patches "rust-1.70-fix-rustix-build.patch")))))))
+
 ;;; Note: Only the latest version of Rust is supported and tested.  The
 ;;; intermediate rusts are built for bootstrapping purposes and should not
 ;;; be relied upon.  This is to ease maintenance and reduce the time