diff options
Diffstat (limited to 'app-shells')
-rw-r--r-- | app-shells/Manifest.gz | bin | 10633 -> 10636 bytes | |||
-rw-r--r-- | app-shells/bash/Manifest | 2 | ||||
-rw-r--r-- | app-shells/bash/bash-5.3_alpha_p20241018.ebuild | 411 | ||||
-rw-r--r-- | app-shells/mksh/Manifest | 3 | ||||
-rw-r--r-- | app-shells/mksh/mksh-59c.ebuild | 6 | ||||
-rw-r--r-- | app-shells/mksh/mksh-9999.ebuild | 90 |
6 files changed, 508 insertions, 4 deletions
diff --git a/app-shells/Manifest.gz b/app-shells/Manifest.gz Binary files differindex c036e054e43b..c190bf701fd0 100644 --- a/app-shells/Manifest.gz +++ b/app-shells/Manifest.gz diff --git a/app-shells/bash/Manifest b/app-shells/bash/Manifest index 4d0edc7fe01b..dc4d21056a33 100644 --- a/app-shells/bash/Manifest +++ b/app-shells/bash/Manifest @@ -44,6 +44,7 @@ DIST bash-5.2.tar.gz.sig 95 BLAKE2B 2991b7c46ef1cdca08062f419be47fca7551f4c5d9aa DIST bash-5.3-alpha.tar.gz 11195025 BLAKE2B b3325f6927d7dde86aae165891317b972f0b9814e134676b3d7d3aea81ce4d4cad1a01f160e290352072153ad3568ee21701a35190ef5e6274b3c03fc95c8d42 SHA512 52354eb7cd71330192ec76fdda04bcacf758a312e89b45558db5f5345f19b0d8e54732049934958cf89786f5bd7c538d88859eb8d8d22dabfc9ec7305263d10e DIST bash-5.3-alpha.tar.gz.sig 95 BLAKE2B 69c8b33fe2a40498662ef084967701cff1926086785a41d6f49a3c2e2b9908499226d3d970bdb6397a74d3ccc22acb3651261ad2a421799eb135c64a78af8589 SHA512 c9587da66457e2010b0852c6dbf5949821a543b7f1b616a4d016df3477913e2a655c57289e83adeeb31b8b8afca22313e3af76cf727b93932d33a889c1263c20 DIST bash-5.3_alpha_p20241015-3ed028ccec871bc8d3b198c1681374b1e37df7cd.tar.gz 15914321 BLAKE2B 7ded011dbba5d9a017a03a7d8dca9bad3baaece4407c69f89f4aeb117bdac25e916e189bff38496ae127964ce5779a2dcf1de3d62b59d54f16a5c2811bfa09e3 SHA512 128d8f4bed5c69e6af8784607f4ef995d45a58a11ab9c47112d95459ef881e06f165406a337fd4ef12ab637883fd83a4c60b0a8a2a265ecd4ffead0786247fc4 +DIST bash-5.3_alpha_p20241018-261c6e8cc6c59b63be3a1597aadec72e9cf5ae72.tar.gz 15933785 BLAKE2B 95a5fd2e16e4d7e4b7c0d503887a99c2ba8570d9218d64b66397b063620732d504ce75491e98f9f363144d6ca88c35988c6a724e2253d3b2bac49fb75f6076c2 SHA512 ecd51f3b347377de5007dd3cfc68e37990125ab5a89691a4fbb08461e57066565f31137d3c5876a78300af0cd4cb487b263319c921676e985357cf37439a3b9b DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071 DIST bash205b-002 755 BLAKE2B 6a6ed5679d451f02f8104b345c1722d11718ce3b4043b581c17786d40d8da69a34786fb56d0c363dba277b8e9dd33f12f70c9cc73a9fc39ba4a8319406f0458d SHA512 46947b0229478d5c2cfeff68b8ebc00e4ef0c8b94e336ca12f72b4490ba3622c0240c01c17c1641c3b07adc2c64ec94d6d780365e8990768ec8888f3a9526883 DIST bash205b-003 2356 BLAKE2B b7887d00d92fd298cd07a15e1c73b516dabd22ecd74c97091636dd97a0cd55024ed698e5cc924c4311d994dd326b1ad074bea35e7650cf9cf4e25c60d2713fa7 SHA512 74528ca5d165b812d299f1c69b47757bd677c0b22ce4217e155cd641708b02364a93c6709fb57b546b376b36da74429a61493921c7c199563da40ddcf1c1f399 @@ -484,5 +485,6 @@ EBUILD bash-5.2_p26-r8.ebuild 11724 BLAKE2B 742be91c15145ee77dd4611f6847256b2f1d EBUILD bash-5.2_p37.ebuild 11731 BLAKE2B addc11c3f6125f234e06b7f693425824f14c20f37637b3bd6537df3e335e9459812e4512ae19e822f5c94bbe122061ead37cf83af0a1ad3ed077dd2e023b4348 SHA512 83d98420f0567997d1e91a3302d6844f75815a1749e74c3c8c8b5ddd1c08d794978922e633ae325892639be516fb9999abeb817b250dbc0067c075acf1319a56 EBUILD bash-5.3_alpha-r5.ebuild 11560 BLAKE2B ddc3a3eb579849d0ab989f96f79212ac1438dd9cd61c618aa5a3ad4b0e60a6bf9452ca6063d3f7fd4742176ef8f3c991bb51440e59b7a2c08e61c73f6acad313 SHA512 06b44f783b7e0e47e1eee18c95614068e5e1111c8acc9255c4756285919ece70189fe0c6a00abe0732921dfff9b9ae751de85c5d5d0c27c57dd8ada7d0b3686f EBUILD bash-5.3_alpha_p20241015.ebuild 12151 BLAKE2B c2616dce70988d04b6365d3e49d17ed38a3401eba3e5ffbd58131cf21d80a725bc8acae56ad68e4a7a583b22df667c864352f4908e909e3b7f8c21f7101508da SHA512 f219184e35bad24b08a6369e9dd52b46e17d050afe6f82257904fdede88171032e49ebd12a5aeab4601a1dc4a0bfbb1457eb176de58c1240007ae61292e907ab +EBUILD bash-5.3_alpha_p20241018.ebuild 12151 BLAKE2B 4ecbf4d7096e988f785feed0f2d57fa0ad5debbc87d7d7a2954e228bbf179763cb2790176abb31767120f860e60a675d856b48137309de931d729df51eb63cfd SHA512 fd36298289c1b8a606fc0c7c7e4aaaca7e7e84f1eca30c0a084f66db319e6ca7b210a0b1ff619159175946ecf0706e4caea6ac385166bba160f552935dd25ff5 EBUILD bash-9999.ebuild 12151 BLAKE2B 2a196c15c43c613d03ca3ea480bdb4151b189a9b7c71a104b76268e6c051b12d4497a4d55af6dd2df10d5a9541778fb396b9c0a30cefdc16ea435f9a604e1a2b SHA512 d50d982e70df19288f69c6194b9d893cbee7fcf07034e7ba50495b3e25e6b5aba4e481f82d3781fcc9c7b1461b8d89158ea02465bc6f64105cb7489299cc267c MISC metadata.xml 1009 BLAKE2B f71587b0a6d05b907f82b26be93b071290d91dc8f612f7b008a05eaa94d45be2ef8c1d992b7ac886648a9dcf964c30e8d9a7aff90d44835beb452e0d635b9533 SHA512 8aa1cb4c3206a76d10181394a91c315967fd9d3b359194f430f075fdd5a0b4b32149eec36b85412ef7e84b55e7b01955c75486b2df82b392a5acb3df8229a88d diff --git a/app-shells/bash/bash-5.3_alpha_p20241018.ebuild b/app-shells/bash/bash-5.3_alpha_p20241018.ebuild new file mode 100644 index 000000000000..c154d562ba4a --- /dev/null +++ b/app-shells/bash/bash-5.3_alpha_p20241018.ebuild @@ -0,0 +1,411 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc +inherit flag-o-matic toolchain-funcs prefix verify-sig + +# Uncomment if we have a patchset. +#GENTOO_PATCH_DEV="sam" +#GENTOO_PATCH_VER="${PV}" + +MY_PV=${PV/_p*} +MY_PV=${MY_PV/_/-} +MY_P=${PN}-${MY_PV} +MY_PATCHES=() + +# Determine the patchlevel. +case ${PV} in + 9999|*_alpha*|*_beta*|*_rc*) + # Set a negative patchlevel to indicate that it's a pre-release. + PLEVEL=-1 + ;; + *_p*) + PLEVEL=${PV##*_p} + ;; + *) + PLEVEL=0 +esac + +# The version of readline this bash normally ships with. Note that we only use +# the bundled copy of readline for pre-releases. +READLINE_VER="8.3_alpha" + +DESCRIPTION="The standard GNU Bourne again shell" +HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git" + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" + EGIT_BRANCH=devel + inherit git-r3 +elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + # It can be useful to have snapshots in the pre-release period once + # the first alpha is out, as various bugs get reported and fixed from + # the alpha, and the next pre-release is usually quite far away. + # + # i.e. if it's worth packaging the alpha, it's worth packaging a followup. + BASH_COMMIT="261c6e8cc6c59b63be3a1597aadec72e9cf5ae72" + SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" + S=${WORKDIR}/${PN}-${BASH_COMMIT} +else + my_urls=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}.tar.gz" ) + + # bash-5.1 -> bash51 + my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.} + + for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do + printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}" + my_urls+=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}-patches/${my_patch_ver}" ) + MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" ) + done + + SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )" + S=${WORKDIR}/${MY_P} + + unset -v my_urls my_p my_patch_idx my_patch_ver +fi + +if [[ ${GENTOO_PATCH_VER} ]]; then + SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz" +fi + +LICENSE="GPL-3+" +SLOT="0" +if (( PLEVEL >= 0 )); then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi +IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" + +DEPEND=" + >=sys-libs/ncurses-5.2-r2:= + nls? ( virtual/libintl ) +" +if (( PLEVEL >= 0 )); then + DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )" +fi +RDEPEND=" + ${DEPEND} +" +# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011). +BDEPEND=" + pgo? ( dev-util/gperf ) + verify-sig? ( sec-keys/openpgp-keys-chetramey ) +" + +# EAPI 8 tries to append it but it doesn't exist here. +QA_CONFIGURE_OPTIONS="--disable-static" + +PATCHES=( + #"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/ + + # Patches to or from Chet, posted to the bug-bash mailing list. + "${FILESDIR}/${PN}-5.0-syslog-history-extern.patch" +) + +pkg_setup() { + # bug #7332 + if is-flag -malign-double; then + eerror "Detected bad CFLAGS '-malign-double'. Do not use this" + eerror "as it breaks LFS (struct stat64) on x86." + die "remove -malign-double from your CFLAGS mr ricer" + fi + + if use bashlogger; then + ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs." + ewarn "This will log ALL output you enter into the shell, you have been warned." + fi +} + +src_unpack() { + local patch + + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + default + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig} + + for patch in "${MY_PATCHES[@]}"; do + verify-sig_verify_detached "${patch}"{,.sig} + done + fi + + unpack "${MY_P}.tar.gz" + + if [[ ${GENTOO_PATCH_VER} ]]; then + unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz" + fi + fi +} + +src_prepare() { + # Include official patches. + (( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}" + + # Clean out local libs so we know we use system ones w/releases. The + # touch utility is invoked for the benefit of config.status. + if (( PLEVEL >= 0 )); then + rm -rf lib/{readline,termcap}/* \ + && touch lib/{readline,termcap}/Makefile.in \ + && sed -i -E 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in \ + || die + fi + + # Prefixify hardcoded path names. No-op for non-prefix. + hprefixify pathnames.h.in + + # Avoid regenerating docs after patches, bug #407985. + sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \ + && touch -r . doc/* \ + || die + + # Sometimes hangs (more noticeable w/ pgo), bug #907403. + rm tests/run-jobs || die + + eapply -p0 "${PATCHES[@]}" + eapply_user +} + +src_configure() { + local -a myconf + + # Upstream only test with Bison and require GNUisms like YYEOF and + # YYERRCODE. The former at least may be in POSIX soon: + # https://www.austingroupbugs.net/view.php?id=1269. + # configure warns on use of non-Bison but doesn't abort. The result + # may misbehave at runtime. + unset -v YACC + + # wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported + # upstream to Chet by email. + filter-lto + + myconf=( + --disable-profiling + + # Force linking with system curses ... the bundled termcap lib + # sucks bad compared to ncurses. For the most part, ncurses + # is here because readline needs it. But bash itself calls + # ncurses in one or two small places :(. + --with-curses + + $(use_enable mem-scramble) + $(use_enable net net-redirections) + $(use_enable readline) + $(use_enable readline bang-history) + $(use_enable readline history) + $(use_with afs) + $(use_with mem-scramble bash-malloc) + ) + + # For descriptions of these, see config-top.h. + # bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426 + append-cppflags \ + -DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \ + -DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \ + -DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \ + -DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \ + -DNON_INTERACTIVE_LOGIN_SHELLS \ + -DSSH_SOURCE_BASHRC \ + $(use bashlogger && echo -DSYSLOG_HISTORY) + + use nls || myconf+=( --disable-nls ) + + if (( PLEVEL >= 0 )); then + # Historically, we always used the builtin readline, but since + # our handling of SONAME upgrades has gotten much more stable + # in the PM (and the readline ebuild itself preserves the old + # libs during upgrades), linking against the system copy should + # be safe. + # Exact cached version here doesn't really matter as long as it + # is at least what's in the DEPEND up above. + export ac_cv_rl_version=${READLINE_VER%%_*} + + # Use system readline only with released versions. + myconf+=( --with-installed-readline=. ) + fi + + if use plugins; then + append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash" + else + # Disable the plugins logic by hand since bash doesn't provide + # a way of doing it. + export ac_cv_func_dl{close,open,sym}=no \ + ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no + + sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die + fi + + # bug #444070 + tc-export AR + + econf "${myconf[@]}" +} + +src_compile() { + local -a pgo_generate_flags pgo_use_flags + local flag + + # -fprofile-partial-training because upstream notes the test suite isn't + # super comprehensive. + # https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo + if use pgo; then + pgo_generate_flags=( + -fprofile-update=atomic + -fprofile-dir="${T}"/pgo + -fprofile-generate="${T}"/pgo + ) + pgo_use_flags=( + -fprofile-use="${T}"/pgo + -fprofile-dir="${T}"/pgo + ) + if flag=$(test-flags-CC -fprofile-partial-training); then + pgo_generate_flags+=( "${flag}" ) + pgo_use_flags+=( "${flag}" ) + fi + fi + + emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" + use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others + + # Build Bash and run its tests to generate profiles. + if (( ${#pgo_generate_flags[@]} )); then + # Used in test suite. + unset -v A + + emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check + + if tc-is-clang; then + llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die + fi + + # Rebuild Bash using the profiling data we just generated. + emake clean + emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" + use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others + fi +} + +src_test() { + # Used in test suite. + unset -v A + + default +} + +src_install() { + local d f + + default + + my_prefixify() { + while read -r; do + if [[ $REPLY == *$1* ]]; then + REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"} + fi + printf '%s\n' "${REPLY}" || ! break + done < "$2" || die + } + + dodir /bin + mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die + dosym bash /bin/rbash + + insinto /etc/bash + doins "${FILESDIR}"/bash_logout + my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc + + insinto /etc/bash/bashrc.d + my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color.bash | newins - 10-gentoo-color.bash + newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.bash 10-gentoo-title.bash + if [[ ! ${EPREFIX} ]]; then + doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash + fi + + insinto /etc/skel + for f in bash{_logout,_profile,rc}; do + newins "${FILESDIR}/dot-${f}" ".${f}" + done + + if use plugins; then + exeinto "/usr/$(get_libdir)/bash" + set -- examples/loadables/*.o + doexe "${@%.o}" + + insinto /usr/include/bash-plugins + doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h} + fi + + if use examples; then + for d in examples/{functions,misc,scripts,startup-files}; do + exeinto "/usr/share/doc/${PF}/${d}" + docinto "${d}" + for f in "${d}"/*; do + if [[ ${f##*/} != @(PERMISSION|*README) ]]; then + doexe "${f}" + else + dodoc "${f}" + fi + done + done + fi + + # Install bash_builtins.1 and rbash.1. + emake -C doc DESTDIR="${D}" install_builtins + sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die + doman "${T}"/rbash.1 + + newdoc CWRU/changelog ChangeLog + dosym bash.info /usr/share/info/bashref.info +} + +pkg_preinst() { + if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then + mkdir -p -- "${EROOT}"/etc/bash \ + && mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \ + || die + fi +} + +pkg_postinst() { + local old_ver + + # If /bin/sh does not exist, provide it. + if [[ ! -e ${EROOT}/bin/sh ]]; then + ln -sf -- bash "${EROOT}"/bin/sh || die + fi + + read -r old_ver <<<"${REPLACING_VERSIONS}" + if [[ ! $old_ver ]]; then + : + elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + return + fi + + while read -r; do ewarn "${REPLY}"; done <<'EOF' +Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. + +Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the +characteristics of the operating environment, it may contain a command to set +the terminal's window title. Those who were already choosing to customise the +PROMPT_COMMAND variable are now advised to append their commands like so: + +PROMPT_COMMAND+=('custom command goes here') + +Gentoo no longer defaults to having bash set the window title in the case +that the terminal is controlled by sshd(8), unless screen is launched on the +remote side or the terminal reliably supports saving and restoring the title +(as alacritty, foot and tmux do). Those wanting for the title to be set +regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d +drop-in - to set PROMPT_COMMMAND like so: + +PROMPT_COMMAND=(genfun_set_win_title) + +Those who would prefer for bash never to interfere with the window title may +now opt out of the default title setting behaviour, either with the "unset -v +PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. +EOF +} diff --git a/app-shells/mksh/Manifest b/app-shells/mksh/Manifest index c71639fcd26d..028b814258cf 100644 --- a/app-shells/mksh/Manifest +++ b/app-shells/mksh/Manifest @@ -1,3 +1,4 @@ DIST mksh-R59c.tgz 442736 BLAKE2B 4e1b6e6fc69b27d01e262a5622191515fa71d29e81a3f10fb60458542506874b49f60f9af1e28c1cd266c63c91e3287579ab6bda00c39b7388445b19c969fa22 SHA512 f56b6956f9e1dd88ddce2294301a5eb698050d9d4f49286fdcd8f9df8554eabbcc71d37e2bf3eb7234e3968a17231cc6de8aa7efbf17768834a90b14e8cdf340 -EBUILD mksh-59c.ebuild 1942 BLAKE2B f988b7b882c98c989729f4359a1363dfaba2104bc5041e748d5ccb6aef129d995ece03f909a2986beb8df26fea2385ccbd65fd43f463e4231bbebaf3b06790c8 SHA512 521073a63467e394b6e304a54fb47e1062e271b62fb7e1777025b79a9d8f0a3ee65ea581c60b829ca66f6172349801c2bf968dbf06907a74199b62438386633e +EBUILD mksh-59c.ebuild 1997 BLAKE2B 4e01871df364e2e4eac92916dd4fd57602cb4e095c755b1c9ff90b1f1c26685087dd1abb48a1ecebf383876c8f25355890068cf11db9419d1137047e081ea32b SHA512 aac624dcc5e4f2084feb44870dace89113b62632048af84555f0c2579aa5904b8e8f429bc9c59b44055ccb394b5fc3d4ca48be0ce172be22ee1713b5edaaadaf +EBUILD mksh-9999.ebuild 1998 BLAKE2B e2586d58783170f2bfdf5a717d52af6a684d6702bf65edc33bdee46db1cbbb274b26c1b06c3633922ac3250a44bb9452b33d4f95475c30dcff2054f6e2eedf15 SHA512 882937fe1f85031ec93ff8b6fdb6f1dc609e548af8733de2e1d3d7fd879476f910bec7003cb37057cb15c65838c1903fd6db40ae50a4c9802bea49654cb33c57 MISC metadata.xml 596 BLAKE2B c65d930e2a67da2a937dfadc2364d5f55807097faec84aa631fed278ee6551f59e2b485a879de1d966987cd2fac8fcf6185ebe18ba004e80d08a19709d2e3521 SHA512 c4f170e1dd27bc9bb305f75c34d23f057be4a48da522b12044b8b4bd3070af1140d0d2268f41d890078896176630523e29fb5ce7b50ab548b04e4f69d1633384 diff --git a/app-shells/mksh/mksh-59c.ebuild b/app-shells/mksh/mksh-59c.ebuild index 09bf32351049..2921a6d7f5c8 100644 --- a/app-shells/mksh/mksh-59c.ebuild +++ b/app-shells/mksh/mksh-59c.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -10,6 +10,7 @@ if [[ ${PV} == *9999 ]] ; then ECVS_MODULE="mksh" ECVS_USER="_anoncvs" ECVS_AUTH="ext" + ECVS_SSH_EXTRA_OPTS=( "-oHostKeyAlgorithms=+ssh-rsa" ) inherit cvs else SRC_URI="https://www.mirbsd.org/MirOS/dist/mir/mksh/${PN}-R${PV}.tgz" @@ -19,6 +20,7 @@ fi DESCRIPTION="MirBSD Korn Shell" # Host is TLSv1.0-only, keep to http for compatibility with modern browsers HOMEPAGE="http://mirbsd.de/mksh" +S="${WORKDIR}/${PN}" # See http://www.mirbsd.org/TaC-mksh.txt or ${S}/www/files/TaC-mksh.txt # MirOS for most of it @@ -37,8 +39,6 @@ DEPEND=" ) " -S="${WORKDIR}/${PN}" - src_prepare() { default if use lksh; then diff --git a/app-shells/mksh/mksh-9999.ebuild b/app-shells/mksh/mksh-9999.ebuild new file mode 100644 index 000000000000..5c43ce0c33a5 --- /dev/null +++ b/app-shells/mksh/mksh-9999.ebuild @@ -0,0 +1,90 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +if [[ ${PV} == *9999 ]] ; then + ECVS_SERVER="anoncvs.mirbsd.org:/cvs" + ECVS_MODULE="mksh" + ECVS_USER="_anoncvs" + ECVS_AUTH="ext" + ECVS_SSH_EXTRA_OPTS=( "-oHostKeyAlgorithms=+ssh-rsa" ) + inherit cvs +else + SRC_URI="https://www.mirbsd.org/MirOS/dist/mir/mksh/${PN}-R${PV}.tgz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" +fi + +DESCRIPTION="MirBSD Korn Shell" +# Host is TLSv1.0-only, keep to http for compatibility with modern browsers +HOMEPAGE="http://mirbsd.de/mksh" +S="${WORKDIR}/${PN}" + +# See http://www.mirbsd.org/TaC-mksh.txt or ${S}/www/files/TaC-mksh.txt +# MirOS for most of it +# BSD for when strlcpy(3) is absent, such as with glibc +# unicode for some included Unicode data +# ISC if the printf builtin is used, not currently the case +LICENSE="MirOS BSD unicode" +SLOT="0" +IUSE="lksh static test" +RESTRICT="!test? ( test )" + +DEPEND=" + test? ( + dev-lang/perl + sys-apps/ed + ) +" + +src_prepare() { + default + if use lksh; then + cp -pr "${S}" "${S}"_lksh || die + fi +} + +src_compile() { + tc-export CC + use static && export LDSTATIC="-static" + export CPPFLAGS="${CPPFLAGS} -DMKSH_DEFAULT_PROFILEDIR=\\\"${EPREFIX}/etc\\\"" + + if use lksh; then + pushd "${S}"_lksh >/dev/null || die + CPPFLAGS="${CPPFLAGS} -DMKSH_BINSHPOSIX -DMKSH_BINSHREDUCED" \ + sh Build.sh -r -L || die + popd >/dev/null || die + fi + + sh Build.sh -r || die + sh FAQ2HTML.sh || die +} + +src_test() { + einfo "Testing regular mksh." + ./mksh test.sh -v || die + + if use lksh; then + einfo "Testing lksh, POSIX long-bit mksh." + pushd "${S}"_lksh >/dev/null || die + ./lksh test.sh -v || die + popd >/dev/null || die + fi +} + +src_install() { + into / + dobin mksh + dosym mksh /bin/rmksh + doman mksh.1 + dodoc dot.mkshrc + dodoc FAQ.htm + + if use lksh; then + dobin "${S}"_lksh/lksh + dosym lksh /bin/rlksh + doman "${S}"_lksh/lksh.1 + fi +} |