1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

gnu: fish: Update to 4.0.1.

* gnu/packages/shells.scm (fish): Update to 4.0.1.
[inputs]: Use ‘cargo-inputs’.
[native-inputs]: Add pkg-config, rust, rust:cargo.
Add rust-sysroot when cross-compiling.
[arguments]<#:out-of-source?>: Build in-tree.
<#:imported-modules, #:modules>: Use cargo-build-system modules.
<#:phases>: Use packaged rust-pcre2.
Use phases from cargo-build-system.
Adjust tests accordingly.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs)[fish]: New entry.

Change-Id: I60e0a45f30db80a83041714036c09a84e4f23e0f
This commit is contained in:
Hilton Chain
2025-03-04 15:58:36 +08:00
parent 7d32aa5a97
commit 8aebc51fdb
2 changed files with 186 additions and 28 deletions

View File

@@ -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

View File

@@ -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