commit:     075b8b489b61897f80e737f2c27a757e64f21ce8
Author:     idealseal <realidealseal <AT> protonmail <DOT> com>
AuthorDate: Sun Sep 28 15:08:08 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct  3 00:44:04 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=075b8b48

app-shells/fish: add 4.1.0

[sam: Add Bug tag, but the PR came before the bug and 4.1.1.]

Bug: https://bugs.gentoo.org/963661
Signed-off-by: idealseal <realidealseal <AT> protonmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/43973
Signed-off-by: Sam James <sam <AT> gentoo.org>

 app-shells/fish/Manifest                           |   2 +
 .../fish-4.1.0-use-cargo-eclass-for-build.patch    |  48 +++++++++
 app-shells/fish/fish-4.1.0.ebuild                  | 109 +++++++++++++++++++++
 3 files changed, 159 insertions(+)

diff --git a/app-shells/fish/Manifest b/app-shells/fish/Manifest
index 37540b9c4ffc..ce0e86b00bec 100644
--- a/app-shells/fish/Manifest
+++ b/app-shells/fish/Manifest
@@ -4,9 +4,11 @@ DIST fish-4.0.1.tar.xz 3049856 BLAKE2B 
d9ead161f5c7e0fa49055472756cfd24e5477844b
 DIST fish-4.0.2.tar.xz 3055064 BLAKE2B 
5332cba0f1941950701106680110965154d34dcdd786e07967481516012b6272ac40eeee1f54aaa0bd4e78a2fb5c9c7087a9ddc8f4c05a8c9aa3a367949536ae
 SHA512 
9b95c58884fe139a05043f8bed8d93825237327be3384f4310cbf43f4f1996dbad66eb9ba39b36741f3769e17df46166f1b872a59b2375dbc50aaec536b73c96
 DIST fish-4.0.6.tar.xz 3057300 BLAKE2B 
f422ad91a5cdeb0533a2f379694b10f64ab73463276e7bf05046b8aba5df3c5217963cac4fc742575e616c004f5dba5ff580cd1ea9d9a89d788ec5ebc8ea70c9
 SHA512 
b8587644e8e73fb3c8d2d8424283c4753d86f06102bd3963a1c05dc523a8c7318a4dd9e2d22c897023bb515ec72f96071874bfe4cb0a8f203879924c35e36713
 DIST fish-4.0.8.tar.xz 3057636 BLAKE2B 
9b49efda655f46a29420001dcda7270be4f38b82990a7ec8ce4677ab18565b8bb6dc50b2f8adc997e37df45aacbb37a0c5d1a90f84a9bfc11c0d362dce9cd722
 SHA512 
64330a93aa14a6728ea1de7f8ee67374b5d9437d9de423981df8d703a293d71ddd81af37bd8182dcd6146780730510e4578f20a99e232429d03e6abc1d16dd8d
+DIST fish-4.1.0.tar.xz 3275104 BLAKE2B 
3b6abaab2167a84f327724b4482df15101cfb6aae5bdfea3a90249ec3dc307ec9a99910347a3ab01702e28d76981106198c462f2f6d30db8fe8e9ba2d0dbb5dd
 SHA512 
01678f235afb77ad03b06e18b58665b2111df1624b946de66f814e2a8937d9543ce18f806d5eb40adc490591995fe95dabc8f3c8cffbda3611cd6c91d0f7707c
 DIST fish-shell-4.0.0-crates.tar.xz 7418464 BLAKE2B 
943f28ef8b30ff54ad4d8a7746243afcab5359c0b1be849f64bd2dbff39091648485a486294f0c40198f65323683e1cf0e467d0c35ddd782723fd379ae02c245
 SHA512 
d79489c1a997ddd2736c17848a8663bd199a08e78c176dddd4b7440253138bf431dc71a407c1bcc90bbfb052dbf4b74d4ae44da9c5c9e1377a7bd6485718752c
 DIST fish-shell-4.0.1-crates.tar.xz 7418464 BLAKE2B 
943f28ef8b30ff54ad4d8a7746243afcab5359c0b1be849f64bd2dbff39091648485a486294f0c40198f65323683e1cf0e467d0c35ddd782723fd379ae02c245
 SHA512 
d79489c1a997ddd2736c17848a8663bd199a08e78c176dddd4b7440253138bf431dc71a407c1bcc90bbfb052dbf4b74d4ae44da9c5c9e1377a7bd6485718752c
 DIST fish-shell-4.0.2-crates.tar.xz 7418464 BLAKE2B 
