diff --git a/gnu/local.mk b/gnu/local.mk index daacd786a7..bf7cfbf8bd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1947,6 +1947,7 @@ dist_patch_DATA = \ %D%/packages/patches/ruby-nokogiri.patch \ %D%/packages/patches/rustc-1.54.0-src.patch \ %D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch \ + %D%/packages/patches/rust-1.70-fix-rustix-build.patch \ %D%/packages/patches/rust-ring-0.16-missing-files.patch \ %D%/packages/patches/rust-ring-0.16-test-files.patch \ %D%/packages/patches/i3status-rust-enable-unstable-features.patch \ diff --git a/gnu/packages/patches/rust-1.70-fix-rustix-build.patch b/gnu/packages/patches/rust-1.70-fix-rustix-build.patch new file mode 100644 index 0000000000..d72a8fb07a --- /dev/null +++ b/gnu/packages/patches/rust-1.70-fix-rustix-build.patch @@ -0,0 +1,21 @@ +@@ -0,0 +1,20 @@ +--- a/vendor/fd-lock/Cargo.toml 2023-05-31 14:44:48.000000000 -0700 ++++ b/vendor/fd-lock/Cargo.toml 2023-07-14 21:19:34.637702319 -0700 +@@ -45,7 +45,7 @@ + + [target."cfg(unix)".dependencies.rustix] + version = "0.37.0" +-features = ["fs"] ++features = ["fs", "cc"] + + [target."cfg(windows)".dependencies.windows-sys] + version = "0.45.0" +--- a/src/bootstrap/Cargo.lock 2023-07-11 20:32:40.000000000 -0700 ++++ b/src/bootstrap/Cargo.lock 2023-07-14 22:41:53.269284713 -0700 +@@ -618,6 +618,7 @@ + dependencies = [ + "bitflags", ++ "cc", + "errno", + "io-lifetimes", + "libc", 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 @@ (define rust-1.69 (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