app-shells/bash: Sync with Gentoo

It's from Gentoo commit f18a4b4b9b6e7257e5b96a5ac2d4e122d9837f73.
This commit is contained in:
Flatcar Buildbot 2025-01-13 07:05:04 +00:00 committed by Krzesimir Nowak
parent 4afe65e902
commit 44323fc9a9
18 changed files with 66 additions and 389 deletions

View File

@ -22,10 +22,10 @@ DIST bash-5.1.tar.gz 10458638 BLAKE2B 42059556694b604911b5b7936f94d42d8923f2931f
DIST bash-5.1.tar.gz.sig 95 BLAKE2B ac9209d6a4ab4436c511a7a195594e9036d7d1aef7887972f61a0e97378a9685b882621d7f95f5326b155dc155c41635417ce2ca41ac6d0dda78bd293ea4249f SHA512 3966404c0f683c7ef214fcf283b551e5441af3897009f778308c2e34067d98d57c95561453416a54ca5b1daf9a1288dbf950fe3f13353703cead12f5eec5fad8 DIST bash-5.1.tar.gz.sig 95 BLAKE2B ac9209d6a4ab4436c511a7a195594e9036d7d1aef7887972f61a0e97378a9685b882621d7f95f5326b155dc155c41635417ce2ca41ac6d0dda78bd293ea4249f SHA512 3966404c0f683c7ef214fcf283b551e5441af3897009f778308c2e34067d98d57c95561453416a54ca5b1daf9a1288dbf950fe3f13353703cead12f5eec5fad8
DIST bash-5.2.tar.gz 10950833 BLAKE2B 51b196e710794ebad8eac28c31c93eb99ac1a7db30919a13271e39e1cb66a0672f242df75fc7d71627ea873dfbce53ec35c0c56a71c5167143070a7811343fd9 SHA512 5647636223ba336bf33e0c65e516d8ebcf6932de8b44f37bc468eedb87579c628ad44213f78534beb10f47aebb9c6fa670cb0bed3b4e7717e5faf7e9a1ef81ae DIST bash-5.2.tar.gz 10950833 BLAKE2B 51b196e710794ebad8eac28c31c93eb99ac1a7db30919a13271e39e1cb66a0672f242df75fc7d71627ea873dfbce53ec35c0c56a71c5167143070a7811343fd9 SHA512 5647636223ba336bf33e0c65e516d8ebcf6932de8b44f37bc468eedb87579c628ad44213f78534beb10f47aebb9c6fa670cb0bed3b4e7717e5faf7e9a1ef81ae
DIST bash-5.2.tar.gz.sig 95 BLAKE2B 2991b7c46ef1cdca08062f419be47fca7551f4c5d9aad8a5c1da74974f5e7707d23914b4cecf9b6c9610471146b2c49b611bb62a5d974f1c37cceb77b719851c SHA512 a161664f124f906be32709f66702f8f780e6d52e558ea45e71ec60a959c9435ff68477ee65a0a9f6c0051d5592f5044fb3b410cf3cd3ae5a8a323789b01be258 DIST bash-5.2.tar.gz.sig 95 BLAKE2B 2991b7c46ef1cdca08062f419be47fca7551f4c5d9aad8a5c1da74974f5e7707d23914b4cecf9b6c9610471146b2c49b611bb62a5d974f1c37cceb77b719851c SHA512 a161664f124f906be32709f66702f8f780e6d52e558ea45e71ec60a959c9435ff68477ee65a0a9f6c0051d5592f5044fb3b410cf3cd3ae5a8a323789b01be258
DIST bash-5.3-alpha.tar.gz 11195025 BLAKE2B b3325f6927d7dde86aae165891317b972f0b9814e134676b3d7d3aea81ce4d4cad1a01f160e290352072153ad3568ee21701a35190ef5e6274b3c03fc95c8d42 SHA512 52354eb7cd71330192ec76fdda04bcacf758a312e89b45558db5f5345f19b0d8e54732049934958cf89786f5bd7c538d88859eb8d8d22dabfc9ec7305263d10e DIST bash-5.3-beta.tar.gz 10667630 BLAKE2B d6d3a1efd5ed69b131e2831e35c4a620968132e7d9da079de155decb4d3c736cd6c9f1180523e85dd41aeecdb9b380e4768bc551afafaee478168c462ce90929 SHA512 f8f02b4a90312c8e7c589efd1a0a43a4db3bcb47d19cb95190961e4ae254b2d6d26472197ce216868d914fe1adf62741f927552239559a1c3b2c64dfcfaa8cb0
DIST bash-5.3-alpha.tar.gz.sig 95 BLAKE2B 69c8b33fe2a40498662ef084967701cff1926086785a41d6f49a3c2e2b9908499226d3d970bdb6397a74d3ccc22acb3651261ad2a421799eb135c64a78af8589 SHA512 c9587da66457e2010b0852c6dbf5949821a543b7f1b616a4d016df3477913e2a655c57289e83adeeb31b8b8afca22313e3af76cf727b93932d33a889c1263c20 DIST bash-5.3-beta.tar.gz.sig 94 BLAKE2B a4b85d5755e200abddd5669c3d21b1ee6be8036b27934e25473c14b15ffc1bc7cbbd5a94f39a0dc6bf6050908590509f0ba39d28c33947154cc966e11d454c8c SHA512 72184ca2afe3d0c8c2165516499a61da2aecc0c8c83661cab0038c3d849623115729d2ade73c4b5973ea9b5e8169af4bc2aea51f0b70356af26342285adab2f5
DIST bash-5.3_alpha_p20241115-fa68e6da80970c302948674369d278164a33ed39.tar.gz 14947053 BLAKE2B f05df995a93ee010e7867e828d30f2cdd0aa62fa020e632018cb8f3945626e0b0c254e4cb6f6e4de3dbb01994870a39f1edecb8fb30b4d38e6455d0c645ba2c5 SHA512 de33fc8dbf9d4a833220423bdd53627fa67335130442964c88e82f11ddf1c19aab0d166d5f7dba30767b8878b36ce7ddf4deea03633e98fa3459669f99086f5b DIST bash-5.3_beta_p20241230-5114e17172276cf5a2f889f8037ae58c4cb05bb9.tar.gz 15703629 BLAKE2B 331a0c1ce3cc423d0e55500c4b04caa8086b195a49554a01f3db766773778ac58f5749cb167a298fc77d7841da79a3d007c2bf826f74c52d4659147c55cc3bd6 SHA512 2ea7ddceb243e2baa3a5b45a86882b2cd476fadeaaac943a108de61a57b13e65e2789bb72345850e8fb4e6adafa0b706a273fcc5bdbaf76fcf897501b67ddc23
DIST bash-5.3_alpha_p20241121-22417e78816237ae66f2da661567dfe5ed3452a1.tar.gz 14888873 BLAKE2B 78f9d15aee593497a2213e9cfcb03a0b5c8d127beacf0a2268f4bbefb79da41e6b2e4b9bf43b46c7b7cf4a276038554f708ee783fbd30f2489881af2fac165cc SHA512 f06e908ec673a605e967f7392aadcdea293bacafeb6991fd286e1b64ef606845c8cd78b01b1bb04a7ae9ad5c049324f51c1299c2fc90fdd3fd38575f9b380c11 DIST bash-5.3_beta_p20250109-2ea356081dbfbac2c791f9b8072ed4b824e3d9df.tar.gz 15708913 BLAKE2B 0fcfb544b4c167ddb6e6bebde283519d4dd0ea95d531c6d499b5bbbc073ec355955a6f0fcaf9efe6de57fc8395f72636ebb077c4bc2506e58b30c2c98429e528 SHA512 7200a9e2bedbcb2b6ffabf32f324df33e6d9f8a12155f9112a22588d313c197202e3ae96930a7ab2d454e45b7ef708afabb371bb7ba13c1ee0d1b9ad58b77cac
DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071 DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071
DIST bash205b-002 755 BLAKE2B 6a6ed5679d451f02f8104b345c1722d11718ce3b4043b581c17786d40d8da69a34786fb56d0c363dba277b8e9dd33f12f70c9cc73a9fc39ba4a8319406f0458d SHA512 46947b0229478d5c2cfeff68b8ebc00e4ef0c8b94e336ca12f72b4490ba3622c0240c01c17c1641c3b07adc2c64ec94d6d780365e8990768ec8888f3a9526883 DIST bash205b-002 755 BLAKE2B 6a6ed5679d451f02f8104b345c1722d11718ce3b4043b581c17786d40d8da69a34786fb56d0c363dba277b8e9dd33f12f70c9cc73a9fc39ba4a8319406f0458d SHA512 46947b0229478d5c2cfeff68b8ebc00e4ef0c8b94e336ca12f72b4490ba3622c0240c01c17c1641c3b07adc2c64ec94d6d780365e8990768ec8888f3a9526883
DIST bash205b-003 2356 BLAKE2B b7887d00d92fd298cd07a15e1c73b516dabd22ecd74c97091636dd97a0cd55024ed698e5cc924c4311d994dd326b1ad074bea35e7650cf9cf4e25c60d2713fa7 SHA512 74528ca5d165b812d299f1c69b47757bd677c0b22ce4217e155cd641708b02364a93c6709fb57b546b376b36da74429a61493921c7c199563da40ddcf1c1f399 DIST bash205b-003 2356 BLAKE2B b7887d00d92fd298cd07a15e1c73b516dabd22ecd74c97091636dd97a0cd55024ed698e5cc924c4311d994dd326b1ad074bea35e7650cf9cf4e25c60d2713fa7 SHA512 74528ca5d165b812d299f1c69b47757bd677c0b22ce4217e155cd641708b02364a93c6709fb57b546b376b36da74429a61493921c7c199563da40ddcf1c1f399

