summaryrefslogtreecommitdiff
path: root/app-shells/bash
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-02-23 19:24:10 +0000
committerV3n3RiX <venerix@koprulu.sector>2025-02-23 19:24:10 +0000
commit575bcb9220287a6f0d2577db1fd9fe55d9d8b745 (patch)
tree52f12cfa140d4839d32305dd42eebe34e9686234 /app-shells/bash
parent4c5bd80830992553e02f099442277e10ee97372d (diff)
gentoo auto-resync : 23:02:2025 - 19:24:09
Diffstat (limited to 'app-shells/bash')
-rw-r--r--app-shells/bash/Manifest8
-rw-r--r--app-shells/bash/bash-5.3_beta_p20250109.ebuild411
-rw-r--r--app-shells/bash/bash-5.3_beta_p20250124.ebuild414
-rw-r--r--app-shells/bash/bash-5.3_beta_p20250128.ebuild414
-rw-r--r--app-shells/bash/bash-5.3_beta_p20250210.ebuild414
5 files changed, 0 insertions, 1661 deletions
diff --git a/app-shells/bash/Manifest b/app-shells/bash/Manifest
index c42bd8873e7c..4d55fb77a600 100644
--- a/app-shells/bash/Manifest
+++ b/app-shells/bash/Manifest
@@ -41,10 +41,6 @@ DIST bash-5.2.tar.gz 10950833 BLAKE2B 51b196e710794ebad8eac28c31c93eb99ac1a7db30
DIST bash-5.2.tar.gz.sig 95 BLAKE2B 2991b7c46ef1cdca08062f419be47fca7551f4c5d9aad8a5c1da74974f5e7707d23914b4cecf9b6c9610471146b2c49b611bb62a5d974f1c37cceb77b719851c SHA512 a161664f124f906be32709f66702f8f780e6d52e558ea45e71ec60a959c9435ff68477ee65a0a9f6c0051d5592f5044fb3b410cf3cd3ae5a8a323789b01be258
DIST bash-5.3-beta.tar.gz 10667630 BLAKE2B d6d3a1efd5ed69b131e2831e35c4a620968132e7d9da079de155decb4d3c736cd6c9f1180523e85dd41aeecdb9b380e4768bc551afafaee478168c462ce90929 SHA512 f8f02b4a90312c8e7c589efd1a0a43a4db3bcb47d19cb95190961e4ae254b2d6d26472197ce216868d914fe1adf62741f927552239559a1c3b2c64dfcfaa8cb0
DIST bash-5.3-beta.tar.gz.sig 94 BLAKE2B a4b85d5755e200abddd5669c3d21b1ee6be8036b27934e25473c14b15ffc1bc7cbbd5a94f39a0dc6bf6050908590509f0ba39d28c33947154cc966e11d454c8c SHA512 72184ca2afe3d0c8c2165516499a61da2aecc0c8c83661cab0038c3d849623115729d2ade73c4b5973ea9b5e8169af4bc2aea51f0b70356af26342285adab2f5
-DIST bash-5.3_beta_p20250109-2ea356081dbfbac2c791f9b8072ed4b824e3d9df.tar.gz 15708913 BLAKE2B 0fcfb544b4c167ddb6e6bebde283519d4dd0ea95d531c6d499b5bbbc073ec355955a6f0fcaf9efe6de57fc8395f72636ebb077c4bc2506e58b30c2c98429e528 SHA512 7200a9e2bedbcb2b6ffabf32f324df33e6d9f8a12155f9112a22588d313c197202e3ae96930a7ab2d454e45b7ef708afabb371bb7ba13c1ee0d1b9ad58b77cac
-DIST bash-5.3_beta_p20250124-25e213a551dc808c7f29360075bad4806fb9fec5.tar.gz 15722261 BLAKE2B 6c948112e782bb1d633951ac6f93e9f3ebf3937624b2823dc5a4b304abd109eb307415ad915c55e96d78c2b0831702bcbff308a95830e4cd153e837746fdaeed SHA512 012c5830aa1f55ea7ad57ad23a518406208d32cff78f911f2c87257e3653bb7efd1638f875a1df66c7babbc2b0530b97af72d111917e336b9131086f4e3fdee9
-DIST bash-5.3_beta_p20250128-0390b4354a9e5df517ef2d4f9d78a099063b22b4.tar.gz 15725245 BLAKE2B 381c8c069c245f4a93c4cbda31d2a26951491425b0dce590f2100325ff0a6ce2cd97b48aaccbf800d94b691ed5a1686343ee244ae8e7bd442504a5c3fb416b03 SHA512 2c212e49d2be8f195bdf338b723872ed69c655a933c5bf540496f5b5bf8fa8510715df29996e9737d718331bdbbce30317f99896687ea576d36bec36aa56a884
-DIST bash-5.3_beta_p20250210-3cfc255efe9a05fe8b28cc03a1b6a3fac59741c0.tar.gz 15724570 BLAKE2B 253a9fe0ad81541421a640c17b4178f3569e85bcf02639492b9b87c7437d2bf4f0430648094383942e0110ac3c1130fc18aa1140dafd4fe085aaef4351c31510 SHA512 e2a30d3a894a310af63dd82be88df856d7064898138600597c50e5b0c7e5a942e14f7336b79dac847419a1008f1c47cf2eda43fb528988afa253b216c12d4ad6
DIST bash-5.3_beta_p20250212-c3ca11424d2ae66cafa2f931b008dfb728e209a5.tar.gz 15731015 BLAKE2B a2409a10d4ee849ba3589a7eb988b99dacf888933d0d05eddda6f4ed44ddffead761d5530c49d732b158cc818569671c9cf5129b617ccf45f9b9e86659d6d1fd SHA512 166e52bfae6c07f6791c11cd80924419f7c4bbd841bfc69565b2ab298d5179ebc4c639c1dd0491136f10e686f9080c6f23b601e8225fe0dc8b633c7f79977c82
DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071
DIST bash205b-002 755 BLAKE2B 6a6ed5679d451f02f8104b345c1722d11718ce3b4043b581c17786d40d8da69a34786fb56d0c363dba277b8e9dd33f12f70c9cc73a9fc39ba4a8319406f0458d SHA512 46947b0229478d5c2cfeff68b8ebc00e4ef0c8b94e336ca12f72b4490ba3622c0240c01c17c1641c3b07adc2c64ec94d6d780365e8990768ec8888f3a9526883
@@ -483,10 +479,6 @@ EBUILD bash-5.0_p18-r3.ebuild 6559 BLAKE2B c264bd72d3e69d1fda3bb9fb15ea331269dcd
EBUILD bash-5.1_p16-r14.ebuild 7505 BLAKE2B f294e53426c8b2bc69f7e53ae0d68aafcfcc965474c971c03235b6a80f45f65f0166b970952a0dddd974e1667a9a6feb54f89c520d745f9e1377a6a7e14d0a81 SHA512 2822edee1a804a6035c650e3ef678471a8de58ad2180193dc4ed5f55bd993c6a24efe9ba1629a25d89f391bbc5cd96675367bf562ddcd4812faca3e4d5a2f7fa
EBUILD bash-5.2_p37.ebuild 11864 BLAKE2B fbc51a614a3cd31d434e578600c4b4183520e008ccd005fd5edecbe6272d01264e0612a45f6537d994f057572e78bbf68fcd2dc3832f6b9d7650236a4eb856c2 SHA512 148edbf2b3479f3b70238fa182075db8a65dc364e7627498e11ad52b9fc073b36e8a570b0321106835b690902a6ceecbd8b2064ef6f82dae5c3cdf4c2b6bbcd0
EBUILD bash-5.3_beta.ebuild 12151 BLAKE2B 5cf02450b8bce041d6f302c2c16b5c722595eafc6db3a2ca1e71828fc13024ec5a43c66112edf885668c64dc4ad4b5806586105d202d6da81374077c1ee54934 SHA512 601a3ed600d8ee0c5be161e8f092083e922c2c85f9e9bedc92ffb15e71aeaae699db6657fa88db3471d781820951bf1b618e2ed511fb832d713975eff1a20913
-EBUILD bash-5.3_beta_p20250109.ebuild 12151 BLAKE2B f358e219a73dbba773c6f7c468b1682ea7b6068dc3ac63af62653b47fe8a4c1f565bbaa7fdb94fb99069d449c5ab4f35ec4e3ab495ea241e33253011d9e5ec12 SHA512 e80065ced92ae08beac8b472098570512d2172296bb91ce9a12f7d213edf1997fdeccb03f4cb7355275b8d12e4a3761f2353919baea5881f0edc68a9e076b0ba
-EBUILD bash-5.3_beta_p20250124.ebuild 12356 BLAKE2B d40de08c4b6a492cfe5cff70639e2abf7561fddc7ead1fe031b02ca317dfc653f9b2bab698b5ada97b33bcfc613d88abfa063443cdcf0eedafbdce7b2b5c273e SHA512 be80b3cb1f4b1743bb41c00ff9f953711806e9ab860ab08050d19835d0ccb181512367e0184517cdce24f35a77e75eb847c9c2ac9638ea10b17864971575fb7d
-EBUILD bash-5.3_beta_p20250128.ebuild 12356 BLAKE2B ed73e30e57890711f207cf588a62c81131752cd3dcdfd29f2a001d8de427e2a54cf9cad0297d8535ad2d2404409d1695e56cac90adccf4f91572935e873f0c7f SHA512 105b91ba865aa0e2fc64de02a0dccab5c9aef324e8b6b46b5bc8d6eb37b06b13f19856d492d622285e0d4f54931987696a19526d586d80c56bc5f12cad1ca89e
-EBUILD bash-5.3_beta_p20250210.ebuild 12356 BLAKE2B 55fab1816c40551014b84f5b262e1faa4dac5eae54f6985d6257128d67c5a3f6aa26940fcccf2145ba25d58af9e3a59816125f484f1de102d99bcd9c9119726d SHA512 5d9b540e287a491f4eca35892e5ea77f91ed2063f190bdaf260dd3aed1699714949073484672e91386d1d1a0bcd671209e5ae44be65bcf489da2ab7a99e57600
EBUILD bash-5.3_beta_p20250212.ebuild 12356 BLAKE2B 491a4cdffebc96282514f8e9c85d716135562d4e2d6bd4273cc8ec22516c37117c17ba8c23b50e5c9653ab7058a423b48502699a3720a5f137f9ace1f93eb42a SHA512 08fa617e2db043d46912ffad181e373235b0a81820f5d7d84928717d4d9f2df0898a6fe11894951ee33596046863fe0e4a77e50ea1cdba2fa9a9f4aae846ed9c
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_beta_p20250109.ebuild b/app-shells/bash/bash-5.3_beta_p20250109.ebuild
deleted file mode 100644
index b7349ed9f90e..000000000000
--- a/app-shells/bash/bash-5.3_beta_p20250109.ebuild
+++ /dev/null
@@ -1,411 +0,0 @@
-# Copyright 1999-2025 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="2ea356081dbfbac2c791f9b8072ed4b824e3d9df"
- 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/bash/bash-5.3_beta_p20250124.ebuild b/app-shells/bash/bash-5.3_beta_p20250124.ebuild
deleted file mode 100644
index c4d191110df3..000000000000
--- a/app-shells/bash/bash-5.3_beta_p20250124.ebuild
+++ /dev/null
@@ -1,414 +0,0 @@
-# Copyright 1999-2025 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="25e213a551dc808c7f29360075bad4806fb9fec5"
- 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
-
- # builtins/evalstring.c needs y.tab.h but can't (easily) specify the dep on it from above
- emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" y.tab.h
- 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[*]}" y.tab.h
- 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/bash/bash-5.3_beta_p20250128.ebuild b/app-shells/bash/bash-5.3_beta_p20250128.ebuild
deleted file mode 100644
index 028070f3ef4a..000000000000
--- a/app-shells/bash/bash-5.3_beta_p20250128.ebuild
+++ /dev/null
@@ -1,414 +0,0 @@
-# Copyright 1999-2025 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="0390b4354a9e5df517ef2d4f9d78a099063b22b4"
- 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
-
- # builtins/evalstring.c needs y.tab.h but can't (easily) specify the dep on it from above
- emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" y.tab.h
- 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[*]}" y.tab.h
- 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/bash/bash-5.3_beta_p20250210.ebuild b/app-shells/bash/bash-5.3_beta_p20250210.ebuild
deleted file mode 100644
index ac7775b33170..000000000000
--- a/app-shells/bash/bash-5.3_beta_p20250210.ebuild
+++ /dev/null
@@ -1,414 +0,0 @@
-# Copyright 1999-2025 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="3cfc255efe9a05fe8b28cc03a1b6a3fac59741c0"
- 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
-
- # builtins/evalstring.c needs y.tab.h but can't (easily) specify the dep on it from above
- emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" y.tab.h
- 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[*]}" y.tab.h
- 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
-}