943f28ef8b30ff54ad4d8a7746243afcab5359c0b1be849f64bd2dbff39091648485a486294f0c40198f65323683e1cf0e467d0c35ddd782723fd379ae02c245
 SHA512 
d79489c1a997ddd2736c17848a8663bd199a08e78c176dddd4b7440253138bf431dc71a407c1bcc90bbfb052dbf4b74d4ae44da9c5c9e1377a7bd6485718752c
 DIST fish-shell-4.0.6-crates.tar.xz 7622808 BLAKE2B 
8a939212f1ba7585d66d9922c8231394e47e1eb49b38eda5a00839fdc0a99f2ae121e38dcb206af8f95470253b9691d9be4025a35eadfe907dd862bd27302ad5
 SHA512 
c221dcae64a46c5eae7b7a19001acb694cec02e355510c1014c0e61345afaa77cc700fba7ce0914494d8db0f99ca5f014f22ce7e9a68ad2f008bbee699317455
 DIST fish-shell-4.0.8-crates.tar.xz 7622808 BLAKE2B 
8a939212f1ba7585d66d9922c8231394e47e1eb49b38eda5a00839fdc0a99f2ae121e38dcb206af8f95470253b9691d9be4025a35eadfe907dd862bd27302ad5
 SHA512 
c221dcae64a46c5eae7b7a19001acb694cec02e355510c1014c0e61345afaa77cc700fba7ce0914494d8db0f99ca5f014f22ce7e9a68ad2f008bbee699317455
+DIST fish-shell-4.1.0-crates.tar.xz 7131000 BLAKE2B 
f36b33851cbee50a5d80a9527f969dfeae7963c0944c608ac3440b01b23691f63d1da05b7d824056b77ce2b0001a40ec1476aaab6b3d8aceb284711d488d4a18
 SHA512 
1f542be9f2174be0c7c4451b66df3cb32c010d5d0a6d330078cc818e09df7b9f6d16a9001fe7fc0262276e14e1e6be2eb63408f10ddca609d43d8130b673b438
 DIST rust-pcre2-85b7afba1a9d9bd445779800e5bcafeb732e4421.gh.tar.gz 743187 
BLAKE2B 
533671ee8e97e65b93aa9103135848e8a85d79a2f525100aa0120500def9479675f6140878fa7b9bb248e51175ceac7c5710ce247af6e10385a00b23c8986b68
 SHA512 
9323e4d11708d8dc0e7ed607e97b8d4fac6f4a0b955e5e07b76da8152178888bc0ae2d2c109dd58b97d5faa037216e88365fcacb606f23f912d2edb82ede23ad

