diff --git a/gnu/packages/rust-crates.scm b/gnu/packages/rust-crates.scm index 84615bf454..e187075417 100644 --- a/gnu/packages/rust-crates.scm +++ b/gnu/packages/rust-crates.scm @@ -2284,6 +2284,10 @@ "0aw7diz39z3mk22k0mp7jk7qiaaagfvggzly1baqg2jf4vpf8xg7" #:snippet '(delete-file-recursively "assets"))) +(define rust-lru-0.12.5 + (crate-source "lru" "0.12.5" + "0f1a7cgqxbyhrmgaqqa11m3azwhcc36w0v5r4izgbhadl3sg8k13")) + (define rust-lz4-flex-0.10.0 (crate-source "lz4_flex" "0.10.0" "10sgbj93sagbl0ngzqvnlkldzbfz5vnzr7fry8sgssy299cp534b")) @@ -2761,6 +2765,10 @@ (crate-source "pathdiff" "0.2.3" "1lrqp4ip05df8dzldq6gb2c1sq2gs54gly8lcnv3rhav1qhwx56z")) +(define rust-pcre2-0.2.9.85b7afb rust-pcre2-utf32-0.2) + +(define rust-pcre2-sys-0.2.9.85b7afb rust-pcre2-utf32-0.2) + (define rust-pem-3.0.5 (crate-source "pem" "3.0.5" "1wwfk8sbyi9l18fvvn6z9p2gy7v7q7wimbhvrvixxj8a8zl3ibrq")) @@ -2799,6 +2807,10 @@ (crate-source "phf_codegen" "0.10.0" "1k8kdad9wk2d5972k6jmjki2xpdy2ky4zd19rv7ybm2dpjlc7cag")) +(define rust-phf-codegen-0.11.3 + (crate-source "phf_codegen" "0.11.3" + "0si1n6zr93kzjs3wah04ikw8z6npsr39jw4dam8yi9czg2609y5f")) + (define rust-phf-generator-0.10.0 (crate-source "phf_generator" "0.10.0" "1mlq6hlajsvlsx6rhw49g9ricsm017lrxmgmmbk85sxm7f4qaljx")) @@ -3247,6 +3259,10 @@ (crate-source "rpds" "1.1.0" "194hjbsicmgqi3dyllqrz09mmhh597m2j9l49lr16cyfscambqd0")) +(define rust-rsconf-0.2.2 + (crate-source "rsconf" "0.2.2" + "1p5w6qiskg43f5qhsh6slpc3klmhhyf76xvmzkkh215gy5czhamx")) + (define rust-rstest-0.22.0 (crate-source "rstest" "0.22.0" "0dlrn6y4z5xgsvf6ky3lrjwsxpvi13sizlkwnqs1gmmxc873yhkv")) @@ -3271,6 +3287,19 @@ (crate-source "rusqlite" "0.32.1" "0vlx040bppl414pbjgbp7qr4jdxwszi9krx0m63zzf2f2whvflvp")) +(define rust-rust-embed-8.6.0 + (crate-source "rust-embed" "8.6.0" + "0vxz02gqj9d65ym7ygbnwwrbgzh88zjqs2b1zk4vabb20i8vlfhb" + #:snippet '(delete-file-recursively "examples"))) + +(define rust-rust-embed-impl-8.6.0 + (crate-source "rust-embed-impl" "8.6.0" + "1bms1vmb9z8rcwrjdk1rzmb3wi08mmh7jbz1m1d2r384prrqq68z")) + +(define rust-rust-embed-utils-8.6.0 + (crate-source "rust-embed-utils" "8.6.0" + "16mxa8asv0aq04fnbz1748rrzl8sc7frmjj2529c538cyk4wsbss")) + (define rust-rustc-demangle-0.1.24 (crate-source "rustc-demangle" "0.1.24" "07zysaafgrkzy2rjgwqdj2a8qdpsm6zv6f5pgpk9x0lm40z9b6vi")) @@ -3468,6 +3497,10 @@ (crate-source "serial_test" "0.5.1" "0pchc7imdi9wv8xxnwkb9lzs6cg06ghs0gaajjb834y8837wpg70")) +(define rust-serial-test-1.0.0 + (crate-source "serial_test" "1.0.0" + "04864v5ain4nan2k5l32sr3bxpg0sfxxs2iki3xxcq78g9s3132k")) + (define rust-serial-test-2.0.0 (crate-source "serial_test" "2.0.0" "0b9v0csv9wxl1gcjq99plwimxbmhgr6kzbwqyb457qh3d22xsmhf")) @@ -3476,6 +3509,10 @@ (crate-source "serial_test_derive" "0.5.1" "1m8sd97xr8dn6p9by0xwfqm0rz8cbn1ghs5l1fv1xd6xzvgddb5j")) +(define rust-serial-test-derive-1.0.0 + (crate-source "serial_test_derive" "1.0.0" + "0scscldvlz3an9v0spcizaqp5wa2y4w15bk4ink8jpgq2pgq76h7")) + (define rust-serial-test-derive-2.0.0 (crate-source "serial_test_derive" "2.0.0" "13zvd5ds76hhjn3z0axc05n15lzpxpz77jcykic8q5knhlbjklci")) @@ -3741,6 +3778,11 @@ (crate-source "terminal_size" "0.4.2" "1vdm5xhzn7sqcsr762vmnavkhid3hs8w8qjyh9iwrr1990f4iij5")) +(define rust-terminfo-0.9.0 + (crate-source "terminfo" "0.9.0" + "0qp6rrzkxcg08vjzsim2bw7mid3vi29mizrg70dzbycj0q7q3snl" + #:snippet '(delete-file-recursively "tests"))) + (define rust-termtree-0.5.1 (crate-source "termtree" "0.5.1" "10s610ax6nb70yi7xfmwcb6d3wi9sj5isd0m63gy2pizr2zgwl4g")) @@ -4174,6 +4216,10 @@ (crate-source "wide" "0.7.32" "08mb6iqdscqiqrbfkjrnfr876ah4cc0cx5pjilz3yqw1k9mmgda1")) +(define rust-widestring-1.2.0 + (crate-source "widestring" "1.2.0" + "0zg04qvpk2xysbbwhdgyilgn4p9igvyj9fhzl7pckam1khvz6z6x")) + (define rust-wild-2.2.1 (crate-source "wild" "2.2.1" "1q8hnhmv3fvgx0j7bv8qig00599a15mfsdhgx3hq2ljpiky1l4x3")) @@ -5079,6 +5125,87 @@ rust-windows-x86-64-gnullvm-0.52.6 rust-windows-x86-64-msvc-0.52.6 rust-winnow-0.7.4)) + (fish => + (list rust-allocator-api2-0.2.21 + rust-autocfg-1.4.0 + rust-bitflags-2.9.0 + rust-block-buffer-0.10.4 + rust-cc-1.2.18 + rust-cfg-if-1.0.0 + rust-cfg-aliases-0.2.1 + rust-cpufeatures-0.2.17 + rust-crypto-common-0.1.6 + rust-dashmap-5.5.3 + rust-digest-0.10.7 + rust-equivalent-1.0.2 + rust-errno-0.3.11 + rust-fnv-1.0.7 + rust-foldhash-0.1.5 + rust-generic-array-0.14.7 + rust-getrandom-0.3.2 + rust-hashbrown-0.14.5 + rust-hashbrown-0.15.2 + rust-jobserver-0.1.33 + rust-lazy-static-1.5.0 + rust-libc-0.2.171 + rust-lock-api-0.4.12 + rust-log-0.4.27 + rust-lru-0.12.5 + rust-memchr-2.7.4 + rust-minimal-lexical-0.2.1 + rust-nix-0.29.0 + rust-nom-7.1.3 + rust-num-traits-0.2.19 + rust-once-cell-1.21.3 + rust-parking-lot-0.12.3 + rust-parking-lot-core-0.9.10 + rust-pcre2-0.2.9.85b7afb + rust-pcre2-sys-0.2.9.85b7afb + rust-phf-0.11.3 + rust-phf-codegen-0.11.3 + rust-phf-generator-0.11.3 + rust-phf-shared-0.11.3 + rust-pkg-config-0.3.32 + rust-portable-atomic-1.11.0 + rust-proc-macro2-1.0.94 + rust-quote-1.0.40 + rust-r-efi-5.2.0 + rust-rand-0.8.5 + rust-rand-core-0.6.4 + rust-redox-syscall-0.5.11 + rust-rsconf-0.2.2 + rust-rust-embed-8.6.0 + rust-rust-embed-impl-8.6.0 + rust-rust-embed-utils-8.6.0 + rust-same-file-1.0.6 + rust-scopeguard-1.2.0 + rust-serial-test-1.0.0 + rust-serial-test-derive-1.0.0 + rust-sha2-0.10.8 + rust-shlex-1.3.0 + rust-siphasher-1.0.1 + rust-smallvec-1.15.0 + rust-syn-1.0.109 + rust-syn-2.0.100 + rust-terminfo-0.9.0 + rust-typenum-1.18.0 + rust-unicode-ident-1.0.18 + rust-version-check-0.9.5 + rust-walkdir-2.5.0 + rust-wasi-0.14.2+wasi-0.2.4 + rust-widestring-1.2.0 + rust-winapi-util-0.1.9 + rust-windows-sys-0.59.0 + rust-windows-targets-0.52.6 + rust-windows-aarch64-gnullvm-0.52.6 + rust-windows-aarch64-msvc-0.52.6 + rust-windows-i686-gnu-0.52.6 + rust-windows-i686-gnullvm-0.52.6 + rust-windows-i686-msvc-0.52.6 + rust-windows-x86-64-gnu-0.52.6 + rust-windows-x86-64-gnullvm-0.52.6 + rust-windows-x86-64-msvc-0.52.6 + rust-wit-bindgen-rt-0.39.0)) (librsvg => (list rust-adler2-2.0.0 rust-aho-corasick-1.1.3 diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index ea95b11e00..267b573642 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -50,6 +50,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) @@ -69,12 +70,14 @@ #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) + #:use-module (gnu packages rust) #:use-module (gnu packages scheme) #:use-module (gnu packages terminals) #:use-module (gnu packages version-control) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) #:use-module (gnu packages texinfo) + #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) @@ -126,7 +129,7 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") (define-public fish (package (name "fish") - (version "3.7.1") + (version "4.0.1") (source (origin (method url-fetch) @@ -134,30 +137,66 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") "releases/download/" version "/" "fish-" version ".tar.xz")) (sha256 - (base32 "0l5jlg0vplqln7ijqwirp1xl4j9npimzm58k77grj1yd8db9yk31")))) + (base32 "1db2qxlls9f8n6sjcj4dz7j22113nhfz5i8zy9ff30vj41q3mmjf")) + ;; TODO: Unbundle corrosion. + (patches (search-patches "corrosion-honor-CARGO_BUILD_TARGET.patch")))) (build-system cmake-build-system) (inputs - (list fish-foreign-env ncurses pcre2 - python)) ; for fish_config and manpage completions + (cons* fish-foreign-env + ncurses + pcre2 + python ;for fish_config and manpage completions + (cargo-inputs 'fish))) (native-inputs - (list doxygen groff ; for 'fish --help' - procps)) ; for the test suite + (append + (list doxygen + groff ;for 'fish --help' + pkg-config + procps ;for the test suite + rust + `(,rust "cargo")) + (or (and=> (%current-target-system) + (compose list make-rust-sysroot)) + '()))) (arguments (list - #:modules '((guix build cmake-build-system) - ((guix build gnu-build-system) #:prefix gnu:) - (guix build utils)) + #:out-of-source? #f + #:imported-modules + (append %cargo-build-system-modules + %cmake-build-system-modules) + #:modules + '(((guix build cargo-build-system) #:prefix cargo:) + (guix build cmake-build-system) + ((guix build gnu-build-system) #:prefix gnu:) + (guix build utils)) #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'use-guix-vendored-dependencies + (lambda _ + (substitute* "Cargo.toml" + (("git.*tag.*,") + "version = \"*\",")))) + (add-after 'unpack 'prepare-cargo-build-system + (lambda args + (for-each + (lambda (phase) + (format #t "Running cargo phase: ~a~%" phase) + (apply (assoc-ref cargo:%standard-phases phase) + #:cargo-target #$(cargo-triplet) + args)) + '(unpack-rust-crates + configure + check-for-pregenerated-files + patch-cargo-checksums)))) (add-after 'unpack 'set-env (lambda _ ;; some tests write to $HOME (setenv "HOME" (getcwd)) #t)) (add-after 'unpack 'patch-tests - (lambda* (#:key inputs #:allow-other-keys) - (let ((coreutils (assoc-ref inputs "coreutils")) - (bash (assoc-ref inputs "bash"))) + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (let ((coreutils (assoc-ref (or native-inputs inputs) "coreutils")) + (bash (assoc-ref (or native-inputs inputs) "bash"))) ;; This test sporadically fails in the build container ;; because of leftover zombie processes, which are not ;; reaped automatically: @@ -173,7 +212,8 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") (substitute* "tests/checks/vars_as_commands.fish" (("/usr/bin") "/tmp")) ;; These contain absolute path references. - (substitute* "src/fish_tests.cpp" + (substitute* '("src/builtins/tests/test_tests.rs" + "src/tests/highlight.rs") (("/bin/echo" echo) (string-append coreutils echo)) (("/bin/ca" ca) (string-append coreutils ca)) (("\"(/bin/c)\"" _ c) (string-append "\"" coreutils c "\"")) @@ -181,24 +221,16 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") (string-append coreutils ls-not-a-path)) (("/bin/ls" ls) (string-append coreutils ls)) (("(/bin/)\"" _ bin) (string-append coreutils bin "\"")) - (("/bin -" bin) (string-append coreutils bin)) - (((string-append - "do_test\\(is_potential_path\\(" - "L\"/usr\", wds, vars, PATH_REQUIRE_DIR\\)\\);")) - "") + (("/bin\", \"-" bin) (string-append coreutils bin)) ;; Not all mentions of /usr... need to exist, but these do. (("\"/usr(|/lib)\"" _ subdirectory) (string-append "\"/tmp" subdirectory "\""))) - (substitute* - (append (find-files "tests" ".*\\.(in|out|err)$") - (find-files "tests/checks" ".*\\.fish")) + (substitute* (find-files "tests") (("/bin/pwd" pwd) (string-append coreutils pwd)) (("/bin/echo" echo) (string-append coreutils echo)) (("/bin/sh" sh) (string-append bash sh)) - (("/bin/ls" ls) (string-append coreutils ls))) - (substitute* (find-files "tests" ".*\\.(in|out|err)$") - (("/usr/bin") (string-append coreutils "/bin"))) - #t))) + (("/bin/ls" ls) (string-append coreutils ls)) + (("/test/root/bin") ""))))) ;; Source /etc/fish/config.fish from $__fish_sysconf_dir/config.fish. (add-after 'patch-tests 'patch-fish-config (lambda _ @@ -215,10 +247,9 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).") #t)) ;; Embed absolute paths. (add-before 'install 'embed-absolute-paths - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) (substitute* "share/functions/__fish_print_help.fish" - (("nroff") (which "nroff"))) - #t)) + (("nroff") (search-input-file inputs "bin/nroff"))))) ;; Enable completions, functions and configurations in user's and ;; system's guix profiles by adding them to __extra_* variables. (add-before 'install 'patch-fish-extra-paths