From 809258809a4257101af1474a6a00274433e54aef Mon Sep 17 00:00:00 2001 From: Flatcar Buildbot Date: Mon, 2 Mar 2026 07:23:50 +0000 Subject: [PATCH] app-shells/bash: Sync with Gentoo It's from Gentoo commit 68531e0634cc5114e0759bbb657f13bb63569371. Signed-off-by: Flatcar Buildbot --- .../portage-stable/app-shells/bash/Manifest | 3 - .../app-shells/bash/bash-5.3_p3-r3.ebuild | 464 ----------------- .../app-shells/bash/bash-5.3_p8.ebuild | 463 ----------------- .../bash/bash-5.4_alpha_pre20251027.ebuild | 468 ------------------ .../bash/bash-5.4_alpha_pre20251119.ebuild | 468 ------------------ .../bash/bash-5.4_alpha_pre20251124.ebuild | 468 ------------------ .../bash/files/bash-5.3-read-sys.patch | 19 - 7 files changed, 2353 deletions(-) delete mode 100644 sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r3.ebuild delete mode 100644 sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p8.ebuild delete mode 100644 sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251027.ebuild delete mode 100644 sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251119.ebuild delete mode 100644 sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251124.ebuild delete mode 100644 sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3-read-sys.patch diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/Manifest b/sdk_container/src/third_party/portage-stable/app-shells/bash/Manifest index 98a1ea9910..332795ab8e 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/Manifest @@ -24,9 +24,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.tar.gz 11355854 BLAKE2B 82d1b54322bbd1e8c2a93380f1b2888a42a1d7186e504f41cee705a0fdd41463d8f20baa1755051e1396192f8ebd089524767d933a9e0b5fb76f2588601539bb SHA512 426702c8b0fb9e0c9956259973ce5b657890fd47f4f807a64febf20077bb48d0b91474ed6e843d2ef277186b46c5fffa79b808da9b48d4ec027d5e2de1b28ed8 DIST bash-5.3.tar.gz.sig 95 BLAKE2B 2fb04e4f699fdee6e583581821cf9a5fa435a00febf7893a344371f11ccb964545386c98dfb2d8f5d0efc74aafe9d491b544e90ae4716bdc286ac48d942430f0 SHA512 c77c0898f03e80a042574a486686cc296b96426f6cdb7a6d2376ecd5182ba03477bfcbd95ea3db499c11866d3f4ae99012a37662ccb6f83dfd6b59f671349dc7 -DIST bash-5.4_alpha_pre20251027-c299f535be51179b1e0c989ad9ba4365e182ec28.tar.gz 16575720 BLAKE2B d3bc83b5ad252f84037d9639b1eaee13e56a006f2c0fe4b4bc00c662f05067965d8f26dca886137947f80bd923491fb5feaebb992e1f7515b7298715237b35dc SHA512 52698edc1d70029c8212a23457b5384942614e05c225cf66cea34290aacaf2e85f07ca4106f2ce242dff84d89ed45051f79cb4646cb2a22c4f74513f62c6393d -DIST bash-5.4_alpha_pre20251119-bcac47f08a6e8f04893f3f282bb841ddc07fc2e8.tar.gz 16577303 BLAKE2B 4a19a480deee6ce1d160081bb0b40c7dbcbd25ae8cb5bf06149c5f270ca4a8bad4f76263d65b2a7cd4ef2f70108536f71f5d0c1502b0b72f9ec1f0d6b6efa795 SHA512 ae5139f300bcee7434df202754ba6b8fea263ee25b5fa8dd69e2ac828d1004a8ab903660dc80dec379283bebc0bc7b7148b7277dc66c0c2141feb2b05c3422ce -DIST bash-5.4_alpha_pre20251124-4e705ed53ac364ee110f0b2fbeeab9d3301fcb6b.tar.gz 16578133 BLAKE2B 2208bbb4c81fe9d844bbf91e24226bf03e2f9f21fd736fa4f8703b050ea18ab7fa2301ec697687d768138cf0641a26b33829312426c5d5b47eff875e0c5c2aa6 SHA512 460b8992abfde82be90b50f46ecb32ae92bb0052c888591e0b16c7523eb4290d6b1594c1ab3c6a9ec33c23da5847ace4bf8dceb6036e7e33bbb5c712a95044c2 DIST bash-5.4_alpha_pre20251202-5a104e96d869e2bbf0f7f364f45d21e6fc151721.tar.gz 16555426 BLAKE2B b8c28236cbc70c54b8aacb2e0826904e4cc6a00d9385c99aa07241c98f921fdb2d3f1ce8499103e30ca512b2a65b2654d956eabc3b5126b047c0941f976e9302 SHA512 31f5d9e1576c8652281e13a4bf975beefefc0cf11fb218e70cdfcb4ea48333d7d9f3208adac6b89a3b2cbf02bea8f75df8e17ec57412071abfcec88553f88601 DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071 DIST bash205b-002 755 BLAKE2B 6a6ed5679d451f02f8104b345c1722d11718ce3b4043b581c17786d40d8da69a34786fb56d0c363dba277b8e9dd33f12f70c9cc73a9fc39ba4a8319406f0458d SHA512 46947b0229478d5c2cfeff68b8ebc00e4ef0c8b94e336ca12f72b4490ba3622c0240c01c17c1641c3b07adc2c64ec94d6d780365e8990768ec8888f3a9526883 diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r3.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r3.ebuild deleted file mode 100644 index 8ab4ea1871..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r3.ebuild +++ /dev/null @@ -1,464 +0,0 @@ -# Copyright 1999-2026 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. See https://ftp.gnu.org/gnu/bash/bash-5.3-patches/. -case ${PV} in - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then - BASH_COMMIT= - fi - ;; - *_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" - -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 )) && [[ ${BASH_COMMIT} ]]; 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. - 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/${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/${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 ~arm64-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 - "${FILESDIR}"/${PN}-5.3-read-sys.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 )) && [[ ${BASH_COMMIT} ]]; 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[@]}" - - # 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. Chet also advises against use of byacc: - # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html - unset -v YACC - - if tc-is-cross-compiler; then - export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" - fi - - 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\"\' \ - -DDEFAULT_LOADABLE_BUILTINS_PATH=\'\""${EPREFIX}"/usr/local/$(get_libdir)/bash:"${EPREFIX}"/usr/$(get_libdir)/bash\"\' \ - -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-r2 | newins - bashrc - - insinto /etc/bash/bashrc.d - my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r3.bash 10-gentoo-title.bash - - insinto /etc/profile.d - doins "${FILESDIR}/profile.d/00-prompt-command.sh" - - insinto /etc/skel - for f in bash{_logout,_profile,rc}; do - newins "${FILESDIR}/skel/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 IFS old_ver ver - local -a versions - - # If /bin/sh does not exist, provide it. - if [[ ! -e ${EROOT}/bin/sh ]]; then - ln -sf -- bash "${EROOT}"/bin/sh || die - fi - - if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then - ewarn "The following file is no longer packaged and can safely be deleted:" - ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" - fi - - read -rd '' -a versions <<<"${REPLACING_VERSIONS}" - for ver in "${versions[@]}"; do - if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then - old_ver=${ver} - fi - done - - if [[ ! ${old_ver} ]]; then - return - fi - - { - if ver_test "${old_ver}" -ge "5.2" \ - && ver_test "${old_ver}" -ge "5.2_p26-r8" - then - : - elif ver_test "${old_ver}" -lt "5.2" \ - && ver_test "${old_ver}" -ge "5.1_p16-r8" - then - : - else - cat <<'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 - fi - - if ver_test "${old_ver}" -ge "5.3" \ - && ver_test "${old_ver}" -ge "5.3_p3-r3" - then - : - elif ver_test "${old_ver}" -lt "5.3" \ - && ver_test "${old_ver}" -ge "5.2_p37-r5" - then - : - else - cat <<'EOF' -The window title setting behaviour has been improved. It is now formatted as -"\u@\h \W", in accordance with the prompting mechanism of bash. For example, -after switching to the home directory, the current working directory will be -shown as the character. - -The value of PROMPT_DIRTRIM is now respected. If this variable is unset, the -use of the \W prompt string escape will prevail, with the current working -directory typically being shown as its basename. If set to 0 or greater, \w -will be used instead, which may be trimmed. This also means that the title -can be made to show the full path by setting PROMPT_DIRTRIM=0. - -For further information, run info '(bash)Bash Variables' or visit -https://www.gnu.org/software/bash/manual/bash.html#index-PROMPT_005fDIRTRIM. -EOF - fi - } \ - | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then - fmt -w "$(( COLUMNS - 3 ))" - else - cat - fi \ - | while read -r; do - ewarn "${REPLY}" - done -} diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p8.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p8.ebuild deleted file mode 100644 index b33b1c6d4e..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p8.ebuild +++ /dev/null @@ -1,463 +0,0 @@ -# Copyright 1999-2026 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. See https://ftp.gnu.org/gnu/bash/bash-5.3-patches/. -case ${PV} in - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then - BASH_COMMIT= - fi - ;; - *_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" - -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 )) && [[ ${BASH_COMMIT} ]]; 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. - 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/${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/${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 ~arm64-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 )) && [[ ${BASH_COMMIT} ]]; 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[@]}" - - # 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. Chet also advises against use of byacc: - # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html - unset -v YACC - - if tc-is-cross-compiler; then - export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" - fi - - 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\"\' \ - -DDEFAULT_LOADABLE_BUILTINS_PATH=\'\""${EPREFIX}"/usr/local/$(get_libdir)/bash:"${EPREFIX}"/usr/$(get_libdir)/bash\"\' \ - -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-r2 | newins - bashrc - - insinto /etc/bash/bashrc.d - my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r3.bash 10-gentoo-title.bash - - insinto /etc/profile.d - doins "${FILESDIR}/profile.d/00-prompt-command.sh" - - insinto /etc/skel - for f in bash{_logout,_profile,rc}; do - newins "${FILESDIR}/skel/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 IFS old_ver ver - local -a versions - - # If /bin/sh does not exist, provide it. - if [[ ! -e ${EROOT}/bin/sh ]]; then - ln -sf -- bash "${EROOT}"/bin/sh || die - fi - - if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then - ewarn "The following file is no longer packaged and can safely be deleted:" - ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" - fi - - read -rd '' -a versions <<<"${REPLACING_VERSIONS}" - for ver in "${versions[@]}"; do - if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then - old_ver=${ver} - fi - done - - if [[ ! ${old_ver} ]]; then - return - fi - - { - if ver_test "${old_ver}" -ge "5.2" \ - && ver_test "${old_ver}" -ge "5.2_p26-r8" - then - : - elif ver_test "${old_ver}" -lt "5.2" \ - && ver_test "${old_ver}" -ge "5.1_p16-r8" - then - : - else - cat <<'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 - fi - - if ver_test "${old_ver}" -ge "5.3" \ - && ver_test "${old_ver}" -ge "5.3_p3-r3" - then - : - elif ver_test "${old_ver}" -lt "5.3" \ - && ver_test "${old_ver}" -ge "5.2_p37-r5" - then - : - else - cat <<'EOF' -The window title setting behaviour has been improved. It is now formatted as -"\u@\h \W", in accordance with the prompting mechanism of bash. For example, -after switching to the home directory, the current working directory will be -shown as the character. - -The value of PROMPT_DIRTRIM is now respected. If this variable is unset, the -use of the \W prompt string escape will prevail, with the current working -directory typically being shown as its basename. If set to 0 or greater, \w -will be used instead, which may be trimmed. This also means that the title -can be made to show the full path by setting PROMPT_DIRTRIM=0. - -For further information, run info '(bash)Bash Variables' or visit -https://www.gnu.org/software/bash/manual/bash.html#index-PROMPT_005fDIRTRIM. -EOF - fi - } \ - | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then - fmt -w "$(( COLUMNS - 3 ))" - else - cat - fi \ - | while read -r; do - ewarn "${REPLY}" - done -} diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251027.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251027.ebuild deleted file mode 100644 index af1b788c12..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251027.ebuild +++ /dev/null @@ -1,468 +0,0 @@ -# Copyright 1999-2026 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 - if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then - BASH_COMMIT="c299f535be51179b1e0c989ad9ba4365e182ec28" - fi - ;; - *_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" - -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 )) && [[ ${BASH_COMMIT} ]]; 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. - 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/${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/${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 ~arm64-macos ~x64-macos ~x64-solaris" -fi -IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" -# As of 5.4_alpha_pre20251016, bash tests finally exit non-0 on failure. -# The differences look harmless but need investigation and fixing. -RESTRICT="test" - -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 )) && [[ ${BASH_COMMIT} ]]; 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[@]}" - - # 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. Chet also advises against use of byacc: - # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html - unset -v YACC - - if tc-is-cross-compiler; then - export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" - fi - - 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\"\' \ - -DDEFAULT_LOADABLE_BUILTINS_PATH=\'\""${EPREFIX}"/usr/local/$(get_libdir)/bash:"${EPREFIX}"/usr/$(get_libdir)/bash\"\' \ - -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 - - # Testsuite isn't expected to pass for bash right now, but it - # also doesn't matter for PGO. - nonfatal 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-r2 | newins - bashrc - - insinto /etc/bash/bashrc.d - my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r3.bash 10-gentoo-title.bash - - insinto /etc/profile.d - doins "${FILESDIR}/profile.d/00-prompt-command.sh" - - insinto /etc/skel - for f in bash{_logout,_profile,rc}; do - newins "${FILESDIR}/skel/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 IFS old_ver ver - local -a versions - - # If /bin/sh does not exist, provide it. - if [[ ! -e ${EROOT}/bin/sh ]]; then - ln -sf -- bash "${EROOT}"/bin/sh || die - fi - - if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then - ewarn "The following file is no longer packaged and can safely be deleted:" - ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" - fi - - read -rd '' -a versions <<<"${REPLACING_VERSIONS}" - for ver in "${versions[@]}"; do - if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then - old_ver=${ver} - fi - done - - if [[ ! ${old_ver} ]]; then - return - fi - - { - if ver_test "${old_ver}" -ge "5.2" \ - && ver_test "${old_ver}" -ge "5.2_p26-r8" - then - : - elif ver_test "${old_ver}" -lt "5.2" \ - && ver_test "${old_ver}" -ge "5.1_p16-r8" - then - : - else - cat <<'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 - fi - - if ver_test "${old_ver}" -ge "5.3" \ - && ver_test "${old_ver}" -ge "5.3_p3-r3" - then - : - elif ver_test "${old_ver}" -lt "5.3" \ - && ver_test "${old_ver}" -ge "5.2_p37-r5" - then - : - else - cat <<'EOF' -The window title setting behaviour has been improved. It is now formatted as -"\u@\h \W", in accordance with the prompting mechanism of bash. For example, -after switching to the home directory, the current working directory will be -shown as the character. - -The value of PROMPT_DIRTRIM is now respected. If this variable is unset, the -use of the \W prompt string escape will prevail, with the current working -directory typically being shown as its basename. If set to 0 or greater, \w -will be used instead, which may be trimmed. This also means that the title -can be made to show the full path by setting PROMPT_DIRTRIM=0. - -For further information, run info '(bash)Bash Variables' or visit -https://www.gnu.org/software/bash/manual/bash.html#index-PROMPT_005fDIRTRIM. -EOF - fi - } \ - | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then - fmt -w "$(( COLUMNS - 3 ))" - else - cat - fi \ - | while read -r; do - ewarn "${REPLY}" - done -} diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251119.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251119.ebuild deleted file mode 100644 index 0992b56e7d..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251119.ebuild +++ /dev/null @@ -1,468 +0,0 @@ -# Copyright 1999-2026 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 - if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then - BASH_COMMIT="bcac47f08a6e8f04893f3f282bb841ddc07fc2e8" - fi - ;; - *_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" - -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 )) && [[ ${BASH_COMMIT} ]]; 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. - 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/${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/${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 ~arm64-macos ~x64-macos ~x64-solaris" -fi -IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" -# As of 5.4_alpha_pre20251016, bash tests finally exit non-0 on failure. -# The differences look harmless but need investigation and fixing. -RESTRICT="test" - -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 )) && [[ ${BASH_COMMIT} ]]; 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[@]}" - - # 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. Chet also advises against use of byacc: - # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html - unset -v YACC - - if tc-is-cross-compiler; then - export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" - fi - - 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\"\' \ - -DDEFAULT_LOADABLE_BUILTINS_PATH=\'\""${EPREFIX}"/usr/local/$(get_libdir)/bash:"${EPREFIX}"/usr/$(get_libdir)/bash\"\' \ - -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 - - # Testsuite isn't expected to pass for bash right now, but it - # also doesn't matter for PGO. - nonfatal 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-r2 | newins - bashrc - - insinto /etc/bash/bashrc.d - my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r3.bash 10-gentoo-title.bash - - insinto /etc/profile.d - doins "${FILESDIR}/profile.d/00-prompt-command.sh" - - insinto /etc/skel - for f in bash{_logout,_profile,rc}; do - newins "${FILESDIR}/skel/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 IFS old_ver ver - local -a versions - - # If /bin/sh does not exist, provide it. - if [[ ! -e ${EROOT}/bin/sh ]]; then - ln -sf -- bash "${EROOT}"/bin/sh || die - fi - - if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then - ewarn "The following file is no longer packaged and can safely be deleted:" - ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" - fi - - read -rd '' -a versions <<<"${REPLACING_VERSIONS}" - for ver in "${versions[@]}"; do - if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then - old_ver=${ver} - fi - done - - if [[ ! ${old_ver} ]]; then - return - fi - - { - if ver_test "${old_ver}" -ge "5.2" \ - && ver_test "${old_ver}" -ge "5.2_p26-r8" - then - : - elif ver_test "${old_ver}" -lt "5.2" \ - && ver_test "${old_ver}" -ge "5.1_p16-r8" - then - : - else - cat <<'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 - fi - - if ver_test "${old_ver}" -ge "5.3" \ - && ver_test "${old_ver}" -ge "5.3_p3-r3" - then - : - elif ver_test "${old_ver}" -lt "5.3" \ - && ver_test "${old_ver}" -ge "5.2_p37-r5" - then - : - else - cat <<'EOF' -The window title setting behaviour has been improved. It is now formatted as -"\u@\h \W", in accordance with the prompting mechanism of bash. For example, -after switching to the home directory, the current working directory will be -shown as the character. - -The value of PROMPT_DIRTRIM is now respected. If this variable is unset, the -use of the \W prompt string escape will prevail, with the current working -directory typically being shown as its basename. If set to 0 or greater, \w -will be used instead, which may be trimmed. This also means that the title -can be made to show the full path by setting PROMPT_DIRTRIM=0. - -For further information, run info '(bash)Bash Variables' or visit -https://www.gnu.org/software/bash/manual/bash.html#index-PROMPT_005fDIRTRIM. -EOF - fi - } \ - | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then - fmt -w "$(( COLUMNS - 3 ))" - else - cat - fi \ - | while read -r; do - ewarn "${REPLY}" - done -} diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251124.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251124.ebuild deleted file mode 100644 index 06a1ffffd9..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251124.ebuild +++ /dev/null @@ -1,468 +0,0 @@ -# Copyright 1999-2026 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 - if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then - BASH_COMMIT="4e705ed53ac364ee110f0b2fbeeab9d3301fcb6b" - fi - ;; - *_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" - -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 )) && [[ ${BASH_COMMIT} ]]; 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. - 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/${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/${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 ~arm64-macos ~x64-macos ~x64-solaris" -fi -IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" -# As of 5.4_alpha_pre20251016, bash tests finally exit non-0 on failure. -# The differences look harmless but need investigation and fixing. -RESTRICT="test" - -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 )) && [[ ${BASH_COMMIT} ]]; 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[@]}" - - # 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. Chet also advises against use of byacc: - # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html - unset -v YACC - - if tc-is-cross-compiler; then - export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" - fi - - 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\"\' \ - -DDEFAULT_LOADABLE_BUILTINS_PATH=\'\""${EPREFIX}"/usr/local/$(get_libdir)/bash:"${EPREFIX}"/usr/$(get_libdir)/bash\"\' \ - -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 - - # Testsuite isn't expected to pass for bash right now, but it - # also doesn't matter for PGO. - nonfatal 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-r2 | newins - bashrc - - insinto /etc/bash/bashrc.d - my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r3.bash 10-gentoo-title.bash - - insinto /etc/profile.d - doins "${FILESDIR}/profile.d/00-prompt-command.sh" - - insinto /etc/skel - for f in bash{_logout,_profile,rc}; do - newins "${FILESDIR}/skel/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 IFS old_ver ver - local -a versions - - # If /bin/sh does not exist, provide it. - if [[ ! -e ${EROOT}/bin/sh ]]; then - ln -sf -- bash "${EROOT}"/bin/sh || die - fi - - if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then - ewarn "The following file is no longer packaged and can safely be deleted:" - ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" - fi - - read -rd '' -a versions <<<"${REPLACING_VERSIONS}" - for ver in "${versions[@]}"; do - if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then - old_ver=${ver} - fi - done - - if [[ ! ${old_ver} ]]; then - return - fi - - { - if ver_test "${old_ver}" -ge "5.2" \ - && ver_test "${old_ver}" -ge "5.2_p26-r8" - then - : - elif ver_test "${old_ver}" -lt "5.2" \ - && ver_test "${old_ver}" -ge "5.1_p16-r8" - then - : - else - cat <<'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 - fi - - if ver_test "${old_ver}" -ge "5.3" \ - && ver_test "${old_ver}" -ge "5.3_p3-r3" - then - : - elif ver_test "${old_ver}" -lt "5.3" \ - && ver_test "${old_ver}" -ge "5.2_p37-r5" - then - : - else - cat <<'EOF' -The window title setting behaviour has been improved. It is now formatted as -"\u@\h \W", in accordance with the prompting mechanism of bash. For example, -after switching to the home directory, the current working directory will be -shown as the character. - -The value of PROMPT_DIRTRIM is now respected. If this variable is unset, the -use of the \W prompt string escape will prevail, with the current working -directory typically being shown as its basename. If set to 0 or greater, \w -will be used instead, which may be trimmed. This also means that the title -can be made to show the full path by setting PROMPT_DIRTRIM=0. - -For further information, run info '(bash)Bash Variables' or visit -https://www.gnu.org/software/bash/manual/bash.html#index-PROMPT_005fDIRTRIM. -EOF - fi - } \ - | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then - fmt -w "$(( COLUMNS - 3 ))" - else - cat - fi \ - | while read -r; do - ewarn "${REPLY}" - done -} diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3-read-sys.patch b/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3-read-sys.patch deleted file mode 100644 index 9491d727cc..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3-read-sys.patch +++ /dev/null @@ -1,19 +0,0 @@ -Extracted from https://cgit.git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=01070d43248fb97f3b2a08d780ae5a392573ce34 -(note https://lists.gnu.org/archive/html/bug-readline/2025-07/msg00001.html wrt Chet not discouraging -such cherry-picking) - -https://lists.gnu.org/archive/html/bug-bash/2025-07/msg00031.html -https://github.com/desultory/ugrd/pull/328 ---- builtins/evalfile.c -+++ builtins/evalfile.c -@@ -160,8 +160,10 @@ file_error_and_exit: - nr = read (fd, string, file_size); - if (nr >= 0) - string[nr] = '\0'; -+#if 0 - if (nr != file_size) - nr = -1; /* XXX - didn't get the whole file */ -+#endif - } - else - nr = zmapfd (fd, &string, 0);