commit:     29e148b6c524df0e59e581c87ce78aceddf9503e
Author:     idealseal <realidealseal <AT> protonmail <DOT> com>
AuthorDate: Thu Mar 13 08:40:51 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Mar 13 09:44:46 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=29e148b6

app-shells/fish: add 4.0.1

Signed-off-by: idealseal <realidealseal <AT> protonmail.com>
Closes: https://github.com/gentoo/gentoo/pull/41053
Signed-off-by: Sam James <sam <AT> gentoo.org>

 app-shells/fish/Manifest          |   2 +
 app-shells/fish/fish-4.0.1.ebuild | 165 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 167 insertions(+)

diff --git a/app-shells/fish/Manifest b/app-shells/fish/Manifest
index 84e64ceaec70..4a4ed518a34e 100644
--- a/app-shells/fish/Manifest
+++ b/app-shells/fish/Manifest
@@ -1,4 +1,6 @@
 DIST fish-3.7.1.tar.xz 2965756 BLAKE2B 
3ba628047c042b9bcb4b28aaeb205efb211b006cc379d766ee805d9fded92a3c07a3994ad1006648cdd68b26cf977de70a39f3694879de40f2e72ed058572c3a
 SHA512 
f1605c400c5d5494f37b92dd386963dba7a3f3c401c369aaf3ff616d9d94836a0138d26074be24c92d94d9d7b625513800899c9431f5e21be0757eb0a0bfd3fe
 DIST fish-4.0.0.tar.xz 3047432 BLAKE2B 
70081b5c3a143021456cc37d28051ef86f589c00418f0261a6b50bf44bf5d0fdd2ea762088fa7d26756341ab7eb7a26b78711c2a1e59665324d080d6e028ce9d
 SHA512 
559a0433aacd5b62204e02607ee628210619c633c3b9403fad91546feab5061707630d239a95db3e2efa5c95491008f94b767059c01d1f5ba3197c09dac7302c
+DIST fish-4.0.1.tar.xz 3049856 BLAKE2B 
d9ead161f5c7e0fa49055472756cfd24e5477844b9865eaac5d3db204a0f27725a7ea6ad053205bff51258b625e1707cbf2b86687458edd34bc4637dec9f8639
 SHA512 
ed72beef48e18ea31705c6f4904aacd35982a36aaa4c3f7ba1ac3e07e6ff8eb02c76f82d47a59a522f57dd36d9664d69e20fd15b7e253aa8d9406cf1c10cd565
 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 rust-pcre2-85b7afba1a9d9bd445779800e5bcafeb732e4421.gh.tar.gz 743187 
BLAKE2B 
533671ee8e97e65b93aa9103135848e8a85d79a2f525100aa0120500def9479675f6140878fa7b9bb248e51175ceac7c5710ce247af6e10385a00b23c8986b68
 SHA512 
9323e4d11708d8dc0e7ed607e97b8d4fac6f4a0b955e5e07b76da8152178888bc0ae2d2c109dd58b97d5faa037216e88365fcacb606f23f912d2edb82ede23ad

diff --git a/app-shells/fish/fish-4.0.1.ebuild 
b/app-shells/fish/fish-4.0.1.ebuild
new file mode 100644
index 000000000000..61eb5b15a6b5
--- /dev/null
+++ b/app-shells/fish/fish-4.0.1.ebuild
@@ -0,0 +1,165 @@
+# 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%'
+)
+
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit cargo cmake python-any-r1 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 split-usr test"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+       nls? ( sys-devel/gettext )
+       test? (
+               ${PYTHON_DEPS}
+               dev-tcltk/expect
+               $(python_gen_any_dep '
+                       dev-python/pexpect[${PYTHON_USEDEP}]
+               ')
+       )
+"
+# we don't need sphinx dep for release tarballs
+[[ ${PV} == 9999 ]] && BDEPEND+=" doc? ( dev-python/sphinx )"
+
+QA_FLAGS_IGNORED="**bin/fish*"
+
+python_check_deps() {
+       use test || return 0
+       python_has_version "dev-python/pexpect[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+       use test && python-any-r1_pkg_setup
+       rust_pkg_setup
+}
+
+src_unpack() {
+       if [[ ${PV} == 9999 ]]; then
+               git-r3_src_unpack
+               cargo_live_src_unpack
+       else
+               cargo_src_unpack
+       fi
+}
+
+src_prepare() {
+       # workaround for https://github.com/fish-shell/fish-shell/issues/4883
+       if use split-usr; then
+               sed -i 
's#${TEST_INSTALL_DIR}/${CMAKE_INSTALL_PREFIX}#${TEST_INSTALL_DIR}#' \
+                       cmake/Tests.cmake || die
+       fi
+
+       # remove the build targets from the default build set so they are not 
wanted
+       # if cmake_src_install is called
+       sed -i \
+               -e '
+               /function(CREATE_TARGET target)/,/endfunction(CREATE_TARGET)/ {
+                       s/${target} ALL/${target}/
+               }' CMakeLists.txt || die
+
+       cmake_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=(
+               # installing into /bin breaks tests on merged usr systems.
+               # sbin -> bin symlink confuses tests.
+               # so on split-usr we install to /bin.
+               # on merge-usr we set sbindir to bin.
+               $(usex split-usr "-DCMAKE_INSTALL_BINDIR=${EPREFIX}/bin" \
+                       "-DCMAKE_INSTALL_SBINDIR=${EPREFIX}/usr/bin")
+               -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+               -DINSTALL_DOCS="$(usex doc)"
+               -DWITH_GETTEXT="$(usex nls)"
+       )
+       # release tarballs ship pre-built docs // -DHAVE_PREBUILT_DOCS=TRUE
+       if [[ ${PV} == 9999 ]]; then
+               mycmakeargs+=( -DBUILD_DOCS="$(usex doc)" )
+       else
+               mycmakeargs+=( -DBUILD_DOCS=OFF )
+       fi
+       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"
+       local -x CMAKE_WITH_GETTEXT
+       CMAKE_WITH_GETTEXT="$(usex nls 1 0)"
+       cargo_src_compile
+
+       for target in fish fish_indent fish_key_reader; do
+               cp "$(cargo_target_dir)/${target}" "${BUILD_DIR}" || die
+       done
+       cmake_src_compile
+}
+
+src_test() {
+       # tests will create temporary files
+       local -x TMPDIR="${T}"
+
+       # some tests are fragile, sanitize environment
+       local -x COLUMNS=80
+       local -x LINES=24
+
+       # very fragile, depends on terminal, size, tmux, screen and timing
+       # no die is intentional, for repeated test runs
+       if [[ ${PV} != 9999 ]]; then
+               rm -v tests/pexpects/terminal.py || :
+       fi
+
+       # TODO: fix tests & submit upstream
+       # tests are confused by usr/sbin -> bin symlink, no die is intentional 
for repeated test runs
+       use split-usr || rm -v tests/checks/{redirect,type}.fish || :
+
+       # tests are invoked through the `fish_run_tests` target
+       cargo_env cmake_build 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