diff --git a/app-shells/bash/bash-5.2_p37-r4.ebuild b/app-shells/bash/bash-5.2_p37-r4.ebuild index 50da6638e2507..1066db2400201 100644 --- a/app-shells/bash/bash-5.2_p37-r4.ebuild +++ b/app-shells/bash/bash-5.2_p37-r4.ebuild @@ -17,12 +17,15 @@ MY_PATCHES=() # Determine the patchlevel. See https://ftp.gnu.org/gnu/bash/bash-5.2-patches/. case ${PV} in - *_p*) - PLEVEL=${PV##*_p} - ;; 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 @@ -39,6 +42,14 @@ 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" ) @@ -52,6 +63,7 @@ else 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 @@ -60,8 +72,6 @@ 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 -S=${WORKDIR}/${MY_P} - LICENSE="GPL-3+" SLOT="0" if (( PLEVEL >= 0 )); then @@ -121,6 +131,8 @@ src_unpack() { 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} @@ -172,8 +184,10 @@ src_configure() { # 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. + # 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 # bash 5.3 drops unprototyped functions, earlier versions are @@ -380,6 +394,11 @@ pkg_postinst() { 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 @@ -387,13 +406,21 @@ pkg_postinst() { fi done - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + 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 @@ -416,4 +443,14 @@ 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 [[ ${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/app-shells/bash/bash-5.3_p3-r1.ebuild b/app-shells/bash/bash-5.3_p3-r1.ebuild index fe9698321a81d..beed9733e70d6 100644 --- a/app-shells/bash/bash-5.3_p3-r1.ebuild +++ b/app-shells/bash/bash-5.3_p3-r1.ebuild @@ -20,13 +20,15 @@ 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 @@ -40,13 +42,12 @@ 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 +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. - BASH_COMMIT="b35866a2891a9b069e37ca5684d4309c0391e261" 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 @@ -124,7 +125,7 @@ src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack - elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then default else if use verify-sig; then @@ -168,8 +169,10 @@ src_configure() { # 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. + # 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 @@ -372,6 +375,11 @@ pkg_postinst() { 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 @@ -379,13 +387,21 @@ pkg_postinst() { fi done - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + 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 @@ -408,4 +424,14 @@ 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 [[ ${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/app-shells/bash/bash-5.3_p3-r2.ebuild b/app-shells/bash/bash-5.3_p3-r2.ebuild index b04e96695eaae..7e1f47f548959 100644 --- a/app-shells/bash/bash-5.3_p3-r2.ebuild +++ b/app-shells/bash/bash-5.3_p3-r2.ebuild @@ -20,13 +20,15 @@ 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 @@ -40,13 +42,12 @@ 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 +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. - BASH_COMMIT="b35866a2891a9b069e37ca5684d4309c0391e261" 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 @@ -124,7 +125,7 @@ src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack - elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then default else if use verify-sig; then @@ -168,8 +169,10 @@ src_configure() { # 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. + # 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 @@ -373,6 +376,11 @@ pkg_postinst() { 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 @@ -380,13 +388,21 @@ pkg_postinst() { fi done - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + 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 @@ -409,4 +425,14 @@ 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 [[ ${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/app-shells/bash/bash-5.4_alpha_pre20250918-r1.ebuild b/app-shells/bash/bash-5.4_alpha_pre20250918-r1.ebuild index 657225a804f9f..10edeed625e67 100644 --- a/app-shells/bash/bash-5.4_alpha_pre20250918-r1.ebuild +++ b/app-shells/bash/bash-5.4_alpha_pre20250918-r1.ebuild @@ -20,13 +20,15 @@ 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="cf8a2518c8b94f75b330d398f5daa0ee21417e1b" + fi ;; *_p*) PLEVEL=${PV##*_p} ;; *) PLEVEL=0 - ;; esac # The version of readline this bash normally ships with. Note that we only use @@ -40,13 +42,12 @@ 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 +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. - BASH_COMMIT="cf8a2518c8b94f75b330d398f5daa0ee21417e1b" 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 @@ -123,7 +124,7 @@ src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack - elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then default else if use verify-sig; then @@ -167,8 +168,10 @@ src_configure() { # 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. + # 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 @@ -369,6 +372,11 @@ pkg_postinst() { 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 @@ -376,13 +384,21 @@ pkg_postinst() { fi done - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + 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 @@ -405,4 +421,14 @@ 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 [[ ${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/app-shells/bash/bash-9999.ebuild b/app-shells/bash/bash-9999.ebuild index 7e576e31249ab..6211b96f2a292 100644 --- a/app-shells/bash/bash-9999.ebuild +++ b/app-shells/bash/bash-9999.ebuild @@ -20,13 +20,15 @@ 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 @@ -40,13 +42,12 @@ 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 +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. - BASH_COMMIT="b35866a2891a9b069e37ca5684d4309c0391e261" 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 @@ -123,7 +124,7 @@ src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack - elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then default else if use verify-sig; then @@ -374,6 +375,11 @@ pkg_postinst() { 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 @@ -381,13 +387,21 @@ pkg_postinst() { fi done - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + 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 @@ -410,4 +424,14 @@ 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 [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then + fmt -w "$(( COLUMNS - 3 ))" + else + cat + fi \ + | while read -r; do + ewarn "${REPLY}" + done }