View File

@ -103,7 +103,7 @@ src_configure() {
# bash 5.3 drops unprototyped functions, earlier versions are # bash 5.3 drops unprototyped functions, earlier versions are
# incompatible with C23. # incompatible with C23.
append-cflags -std=gnu17 append-cflags $(test-flags-CC -std=gnu17)
local myconf=( local myconf=(
--with-installed-readline=. --with-installed-readline=.

View File

@ -108,7 +108,7 @@ src_configure() {
# bash 5.3 drops unprototyped functions, earlier versions are # bash 5.3 drops unprototyped functions, earlier versions are
# incompatible with C23. # incompatible with C23.
append-cflags -std=gnu17 append-cflags $(test-flags-CC -std=gnu17)
local myconf=( local myconf=(
--with-installed-readline=. --with-installed-readline=.

View File

@ -103,7 +103,7 @@ src_configure() {
# bash 5.3 drops unprototyped functions, earlier versions are # bash 5.3 drops unprototyped functions, earlier versions are
# incompatible with C23. # incompatible with C23.
append-cflags -std=gnu17 append-cflags $(test-flags-CC -std=gnu17)
local myconf=( local myconf=(
--with-installed-readline=. --with-installed-readline=.

View File

@ -105,7 +105,7 @@ src_configure() {
# bash 5.3 drops unprototyped functions, earlier versions are # bash 5.3 drops unprototyped functions, earlier versions are
# incompatible with C23. # incompatible with C23.
append-cflags -std=gnu17 append-cflags $(test-flags-CC -std=gnu17)
local myconf=( local myconf=(
--with-installed-readline=. --with-installed-readline=.

View File

@ -99,7 +99,7 @@ src_prepare() {
src_configure() { src_configure() {
# bash 5.3 drops unprototyped functions, earlier versions are # bash 5.3 drops unprototyped functions, earlier versions are
# incompatible with C23. # incompatible with C23.
append-cflags -std=gnu17 append-cflags $(test-flags-CC -std=gnu17)
local myconf=( local myconf=(
--with-installed-readline=. --with-installed-readline=.

View File

@ -94,7 +94,7 @@ src_prepare() {
src_configure() { src_configure() {
# bash 5.3 drops unprototyped functions, earlier versions are # bash 5.3 drops unprototyped functions, earlier versions are
# incompatible with C23. # incompatible with C23.
append-cflags -std=gnu17 append-cflags $(test-flags-CC -std=gnu17)
local myconf=( local myconf=(
--with-installed-readline=. --with-installed-readline=.

View File

@ -106,7 +106,7 @@ src_configure() {
# bash 5.3 drops unprototyped functions, earlier versions are # bash 5.3 drops unprototyped functions, earlier versions are
# incompatible with C23. # incompatible with C23.
append-cflags -std=gnu17 append-cflags $(test-flags-CC -std=gnu17)
local myconf=( local myconf=(
--with-installed-readline=. --with-installed-readline=.

View File

@ -115,7 +115,7 @@ src_configure() {
# bash 5.3 drops unprototyped functions, earlier versions are # bash 5.3 drops unprototyped functions, earlier versions are
# incompatible with C23. # incompatible with C23.
append-cflags -std=gnu17 append-cflags $(test-flags-CC -std=gnu17)
local myconf=( local myconf=(
--docdir='$(datarootdir)'/doc/${PF} --docdir='$(datarootdir)'/doc/${PF}

View File

@ -126,7 +126,7 @@ src_configure() {
# bash 5.3 drops unprototyped functions, earlier versions are # bash 5.3 drops unprototyped functions, earlier versions are
# incompatible with C23. # incompatible with C23.
append-cflags -std=gnu17 append-cflags $(test-flags-CC -std=gnu17)
local myconf=( local myconf=(
--disable-profiling --disable-profiling

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors # Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=7 EAPI=7
@ -53,7 +53,7 @@ if [[ -n ${GENTOO_PATCH_VER} ]] ; then
fi fi
LICENSE="GPL-3" LICENSE="GPL-3"
SLOT="0" SLOT="${MY_PV}"
KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="afs bashlogger examples mem-scramble +net nls plugins +readline" IUSE="afs bashlogger examples mem-scramble +net nls plugins +readline"
@ -130,7 +130,7 @@ src_configure() {
# bash 5.3 drops unprototyped functions, earlier versions are # bash 5.3 drops unprototyped functions, earlier versions are
# incompatible with C23. # incompatible with C23.
append-cflags -std=gnu17 append-cflags $(test-flags-CC -std=gnu89)
local myconf=( local myconf=(
--disable-profiling --disable-profiling
@ -209,80 +209,15 @@ src_compile() {
} }
src_install() { src_install() {
local d f into /
newbin bash bash-${SLOT}
default newman doc/bash.1 bash-${SLOT}.1
newman doc/builtins.1 builtins-${SLOT}.1
dodir /bin insinto /usr/share/info
mv "${ED}"/usr/bin/bash "${ED}"/bin/ || die newins doc/bashref.info bash-${SLOT}.info
dosym bash /bin/rbash dosym bash-${SLOT}.info /usr/share/info/bashref-${SLOT}.info
insinto /etc/bash dodoc README NEWS AUTHORS CHANGES COMPAT Y2K doc/FAQ doc/INTRO
doins "${FILESDIR}"/bash_logout
doins "$(prefixify_ro "${FILESDIR}"/bashrc)"
keepdir /etc/bash/bashrc.d
insinto /etc/skel
for f in bash{_logout,_profile,rc} ; do
newins "${FILESDIR}"/dot-${f} .${f}
done
local sed_args=(
-e 's:#GNU#@::'
-e '/#@/d'
)
if ! use readline ; then
# bug #432338
sed_args+=(
-e '/^shopt -s histappend/s:^:#:'
-e 's:use_color=true:use_color=false:'
)
fi
sed -i \
"${sed_args[@]}" \
"${ED}"/etc/skel/.bashrc \
"${ED}"/etc/bash/bashrc || die
if use plugins ; then
exeinto /usr/$(get_libdir)/bash
doexe $(echo examples/loadables/*.o | sed 's:\.o::g')
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 ]] && [[ ${f##*/} != *README ]] ; then
doexe ${f}
else
dodoc ${f}
fi
done
done
fi
doman doc/*.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/
fi
}
pkg_postinst() {
# If /bin/sh does not exist, provide it
if [[ ! -e ${EROOT}/bin/sh ]] ; then
ln -sf bash "${EROOT}"/bin/sh
fi
} }

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors # Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=8 EAPI=8
@ -63,7 +63,7 @@ fi
S=${WORKDIR}/${MY_P} S=${WORKDIR}/${MY_P}
LICENSE="GPL-3+" LICENSE="GPL-3+"
SLOT="0" SLOT="${MY_PV}"
if (( PLEVEL >= 0 )); then if (( PLEVEL >= 0 )); then
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi fi
@ -175,7 +175,7 @@ src_configure() {
# bash 5.3 drops unprototyped functions, earlier versions are # bash 5.3 drops unprototyped functions, earlier versions are
# incompatible with C23. # incompatible with C23.
append-cflags -std=gnu17 append-cflags $(test-flags-CC -std=gnu17)
myconf=( myconf=(
--disable-profiling --disable-profiling
@ -248,115 +248,15 @@ src_compile() {
} }
src_install() { src_install() {
local d f into /
newbin bash bash-${SLOT}
default newman doc/bash.1 bash-${SLOT}.1
newman doc/builtins.1 builtins-${SLOT}.1
my_prefixify() { insinto /usr/share/info
while read -r; do newins doc/bashref.info bash-${SLOT}.info
if [[ $REPLY == *$1* ]]; then dosym bash-${SLOT}.info /usr/share/info/bashref-${SLOT}.info
REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"}
fi
printf '%s\n' "${REPLY}" || ! break
done < "$2" || die
}
dodir /bin dodoc README NEWS AUTHORS CHANGES COMPAT Y2K doc/FAQ doc/INTRO
mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die
dosym bash /bin/rbash
insinto /etc/bash
doins "${FILESDIR}"/bash_logout
my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc
insinto /etc/bash/bashrc.d
my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color.bash | newins - 10-gentoo-color.bash
doins "${FILESDIR}"/bashrc.d/10-gentoo-title.bash
if [[ ! ${EPREFIX} ]]; then
doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash
fi
insinto /etc/skel
for f in bash{_logout,_profile,rc}; do
newins "${FILESDIR}/dot-${f}" ".${f}"
done
if use plugins; then
exeinto "/usr/$(get_libdir)/bash"
set -- examples/loadables/*.o
doexe "${@%.o}"
insinto /usr/include/bash-plugins
doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
fi
if use examples; then
for d in examples/{functions,misc,scripts,startup-files}; do
exeinto "/usr/share/doc/${PF}/${d}"
docinto "${d}"
for f in "${d}"/*; do
if [[ ${f##*/} != @(PERMISSION|*README) ]]; then
doexe "${f}"
else
dodoc "${f}"
fi
done
done
fi
# Install bash_builtins.1 and rbash.1.
emake -C doc DESTDIR="${D}" install_builtins
sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die
doman "${T}"/rbash.1
newdoc CWRU/changelog ChangeLog
dosym bash.info /usr/share/info/bashref.info
}
pkg_preinst() {
if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then
mkdir -p -- "${EROOT}"/etc/bash \
&& mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \
|| die
fi
}
pkg_postinst() {
local old_ver
# If /bin/sh does not exist, provide it.
if [[ ! -e ${EROOT}/bin/sh ]]; then
ln -sf -- bash "${EROOT}"/bin/sh || die
fi
read -r old_ver <<<"${REPLACING_VERSIONS}"
if [[ ! $old_ver ]]; then
:
elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r6"; then
return
elif ver_test "$old_ver" -lt "5.2" && ver_test "$old_ver" -ge "5.1_p16-r13"; then
return
fi
while read -r; do ewarn "${REPLY}"; done <<'EOF'
Files situated 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, this array may contain a command
to set the terminal's window title. Those 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 manipulate the window title in the case
that the terminal is controlled by sshd(8), unless screen or tmux are in use.
Those wanting to set the title unconditionally 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
} }

View File

@ -176,7 +176,7 @@ src_configure() {
# bash 5.3 drops unprototyped functions, earlier versions are # bash 5.3 drops unprototyped functions, earlier versions are
# incompatible with C23. # incompatible with C23.
append-cflags -std=gnu17 append-cflags $(test-flags-CC -std=gnu17)
myconf=( myconf=(
--disable-profiling --disable-profiling

View File

@ -45,7 +45,7 @@ elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
# the alpha, and the next pre-release is usually quite far away. # 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. # i.e. if it's worth packaging the alpha, it's worth packaging a followup.
BASH_COMMIT="22417e78816237ae66f2da661567dfe5ed3452a1" BASH_COMMIT="bb56d620e075e3c96ae84b52de6b74683d9ab320"
SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" 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} S=${WORKDIR}/${PN}-${BASH_COMMIT}
else else

View File

@ -45,7 +45,7 @@ elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
# the alpha, and the next pre-release is usually quite far away. # 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. # i.e. if it's worth packaging the alpha, it's worth packaging a followup.
BASH_COMMIT="fa68e6da80970c302948674369d278164a33ed39" BASH_COMMIT="5114e17172276cf5a2f889f8037ae58c4cb05bb9"
SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" 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} S=${WORKDIR}/${PN}-${BASH_COMMIT}
else else

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors # Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=8 EAPI=8
@ -15,15 +15,15 @@ MY_PV=${MY_PV/_/-}
MY_P=${PN}-${MY_PV} MY_P=${PN}-${MY_PV}
MY_PATCHES=() MY_PATCHES=()
# Determine the patchlevel. See ftp://ftp.gnu.org/gnu/bash/bash-5.3-patches/. # Determine the patchlevel.
case ${PV} in case ${PV} in
*_p*)
PLEVEL=${PV##*_p}
;;
9999|*_alpha*|*_beta*|*_rc*) 9999|*_alpha*|*_beta*|*_rc*)
# Set a negative patchlevel to indicate that it's a pre-release. # Set a negative patchlevel to indicate that it's a pre-release.
PLEVEL=-1 PLEVEL=-1
;; ;;
*_p*)
PLEVEL=${PV##*_p}
;;
*) *)
PLEVEL=0 PLEVEL=0
esac esac
@ -39,6 +39,15 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git"
EGIT_BRANCH=devel EGIT_BRANCH=devel
inherit git-r3 inherit git-r3
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
# It can be useful to have snapshots in the pre-release period once
# the first alpha is out, as various bugs get reported and fixed from
# the alpha, and the next pre-release is usually quite far away.
#
# i.e. if it's worth packaging the alpha, it's worth packaging a followup.
BASH_COMMIT="2ea356081dbfbac2c791f9b8072ed4b824e3d9df"
SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz"
S=${WORKDIR}/${PN}-${BASH_COMMIT}
else else
my_urls=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}.tar.gz" ) my_urls=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}.tar.gz" )
@ -52,6 +61,7 @@ else
done done
SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )" 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 unset -v my_urls my_p my_patch_idx my_patch_ver
fi fi
@ -60,8 +70,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" SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz"
fi fi
S=${WORKDIR}/${MY_P}
LICENSE="GPL-3+" LICENSE="GPL-3+"
SLOT="0" SLOT="0"
if (( PLEVEL >= 0 )); then if (( PLEVEL >= 0 )); then
@ -114,6 +122,8 @@ src_unpack() {
if [[ ${PV} == 9999 ]]; then if [[ ${PV} == 9999 ]]; then
git-r3_src_unpack git-r3_src_unpack
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
default
else else
if use verify-sig; then if use verify-sig; then
verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig} verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig}
@ -310,7 +320,7 @@ src_install() {
insinto /etc/bash/bashrc.d insinto /etc/bash/bashrc.d
my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color.bash | newins - 10-gentoo-color.bash my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color.bash | newins - 10-gentoo-color.bash
doins "${FILESDIR}"/bashrc.d/10-gentoo-title.bash newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.bash 10-gentoo-title.bash
if [[ ! ${EPREFIX} ]]; then if [[ ! ${EPREFIX} ]]; then
doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash
fi fi
@ -371,26 +381,26 @@ pkg_postinst() {
read -r old_ver <<<"${REPLACING_VERSIONS}" read -r old_ver <<<"${REPLACING_VERSIONS}"
if [[ ! $old_ver ]]; then if [[ ! $old_ver ]]; then
: :
elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r6"; then elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then
return
elif ver_test "$old_ver" -lt "5.2" && ver_test "$old_ver" -ge "5.1_p16-r13"; then
return return
fi fi
while read -r; do ewarn "${REPLY}"; done <<'EOF' while read -r; do ewarn "${REPLY}"; done <<'EOF'
Files situated under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. 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 Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the
characteristics of the operating environment, this array may contain a command characteristics of the operating environment, it may contain a command to set
to set the terminal's window title. Those already choosing to customise the 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 variable are now advised to append their commands like so:
PROMPT_COMMAND+=('custom command goes here') PROMPT_COMMAND+=('custom command goes here')
Gentoo no longer defaults to having bash manipulate the window title in the case Gentoo no longer defaults to having bash set the window title in the case
that the terminal is controlled by sshd(8), unless screen or tmux are in use. that the terminal is controlled by sshd(8), unless screen is launched on the
Those wanting to set the title unconditionally may adjust ~/.bashrc - or create remote side or the terminal reliably supports saving and restoring the title
a custom /etc/bash/bashrc.d drop-in - to set PROMPT_COMMMAND like so: (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) PROMPT_COMMAND=(genfun_set_win_title)

View File

@ -1,32 +0,0 @@
https://src.fedoraproject.org/rpms/bash/blob/bd5ac20b134f2936c54245fc83a8e70207d3e07e/f/bash-configure-c99-2.patch
Another C compatibility issue: char ** and char * are distinct types,
and strtold expects the former for its second argument.
Submitted upstream:
<https://lists.gnu.org/archive/html/bug-bash/2023-11/msg00104.html>
--- configure.ac
+++ configure.ac
@@ -885,7 +885,7 @@ AC_CHECK_DECLS([strtold], [
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <stdlib.h>]],
- [[long double r; char *foo, bar; r = strtold(foo, &bar);]]
+ [[long double r; char *foo, *bar; r = strtold(foo, &bar);]]
)],
[bash_cv_strtold_broken=no],[bash_cv_strtold_broken=yes])
]
--- configure
+++ configure
@@ -15676,7 +15676,7 @@ else $as_nop
int
main (void)
{
-long double r; char *foo, bar; r = strtold(foo, &bar);
+long double r; char *foo, *bar; r = strtold(foo, &bar);
;
return 0;

View File

@ -1,136 +0,0 @@
https://lists.gnu.org/archive/html/bug-bash/2024-01/msg00036.html
https://lists.gnu.org/archive/html/bug-bash/2024-01/txtm8yNNPR9RQ.txt
For evalstring.c:
* https://lists.gnu.org/archive/html/bug-bash/2024-01/msg00011.html
* https://git.savannah.gnu.org/cgit/bash.git/diff/builtins/evalstring.c?h=devel&id=81f7b44564cd1510788035cea7c59631865a7db2&dt=1#n766
From 711ab85262884f2b91f09eceb9aefd0e2426ce67 Mon Sep 17 00:00:00 2001
From: Grisha Levit <grishalevit@gmail.com>
Date: Sat, 3 Jun 2023 16:51:26 -0400
Subject: [PATCH] various leaks
Found mostly by normal usage running a no-bash-malloc build with clang's
LeakSanitizer enabled. So far seems to provide very accurate results.
* arrayfunc.c
- quote_compound_array_word: make sure to free VALUE
- bind_assoc_var_internal: if assigning to a dynamic variable, make sure
to free the key (usually assoc_insert would do it)
* bashline.c
- bash_command_name_stat_hook: free original *NAME if we are going to
change what it points to (what the callers seem to expect)
* builtins/evalstring.c
- parse_and_execute: make sure to dispose of the parsed command
resulting from a failed function import attempt
- open_redir_file: if we did not get a pointer to pass back the expanded
filename, make sure to free the name
* examples/loadables/stat.c
- loadstat: bind_assoc_variable does not free its VALUE argument so make
sure to do it
* subst.c
- param_expand: free temp1 value for codepaths that don't do it
---
arrayfunc.c | 6 +++++-
bashline.c | 1 +
builtins/evalstring.c | 4 ++++
examples/loadables/stat.c | 1 +
subst.c | 2 ++
5 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/arrayfunc.c b/arrayfunc.c
index 2c05d15b..8ba64084 100644
--- arrayfunc.c
+++ arrayfunc.c
@@ -208,7 +208,10 @@ bind_assoc_var_internal (entry, hash, key, value, flags)
newval = make_array_variable_value (entry, 0, key, value, flags);
if (entry->assign_func)
- (*entry->assign_func) (entry, newval, 0, key);
+ {
+ (*entry->assign_func) (entry, newval, 0, key);
+ FREE (key);
+ }
else
assoc_insert (hash, key, newval);
@@ -985,6 +988,7 @@ quote_compound_array_word (w, type)
if (t != w+ind)
free (t);
strcpy (nword + i, value);
+ free (value);
return nword;
}
diff --git a/bashline.c b/bashline.c
index c85b05b6..bd7548cc 100644
--- bashline.c
+++ bashline.c
@@ -1928,6 +1928,7 @@ bash_command_name_stat_hook (name)
result = search_for_command (cname, 0);
if (result)
{
+ FREE (*name);
*name = result;
return 1;
}
diff --git a/builtins/evalstring.c b/builtins/evalstring.c
index df3dd68e..20c6a4a7 100644
--- builtins/evalstring.c
+++ builtins/evalstring.c
@@ -461,6 +461,8 @@ parse_and_execute (string, from_file, flags)
should_jump_to_top_level = 0;
last_result = last_command_exit_value = EX_BADUSAGE;
set_pipestatus_from_exit (last_command_exit_value);
+ dispose_command(command);
+ global_command = (COMMAND *)NULL;
reset_parser ();
break;
}
@@ -762,6 +764,8 @@ open_redir_file (r, fnp)
if (fnp)
*fnp = fn;
+ else
+ free (fn);
return fd;
}
diff --git a/examples/loadables/stat.c b/examples/loadables/stat.c
index 1e60e7b6..ed5c9764 100644
--- examples/loadables/stat.c
+++ examples/loadables/stat.c
@@ -349,6 +349,7 @@ loadstat (vname, var, fname, flags, fmt, sp)
key = savestring (arraysubs[i]);
value = statval (i, fname, flags, fmt, sp);
v = bind_assoc_variable (var, vname, key, value, ASS_FORCE);
+ free (value);
}
return 0;
}
diff --git a/subst.c b/subst.c
index 1ac6eb2d..ff0602da 100644
--- subst.c
+++ subst.c
@@ -10727,6 +10727,7 @@ comsub:
{
chk_atstar (temp, quoted, pflags, quoted_dollar_at_p, contains_dollar_at);
tdesc = parameter_brace_expand_word (temp, SPECIAL_VAR (temp, 0), quoted, pflags, 0);
+ free (temp1);
if (tdesc == &expand_wdesc_error || tdesc == &expand_wdesc_fatal)
return (tdesc);
ret = tdesc;
@@ -10739,6 +10740,7 @@ comsub:
{
set_exit_status (EXECUTION_FAILURE);
report_error (_("%s: invalid variable name for name reference"), temp);
+ free (temp1);
return (&expand_wdesc_error); /* XXX */
}
else
--
2.43.0