diff --git a/app-shells/fish/files/fish-4.1.0-use-cargo-eclass-for-build.patch 
b/app-shells/fish/files/fish-4.1.0-use-cargo-eclass-for-build.patch
new file mode 100644
index 000000000000..8261a3588981
--- /dev/null
+++ b/app-shells/fish/files/fish-4.1.0-use-cargo-eclass-for-build.patch
@@ -0,0 +1,48 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 15f32f8466..11c11e292c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -45,18 +45,7 @@
+     ${target} ALL
+     COMMAND
+       "${CMAKE_COMMAND}" -E
+-        env ${VARS_FOR_CARGO}
+-          ${Rust_CARGO}
+-            build --bin ${target}
+-            $<$<CONFIG:Release>:--release>
+-            $<$<CONFIG:RelWithDebInfo>:--profile=release-with-debug>
+-            --target ${Rust_CARGO_TARGET}
+-            --no-default-features
+-            --features=${FISH_CARGO_FEATURES}
+-            ${CARGO_FLAGS}
+-      &&
+-      "${CMAKE_COMMAND}" -E
+-        copy "${rust_target_dir}/${rust_profile}/${target}" 
"${CMAKE_CURRENT_BINARY_DIR}"
++        copy "${FISH_RUST_BUILD_DIR}/${rust_profile}/${target}" 
"${CMAKE_CURRENT_BINARY_DIR}"
+     WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+     USES_TERMINAL
+   )
+diff --git a/cmake/Rust.cmake b/cmake/Rust.cmake
+index 00ddf90559..a8ae3028d0 100644
+--- a/cmake/Rust.cmake
++++ b/cmake/Rust.cmake
+@@ -1,7 +1,7 @@
+ include(FindRust)
+ find_package(Rust REQUIRED)
+ 
+-set(FISH_RUST_BUILD_DIR "${CMAKE_BINARY_DIR}/cargo/build")
++set(FISH_RUST_BUILD_DIR "${CMAKE_SOURCE_DIR}/target")
+ 
+ if(DEFINED ASAN)
+     list(APPEND CARGO_FLAGS "-Z" "build-std")
+@@ -18,8 +18,8 @@
+     set(rust_target_dir "${FISH_RUST_BUILD_DIR}/${Rust_CARGO_HOST_TARGET}")
+ endif()
+ 
+-set(rust_profile 
$<IF:$<CONFIG:Debug>,debug,$<IF:$<CONFIG:RelWithDebInfo>,release-with-debug,release>>)
+-set(rust_debugflags "$<$<CONFIG:Debug>:-g>$<$<CONFIG:RelWithDebInfo>:-g>")
++set(rust_profile $<IF:$<CONFIG:Debug>,debug,release>)
++set(rust_debugflags "$<$<CONFIG:Debug>:-g>")
+ 
+ option(WITH_GETTEXT "Build with gettext localization support. Requires 
`msgfmt` to work." ON)
+ # Enable gettext feature unless explicitly disabled.

diff --git a/app-shells/fish/fish-4.1.0.ebuild 
b/app-shells/fish/fish-4.1.0.ebuild
new file mode 100644
index 000000000000..d3ec9840a518
--- /dev/null
+++ b/app-shells/fish/fish-4.1.0.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES=""
+
+declare -A GIT_CRATES=(
+       
[pcre2-sys]='https://github.com/fish-shell/rust-pcre2;85b7afba1a9d9bd445779800e5bcafeb732e4421;rust-pcre2-%commit%/pcre2-sys'
+       
[pcre2]='https://github.com/fish-shell/rust-pcre2;85b7afba1a9d9bd445779800e5bcafeb732e4421;rust-pcre2-%commit%'
+)
+
+inherit cargo cmake readme.gentoo-r1 xdg
+
+DESCRIPTION="Friendly Interactive SHell"
+HOMEPAGE="https://fishshell.com/";
+
+MY_PV="${PV/_beta/b}"
+MY_P="${PN}-${MY_PV}"
+
+if [[ ${PV} == 9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/fish-shell/fish-shell.git";
+else
+       SRC_URI="
+               
https://github.com/fish-shell/fish-shell/releases/download/${MY_PV}/${MY_P}.tar.xz
+               
https://github.com/gentoo-crate-dist/fish-shell/releases/download/${MY_PV}/fish-shell-${MY_PV}-crates.tar.xz
+               ${CARGO_CRATE_URIS}
+       "
+       KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~amd64-linux ~x86-linux 
~ppc-macos ~x64-macos"
+fi
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2 BSD BSD-2 CC0-1.0 GPL-2+ ISC LGPL-2+ MIT PSF-2 ZLIB"
+# Dependent crate licenses
+LICENSE+=" MIT Unicode-DFS-2016 WTFPL-2 ZLIB"
+SLOT="0"
+IUSE="+doc nls test"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="nls? ( sys-devel/gettext )"
+# Release tarballs contain prebuilt documentation.
+[[ ${PV} == 9999 ]] && BDEPEND+=" doc? ( dev-python/sphinx )"
+
+PATCHES=(
+       "${FILESDIR}/${P}-use-cargo-eclass-for-build.patch"
+)
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+src_unpack() {
+       if [[ ${PV} == 9999 ]]; then
+               git-r3_src_unpack
+               cargo_live_src_unpack
+       else
+               cargo_src_unpack
+       fi
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+               -DINSTALL_DOCS="$(usex doc)"
+               -DWITH_GETTEXT="$(usex nls 1 0)"
+       )
+       cargo_src_configure --no-default-features \
+               --bin fish \
+               --bin fish_indent \
+               --bin fish_key_reader
+       cmake_src_configure
+}
+
+src_compile() {
+       local -x PREFIX="${EPREFIX}/usr"
+       local -x DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
+
+       # Bug: https://bugs.gentoo.org/950699
+       local -x SYSCONFDIR="${EPREFIX}/etc"
+
+       # Release tarballs contain prebuilt documentation.
+       local -x FISH_BUILD_DOCS
+       if [[ ${PV} == 9999 ]]; then
+               FISH_BUILD_DOCS="$(usex doc 1 0)"
+       else
+               FISH_BUILD_DOCS=0
+       fi
+
+       cargo_src_compile
+}
+
+src_test() {
+       local -x CARGO_TERM_COLOR=always
+       local -x TEST_VERBOSE=1
+       # cargo_env cmake_src_compile fish_run_tests
+       cargo_env cmake_src_test fish_run_tests
+}
+
+src_install() {
+       cmake_src_install
+       keepdir /usr/share/fish/vendor_{completions,conf,functions}.d
+       readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+       readme.gentoo_print_elog
+       xdg_pkg_postinst
+}

Reply via email to