diff --git a/app-shells/fish/Manifest b/app-shells/fish/Manifest new file mode 100644 index 0000000..61e497d --- /dev/null +++ b/app-shells/fish/Manifest @@ -0,0 +1,3 @@ +DIST fish-4.3.2.tar.xz 2535720 BLAKE2B 770650e353b1f6a38bbaa7f6df1e24cf4d625e8c15fb8549810949349fd4964dd86621606297cdbd89c010d9b2d3e90045aca5c639701171bb82c1697d5a6f55 SHA512 a50c09996af84544a089673746d5d2848d70765a3cbd2896be24ab9b4efb28ec1c990c715d1dc5f20b0a0a550e243e17931aee930d2fcce19dc9e7a12e0f02b3 +DIST fish-shell-4.3.2-crates.tar.xz 6667516 BLAKE2B 8e44e0b0510a3ea4493c9a6d628fa54d24eefb1e834c96d35fed34e262f4b09e78228d7269cd77587700b1c323407b345f258c49227154082224bd3287e6c09a SHA512 69bb4afe8ca6034339d5f18773b5de25415d785b44a158b5587a0f71a27774741243c4d497d75ce92e9f8a3c9bdef6ed1b5df5f01d7aed752b0a5bcd7097daf8 +DIST rust-pcre2-85b7afba1a9d9bd445779800e5bcafeb732e4421.gh.tar.gz 743187 BLAKE2B 533671ee8e97e65b93aa9103135848e8a85d79a2f525100aa0120500def9479675f6140878fa7b9bb248e51175ceac7c5710ce247af6e10385a00b23c8986b68 SHA512 9323e4d11708d8dc0e7ed607e97b8d4fac6f4a0b955e5e07b76da8152178888bc0ae2d2c109dd58b97d5faa037216e88365fcacb606f23f912d2edb82ede23ad diff --git a/app-shells/fish/files/README.gentoo b/app-shells/fish/files/README.gentoo new file mode 100644 index 0000000..421d070 --- /dev/null +++ b/app-shells/fish/files/README.gentoo @@ -0,0 +1,19 @@ +fish is now installed on your system. +To run fish, type 'fish' in your terminal. + +It is advised not to set fish as a default login shell. +see https://bugs.gentoo.org/545830 for more details. +Executing fish using ~/.bashrc is an alternative +see https://wiki.gentoo.org/wiki/Fish#Caveats for details + +To set your colors, run 'fish_config' +To scan your man pages for completions, run 'fish_update_completions' +To autocomplete command suggestions press Ctrl + F or right arrow key. + +Please add a "BROWSER" variable to fish environment pointing to the +browser of your choice to get acces to fish help system: + BROWSER="/usr/bin/firefox" + +If you have issues with cut'n'paste in X-terminals, install the x11-misc/xsel package. + +Have fun! diff --git a/app-shells/fish/files/fish-4.3.0-use-cargo-eclass-for-build.patch b/app-shells/fish/files/fish-4.3.0-use-cargo-eclass-for-build.patch new file mode 100644 index 0000000..5844e8f --- /dev/null +++ b/app-shells/fish/files/fish-4.3.0-use-cargo-eclass-for-build.patch @@ -0,0 +1,46 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c65b3e422..caf670f0c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -60,18 +60,7 @@ add_custom_target( + fish ALL + COMMAND + "${CMAKE_COMMAND}" -E +- env ${VARS_FOR_CARGO} +- ${Rust_CARGO} +- build --bin fish +- $<$:--release> +- $<$:--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}/fish" "${CMAKE_CURRENT_BINARY_DIR}" ++ copy "${FISH_RUST_BUILD_DIR}/${rust_profile}/fish" "${CMAKE_CURRENT_BINARY_DIR}" + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + USES_TERMINAL + ) +diff --git a/cmake/Rust.cmake b/cmake/Rust.cmake +index d99e621e4..4d6b47f2a 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,7 +18,7 @@ else() + set(rust_target_dir "${FISH_RUST_BUILD_DIR}/${Rust_CARGO_HOST_TARGET}") + endif() + +-set(rust_profile $,debug,$,release-with-debug,release>>) ++set(rust_profile $,debug,release>) + + 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.3.2.ebuild b/app-shells/fish/fish-4.3.2.ebuild new file mode 100644 index 0000000..9fabab0 --- /dev/null +++ b/app-shells/fish/fish-4.3.2.ebuild @@ -0,0 +1,107 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES="" +RUST_MIN_VER="1.85.0" + +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 ~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+=" Apache-2.0 MIT MPL-2.0 Unicode-3.0 WTFPL-2 ZLIB" +SLOT="0" +IUSE="+doc nls test" + +RESTRICT="!test? ( test )" + +BDEPEND=" + doc? ( dev-python/sphinx ) + nls? ( sys-devel/gettext ) +" + +PATCHES=( + "${FILESDIR}/${PN}-4.3.0-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" + -DWITH_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 DATADIR="${EPREFIX}/usr/share" + local -x DOCDIR="${EPREFIX}/usr/share/doc/${PF}" + + # Bug: https://bugs.gentoo.org/950699 + local -x SYSCONFDIR="${EPREFIX}/etc" + + local -x FISH_BUILD_DOCS + FISH_BUILD_DOCS="$(usex doc 1 0)" + + 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 +}