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 +}
