commit:     b514d3dfa90a70851790547c9bca477a672f9b06
Author:     idealseal <realidealseal <AT> protonmail <DOT> com>
AuthorDate: Fri Feb 28 13:21:58 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sun Mar  2 17:59:38 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b514d3df

app-shells/fish: add 4.0.0

Signed-off-by: idealseal <realidealseal <AT> protonmail.com>
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

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

diff --git a/app-shells/fish/Manifest b/app-shells/fish/Manifest
index 838ade8b3f4f..733f536af9fa 100644
--- a/app-shells/fish/Manifest
+++ b/app-shells/fish/Manifest
@@ -12,7 +12,9 @@ DIST digest-0.10.7.crate 19557 BLAKE2B 
61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c
 DIST equivalent-1.0.1.crate 6615 BLAKE2B 
302d78069d9df05e78b53f0488a9e4eb98fa2bc1e21893dc8a0acf2234347ba7c4df4b9d6b380ae77d8ffb1074b9c790460fe2dae47318aa1c4fe4208244540a
 SHA512 
b2bc60e804c1b02c461dcefcfd60fc37145af710d183ebe65f9a4d63f2b2072d23193f98dc550a9213c7fdc6a2a837af23b04a89294ebbb681a4aaf5d5031140
 DIST errno-0.3.9.crate 10690 BLAKE2B 
8deb19cf0c830ff2adebb733ab961558cb4463f256604f9c76d5c5952f34a79b70dce47e28f68f459977ef34d4821ab5d0f7e79a7a110693700f80b49ba56651
 SHA512 
777fbac5730d420d58275ef63b7579997d8e6c72106d483ee1e3b1f1ce3977f1f66c56870a05acaa4cfacacb820eaf963e9c763748759cff3668fa2e6f89f04a
 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.0b1.tar.xz 3037344 BLAKE2B 
c2641f7d0aa74d9d17432c653f684278742bf86999f4bdcb82322bc5c813dac1b7fcd5f694f5955dcf082d9772def08e7a0857c2b24759408075da4b9ba8aa18
 SHA512 
9f9740076e09e5b3487586be3e8572b42b8d2084b6616fb1792e94d24da8d46bc38f7d55b8728cfc0a3dc9820136de7608528c37dc6aaec474a208a663f07f3b
+DIST fish-shell-4.0.0-crates.tar.xz 7418464 BLAKE2B 
943f28ef8b30ff54ad4d8a7746243afcab5359c0b1be849f64bd2dbff39091648485a486294f0c40198f65323683e1cf0e467d0c35ddd782723fd379ae02c245
 SHA512 
d79489c1a997ddd2736c17848a8663bd199a08e78c176dddd4b7440253138bf431dc71a407c1bcc90bbfb052dbf4b74d4ae44da9c5c9e1377a7bd6485718752c
 DIST fnv-1.0.7.crate 11266 BLAKE2B 
81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d
 SHA512 
2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334
 DIST foldhash-0.1.3.crate 13712 BLAKE2B 
e5913d3aa493d0176af9650354d98870b7e97523ca743a7d9605da3f559463654f391e42438d96fc797397ced449f13ce499c20ed5db7aec772aae97c5f29175
 SHA512 
844d5b699db632254dfc378d46e34909637118647250e2382cbb88855f6739fb9b5f1b840bb8e250dc8fbd2a97c9155e5d8fd0c5c760b8e02dd0aecd96818a5b
 DIST generic-array-0.14.7.crate 15950 BLAKE2B 
e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b
 SHA512 
363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d

diff --git a/app-shells/fish/fish-4.0.0.ebuild 
b/app-shells/fish/fish-4.0.0.ebuild
new file mode 100644
index 000000000000..fd51ab804370
--- /dev/null
+++ b/app-shells/fish/fish-4.0.0.ebuild
@@ -0,0 +1,163 @@
+# 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 shpinx 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}"
+       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_install() {
+       cmake_src_install
+       keepdir /usr/share/fish/vendor_{completions,conf,functions}.d
+       readme.gentoo_create_doc
+}
+
+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 test target
+       cargo_env cmake_build test
+}
+
+pkg_postinst() {
+       readme.gentoo_print_elog
+       xdg_pkg_postinst
+}

Reply via email to