app-shells/bash: switch to patch tarballs

Was taking up 129K in files/ before.

Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2022-06-07 12:02:21 +01:00
parent 11b884b9bf
commit 39a5d033d5
74 changed files with 251 additions and 3263 deletions

View File

@@ -1,15 +1,26 @@
DIST bash-2.05b.tar.gz 1956216 BLAKE2B 15962417d13c6eec0db0861b601c33a6b13dc38d41672258f8f9fb8968a000ca1df7d5d3c99bbcb023e0b6b3e703d6c250291ac68ab3f24159eec7c2f0105b43 SHA512 595f84cfd38b239ff37f2c6fc22c669f8e1d4fea34400e30c4079ab657d05f735ee6b0e6af0db6c1b17dbf9cecec81805b467b4dbd45cc97044bfefac731aad6
DIST bash-2.05b_p13-patches.tar.xz 4152 BLAKE2B 0f3d25f9b3a5df36a2da32b9cfc16d23901fd3b63578863903ff01530b9c524338d5cadd0ebe7d4fb79f7ac57945d77a3432578d7c2702a49f650d5774772453 SHA512 ef040ed2f53bae49cd84615adb513031a4dcbccef1af0669c2464ee7e3bd87615cd250d12342483fc895b0e8e6120bbc3b5c28b0d9b94cd3c6fe48d6c510d1f1
DIST bash-3.0.tar.gz 2418293 BLAKE2B 7013cf7020e61987610933df55b1cf34036a2912c1844e87895535e7e77b28e2526b2a336365bd15cd2d528d9769783ff34c120c2d6932d8708e0b029ff68715 SHA512 2b56dc0531e908811e1cced23067d82505d57a3cf4651125a6e424649bc98f476366579306e03242388f0f5b17d2a09badc15b8358f70cde6f64c60b94015c9b
DIST bash-3.0_p22-patches.tar.xz 13564 BLAKE2B b7107ffb3f9c592950f10369ea6c00f40e67eacbd42a23821a3db71f7326fba016a6b3e868cbe6f61fc00204a5ea02be27fa699aa3776afaa4b0aff5ba1f2f00 SHA512 146ab52e716cdb5c0896cf95b423662ed39acab5a0c34530cc1f9b3084dd68af8df52e9c69a7b206aa57b67911bdf138f2d46441b9cc1e533b028dfeceaa233c
DIST bash-3.1.tar.gz 2533934 BLAKE2B 5cef5bb8a1b36688d578967e97bf19452f79f68012e4c720baceaf31cf1cd03d1dac0962d2b663a3b83bbea71b131ea54e15769fd22575ef1e610fd97efed615 SHA512 3b5d5f0de83d71c972e75267ab8f6b05a7e144acb39a7c6e14be7b4bcb9b67faeaf9a123fceebd957befa1222db05b9b539f524032d89eb1fb5936d9846c1c7e
DIST bash-3.1_p23-patches.tar.xz 5792 BLAKE2B 239cd54b576101745f1d054b0de9bb7f8071329a99c46a04d35f1022cd0a8bfc86b871bb31637d924d8822f23de63922572966af548b6f76191490180592dd9e SHA512 26ac839cd00b19ccf4e170faf0ac044d31158d77c6cc00654cd92a6a4312eb5ded652fd2f3347d997dd1dc13916b1d5471ce2bcc6d1af5af21ccab25498febc4
DIST bash-3.2.tar.gz 2529838 BLAKE2B 1e145f31231b0e5b0a2bbf2046e14df9718552856c01dc9699d75596b353ac0c8ac1d3bcfe4e0bd1a38aade6e775499f967925f74efe39f84611ac2b562ab47e SHA512 cc88b1a4dab9f752cf6a22153e40b8590f6d3408217730bb28f5eb431cbb5577c4d3befe8bd44669b8fa64433f299e0dd23511fd1ed8a820020e2f7f4a461758
DIST bash-3.2_p57-patches.tar.xz 6060 BLAKE2B b6ed8271c8bd8dc765b1ca431ab524734f3a8486cacc54f7d1402a568f4dfe2569dad226bdecfad4aabdacb77491a9679070afaf9c80fa40bc44fd1e4d5c2f17 SHA512 aaec0d98cea6fbe8a34ea430d289314fa4db98c284eefa6dbb787da6061d13ed0b89ce982c0147fa7bd2e8935fd955f106a86c2ddb38476a9b8379404394e42b
DIST bash-4.0.tar.gz 6230779 BLAKE2B 747614b0e7aa5aafec25850863e228837ac941a3285ec01e8adafde63ebb98c9211d1a8ae0782bc700340559a9884014c84c5ed2867cf40027886dd91de001bc SHA512 dccd099d11d649b26d5b5c2ab5fb8f33915631e1d86fba519a0464f2bd3a3289655e956cf161a0dc3671b8be193b6b065bede8a407d98af3012dd4b824711255
DIST bash-4.0_p44-patches.tar.xz 3036 BLAKE2B 2dbff6f391b0b6a239b693578812541004de81c841d32eb6e4d7dbb2ab436a9d4052de4e44ec753fa669090fc1c4420bc2607839c533b7a7477c91cc7c5ace35 SHA512 d81a8d625e1522195c80ffa010b8862fe304f470187e1a12be673fd04cfd22d3605a30fb53b718817c07404e793c1738a5dcb94902566304c28a5f8eb679c395
DIST bash-4.1.tar.gz 6598300 BLAKE2B 8ed70736071f7d946b939247dd43214059c7d545d99e4c7ec3388da263eb4f3faeeef939884ac8a489ded71fbfbaee15bb1cc6e29f3397f6e2c0d1e1d7097cda SHA512 2f2a053d98be9a31cd089e1293e3369ad05406f6543d1d1662d8b5807fdcfebc1dda79db9bf2c596a6351ea463fb9bd9c8943c1d45da9b82f2fd3bab0b8a581a
DIST bash-4.1_p17-patches.tar.xz 1604 BLAKE2B 95dee794fd9890a47f5571a5921bb7abf0708da522a21bc7ee14a75461c0a618cfd54d86f3e210580395aa10c53e9435728a6bda97c58970108ba5414d93ba38 SHA512 1a31b8a0423fafd6449fbfd8d4eb11877e8016f0fb8eb53c48a821791bfe1f7755d9a9999b08cdced39afdfcd3b2058b91a555a31ff4aeae472fc076bd93120f
DIST bash-4.2.tar.gz 7009201 BLAKE2B 52a4432ae401121ff187487a75a6541ce001c24d7d2251c3f0e33a58e93ff0c11b4c988003c6c740c13a51df0d752565023b8c39e79c96de52c73b49cc180523 SHA512 fdd3c230f4f7a687d36db1b8f7baab5e553cf55756e2d49a88ffaa4260c8cb949897dec9f48655e96608ef0093ac101b60c132060f06c711c0ab81aa3f148b5c
DIST bash-4.2_p53-patches.tar.xz 4112 BLAKE2B bff4d8db9af567c0e5966f45941dee99562674c462670ee8339e8de4a68f5a2e4c4ace9dd7929c39df8dd24382cf99a750745612dac3b11e7dde8e4e321b9f32 SHA512 83f0fbf4943aa285c1c241854e6952669d078b17015c02c37e43e3f1b92b6f2bd9aa20c72ff6f4322089051035e81943885c22a059f2db63edb5c60970a65d12
DIST bash-4.3.tar.gz 7955839 BLAKE2B 398461e90a1ab6fd726b1a9db41c4c2a1e184034e3b96029bd17097338f1f9869d1c2216bde0b5b3c8e561629824348a0da3045cc425914e8e024180a175efe4 SHA512 a852b8e46ee55568dce9d23a30a9dbd1c770c2d2a4bc91e1c3177d723b31b32c5d69d19704a93f165891b409b9dd2cc65723372044e2bd0ee49ed59a11512651
DIST bash-4.3_p48-r2-patches.tar.xz 1080 BLAKE2B 2dfea3d3b24f6e03a2ba4643000599f7afda45bf07c78fcd748626304a6e31e3b55ca62043a41c9081d54cbe652e326d2ae90d1a07ae1f96ae99393e30dd6680 SHA512 a90886833c4b9962795fb3bf4b0b345e493fa90f0676ef6b618e8838cbb89ab8b298b0df0706bf1c11d817f56273222e1b44b1f4921e6d23f5b570bafdd0949c
DIST bash-4.4.tar.gz 9377313 BLAKE2B ac0e481dd4f2d5b91eea4f0156f1fc398ef8bd1ccd941366aa9b041be576114c51e1ff1431ec871e96fb72257c2a05a0ebcbd88c43c221610fef7dfdb2502fc0 SHA512 73de3b425faaac55e45456b0f6f6d8077b5dfa7bb76e0d1894a19361b4a2b6bd4fbbe182117ddbfe9b07b4d898fba03537c261badc9533dd3c0da891764c7f29
DIST bash-4.4_p23-r2-patches.tar.xz 664 BLAKE2B 4a5b71b95744be6b22807671ae3348aeb236b0c50d86d2dcaf142d847f3616d2b40858dae99fadbddfe1b206a86ad7730a7ef43a1864c18840b0ce97add52568 SHA512 0cddd5a251e0de52a8717cb7bfdc46745d9b3b5192d6cc81125afc5ac7d65748641af3d8e2241d3bbf642a485a23960fe02177901a6184135bc79b68bbdb04cc
DIST bash-5.0.tar.gz 10135110 BLAKE2B a6c4d79144aa0c0f4a9433d618085c0d46b792b1de429b161f9f0266b55c099e13e44416c0886758a6f29411f5ceb79bfb0ec4eda47473f2713ae0b8081d6d3e SHA512 bb4519f06e278f271d08722b531e49d2e842cc3e0b02a6b3eee422e2efcb5b6226111af43f5e5eae56beb85ac8bfebcd6a4aacbabb8f609e529aa4d571890864
DIST bash-5.0_p18-patches.tar.xz 804 BLAKE2B 89e615a08920a4cfc90f72d125a8256275b0677fb2d7abf208ca90ac80471d5fbf7efb86c814b6ccbbc65772370ed8fe82b7cee9b247ec881c0b664dee152f72 SHA512 538f817867ff3613f2177f2e6d9fecc69057152ac9cf35a5a7448ddc83960b94bc8e8f2987226ba68d14de376127ee5cf6c83f5374b74feb14fa1c5aab6105c7
DIST bash-5.1.tar.gz 10458638 BLAKE2B 42059556694b604911b5b7936f94d42d8923f2931f3ebacefd95454274c7baadb1ec97629a524c1542e2e282dae66f1389334f8edc572ca8ee841cc3ac449ba7 SHA512 c44a0ce381469219548a3a27589af3fea4f22eda1ca4e9434b59fc16da81b471c29ce18e31590e0860a6a251a664b68c2b45e3a17d22cfc02799ffd9a208390c
DIST bash-5.1.tar.gz.sig 95 BLAKE2B ac9209d6a4ab4436c511a7a195594e9036d7d1aef7887972f61a0e97378a9685b882621d7f95f5326b155dc155c41635417ce2ca41ac6d0dda78bd293ea4249f SHA512 3966404c0f683c7ef214fcf283b551e5441af3897009f778308c2e34067d98d57c95561453416a54ca5b1daf9a1288dbf950fe3f13353703cead12f5eec5fad8
DIST bash-5.1_p16-patches.tar.xz 388 BLAKE2B 1575d54d311872c7ca71e13711fa0f7e3534fca16fd9d1ca045b6c696c9ca56f6a0ed5023a05d847ab5ddbefc22b8ef2c2a681f09571520f0294d83b495f0015 SHA512 c85e5b83f6ee1a7345647fa937d9718cab13be1a65886755d26a78d21fea4246650c7441a34fd729212e220366985b410562002d74c02c18de7ef0469b409ac7
DIST bash-5.2-beta.tar.gz 10767207 BLAKE2B e3e0afd0d032dab002f3f7327cddbed56578d4d205e687c3408a9985038a4f24e7a728b874ff4ad960ca0c18e3174364e251658fb5ac8d1abed9907dd77764d2 SHA512 114fef0e3160d68fec977ccbe921b9e8a5ce468a8baefa1adb38c253da4528a3bd9a2791c667b01f0b7e248692044357d0506ee8a0b0ff2d4facc26112d0557d
DIST bash-5.2-beta.tar.gz.sig 95 BLAKE2B 1c5a1ce4f6157593c40d931591dfa0c6b0baf8e871119fd94687d1fd17266be5e8445a174609075878f31f0e4d6722a6f19ae399a30bf3b5f254494aba5e21f7 SHA512 e0054cc76c9c5d066f6c4343ba8f144acb4f8792a1df1514845a9be4a1bd55b2b5bbf9f9318e8657d1efcd6dbe7b374eab757219d2334698a9ef56367bb4b4c1
DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071

View File

@@ -5,6 +5,10 @@ EAPI=7
inherit flag-o-matic toolchain-funcs
# Uncomment if we have a patchset
GENTOO_PATCH_DEV="sam"
GENTOO_PATCH_VER="${PV}"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-2.05b-patches/
PLEVEL="${PV##*_p}"
@@ -31,6 +35,10 @@ DESCRIPTION="The standard GNU Bourne again shell"
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html"
SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
if [[ -n ${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-2"
SLOT="${MY_PV}"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86"
@@ -46,15 +54,15 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}"/${PN}-2.05b-destdir.patch
"${FILESDIR}"/autoconf-mktime-2.53.patch # bug #220040
"${FILESDIR}"/${PN}-2.05b-protos.patch
"${FILESDIR}"/${PN}-2.05b-empty-herestring.patch
"${FILESDIR}"/${PN}-2.05b-rbash.patch # bug #26854
"${FILESDIR}"/${PN}-2.05b-parallel-build.patch # bug #41002
"${FILESDIR}"/${PN}-2.05b-jobs.patch
"${FILESDIR}"/${PN}-2.05b-fix-job-warning.patch
"${FILESDIR}"/${PN}-3.1-dev-fd-buffer-overflow.patch # bug #431850
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-2.05b-destdir.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/autoconf-mktime-2.53.patch # bug #220040
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-2.05b-protos.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-2.05b-empty-herestring.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-2.05b-rbash.patch # bug #26854
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-2.05b-parallel-build.patch # bug #41002
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-2.05b-jobs.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-2.05b-fix-job-warning.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.1-dev-fd-buffer-overflow.patch # bug #431850
)
pkg_setup() {
@@ -68,6 +76,10 @@ pkg_setup() {
src_unpack() {
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
}
src_prepare() {

View File

@@ -5,6 +5,10 @@ EAPI=7
inherit flag-o-matic toolchain-funcs
# Uncomment if we have a patchset
GENTOO_PATCH_DEV="sam"
GENTOO_PATCH_VER="${PV}"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/
PLEVEL="${PV##*_p}"
@@ -31,6 +35,10 @@ DESCRIPTION="The standard GNU Bourne again shell"
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html"
SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
if [[ -n ${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-2"
SLOT="${MY_PV}"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86"
@@ -46,20 +54,20 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}"/autoconf-mktime-2.53.patch
"${FILESDIR}"/${PN}-3.0-protos.patch
"${FILESDIR}"/${PN}-3.0-rbash.patch # bug #26854
"${FILESDIR}"/${PN}-2.05b-parallel-build.patch # bug #41002
"${FILESDIR}"/${PN}-3.0-darwin-conn.patch # bug #79124
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/autoconf-mktime-2.53.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.0-protos.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.0-rbash.patch # bug #26854
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-2.05b-parallel-build.patch # bug #41002
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.0-darwin-conn.patch # bug #79124
# Read patch headers for more info ... many ripped from Fedora/Debian[17]/SuSe/upstream
"${FILESDIR}"/${PN}-3.0-{afs,crash,jobs,manpage,pwd,ulimit,histtimeformat,locale,multibyteifs,subshell,volatile-command}.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.0-{afs,crash,jobs,manpage,pwd,ulimit,histtimeformat,locale,multibyteifs,subshell,volatile-command}.patch
"${FILESDIR}"/${PN}-3.0-read-builtin-pipe.patch # bug #87093
"${FILESDIR}"/${PN}-3.0-trap-fg-signals.patch
"${FILESDIR}"/${PN}-3.0-pgrp-pipe-fix.patch # bug #92349
"${FILESDIR}"/${PN}-3.0-strnlen.patch
"${FILESDIR}"/${PN}-3.1-dev-fd-buffer-overflow.patch # bug #431850
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.0-read-builtin-pipe.patch # bug #87093
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.0-trap-fg-signals.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.0-pgrp-pipe-fix.patch # bug #92349
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.0-strnlen.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.1-dev-fd-buffer-overflow.patch # bug #431850
)
pkg_setup() {
@@ -73,6 +81,10 @@ pkg_setup() {
src_unpack() {
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
}
src_prepare() {

View File

@@ -5,6 +5,10 @@ EAPI=7
inherit flag-o-matic toolchain-funcs
# Uncomment if we have a patchset
GENTOO_PATCH_DEV="sam"
GENTOO_PATCH_VER="${PV}"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-3.1-patches/
PLEVEL="${PV##*_p}"
@@ -31,6 +35,10 @@ DESCRIPTION="The standard GNU Bourne again shell"
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html"
SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
if [[ -n ${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-2"
SLOT="${MY_PV}"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86"
@@ -46,15 +54,15 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}"/autoconf-mktime-2.53.patch # bug #220040
"${FILESDIR}"/${PN}-2.05b-parallel-build.patch # bug #41002
"${FILESDIR}"/${PN}-3.1-protos.patch
"${FILESDIR}"/${PN}-3.1-ulimit.patch
"${FILESDIR}"/${PN}-3.0-read-memleak.patch
"${FILESDIR}"/${PN}-3.0-trap-fg-signals.patch
"${FILESDIR}"/${PN}-3.1-fix-dash-login-shell.patch # bug #118257
"${FILESDIR}"/${PN}-3.1-dev-fd-test-as-user.patch # bug #131875
"${FILESDIR}"/${PN}-3.1-dev-fd-buffer-overflow.patch # bug #431850
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/autoconf-mktime-2.53.patch # bug #220040
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-2.05b-parallel-build.patch # bug #41002
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.1-protos.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.1-ulimit.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.0-read-memleak.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.0-trap-fg-signals.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.1-fix-dash-login-shell.patch # bug #118257
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.1-dev-fd-test-as-user.patch # bug #131875
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.1-dev-fd-buffer-overflow.patch # bug #431850
)
pkg_setup() {
@@ -68,6 +76,10 @@ pkg_setup() {
src_unpack() {
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
}
src_prepare() {

View File

@@ -5,6 +5,10 @@ EAPI=7
inherit flag-o-matic toolchain-funcs
# Uncomment if we have a patchset
GENTOO_PATCH_DEV="sam"
GENTOO_PATCH_VER="${PV}"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-3.2-patches/
PLEVEL="${PV##*_p}"
@@ -31,6 +35,10 @@ DESCRIPTION="The standard GNU Bourne again shell"
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html"
SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
if [[ -n ${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-2"
SLOT="${MY_PV}"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86"
@@ -46,17 +54,17 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}"/autoconf-mktime-2.59.patch # bug #220040
"${FILESDIR}"/${PN}-3.2-loadables.patch
"${FILESDIR}"/${PN}-2.05b-parallel-build.patch # bug #41002
"${FILESDIR}"/${PN}-3.2-protos.patch
"${FILESDIR}"/${PN}-3.2-session-leader.patch # bug #231775
"${FILESDIR}"/${PN}-3.2-ldflags-for-build.patch # bug #211947
"${FILESDIR}"/${PN}-3.2-process-subst.patch
"${FILESDIR}"/${PN}-3.2-ulimit.patch
"${FILESDIR}"/${PN}-3.0-trap-fg-signals.patch
"${FILESDIR}"/${PN}-3.2-dev-fd-test-as-user.patch # bug #131875
"${FILESDIR}"/${PN}-4.2-dev-fd-buffer-overflow.patch # bug #431850
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/autoconf-mktime-2.59.patch # bug #220040
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.2-loadables.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-2.05b-parallel-build.patch # bug #41002
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.2-protos.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.2-session-leader.patch # bug #231775
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.2-ldflags-for-build.patch # bug #211947
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.2-process-subst.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.2-ulimit.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.0-trap-fg-signals.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-3.2-dev-fd-test-as-user.patch # bug #131875
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.2-dev-fd-buffer-overflow.patch # bug #431850
)
pkg_setup() {
@@ -70,6 +78,10 @@ pkg_setup() {
src_unpack() {
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
}
src_prepare() {

View File

@@ -5,6 +5,10 @@ EAPI=7
inherit flag-o-matic toolchain-funcs
# Uncomment if we have a patchset
GENTOO_PATCH_DEV="sam"
GENTOO_PATCH_VER="${PV}"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-4.0-patches/
PLEVEL="${PV##*_p}"
@@ -31,6 +35,10 @@ DESCRIPTION="The standard GNU Bourne again shell"
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html"
SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
if [[ -n ${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="${MY_PV}"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86"
@@ -46,14 +54,14 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}"/${PN}-4.0-configure.patch # bug #304901
"${FILESDIR}"/${PN}-4.x-deferred-heredocs.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.0-configure.patch # bug #304901
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.x-deferred-heredocs.patch
"${FILESDIR}"/${PN}-2.05b-parallel-build.patch # bug #41002
"${FILESDIR}"/${PN}-4.0-ldflags-for-build.patch # bug #211947
"${FILESDIR}"/${PN}-4.0-negative-return.patch
"${FILESDIR}"/${PN}-4.0-parallel-build.patch # bug #267613
"${FILESDIR}"/${PN}-4.2-dev-fd-buffer-overflow.patch #431850
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-2.05b-parallel-build.patch # bug #41002
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.0-ldflags-for-build.patch # bug #211947
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.0-negative-return.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.0-parallel-build.patch # bug #267613
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.2-dev-fd-buffer-overflow.patch #431850
)
pkg_setup() {
@@ -67,6 +75,10 @@ pkg_setup() {
src_unpack() {
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
}
src_prepare() {

View File

@@ -5,6 +5,10 @@ EAPI=7
inherit flag-o-matic toolchain-funcs
# Uncomment if we have a patchset
GENTOO_PATCH_DEV="sam"
GENTOO_PATCH_VER="${PV}"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-4.1-patches/
PLEVEL="${PV##*_p}"
@@ -31,6 +35,10 @@ DESCRIPTION="The standard GNU Bourne again shell"
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html"
SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
if [[ -n ${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="${MY_PV}"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86"
@@ -46,10 +54,10 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}"/${PN}-4.1-fbsd-eaccess.patch #bug #303411
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.1-fbsd-eaccess.patch #bug #303411
"${FILESDIR}"/${PN}-4.1-parallel-build.patch
"${FILESDIR}"/${PN}-4.2-dev-fd-buffer-overflow.patch #bug #431850
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.1-parallel-build.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.2-dev-fd-buffer-overflow.patch #bug #431850
)
pkg_setup() {
@@ -63,6 +71,10 @@ pkg_setup() {
src_unpack() {
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
}
src_prepare() {

View File

@@ -5,6 +5,10 @@ EAPI=7
inherit flag-o-matic toolchain-funcs
# Uncomment if we have a patchset
GENTOO_PATCH_DEV="sam"
GENTOO_PATCH_VER="${PV}"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/
PLEVEL="${PV##*_p}"
@@ -31,6 +35,10 @@ DESCRIPTION="The standard GNU Bourne again shell"
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html"
SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
if [[ -n ${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="${MY_PV}"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86"
@@ -48,11 +56,11 @@ BDEPEND="virtual/yacc"
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}"/${PN}-4.2-execute-job-control.patch # bug #383237
"${FILESDIR}"/${PN}-4.2-parallel-build.patch
"${FILESDIR}"/${PN}-4.2-no-readline.patch
"${FILESDIR}"/${PN}-4.2-read-retry.patch # bug #447810
"${FILESDIR}"/${PN}-4.2-speed-up-read-N.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.2-execute-job-control.patch # bug #383237
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.2-parallel-build.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.2-no-readline.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.2-read-retry.patch # bug #447810
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-4.2-speed-up-read-N.patch
)
pkg_setup() {
@@ -66,6 +74,10 @@ pkg_setup() {
src_unpack() {
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
}
src_prepare() {

View File

@@ -5,6 +5,10 @@ EAPI=7
inherit flag-o-matic toolchain-funcs
# Uncomment if we have a patchset
GENTOO_PATCH_DEV="sam"
GENTOO_PATCH_VER="${PV}-r2"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-4.3-patches/
PLEVEL="${PV##*_p}"
@@ -35,6 +39,10 @@ HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html"
SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
[[ ${PV} == *_rc* ]] && SRC_URI+=" ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz"
if [[ -n ${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="${MY_PV}"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86"
@@ -49,10 +57,10 @@ RDEPEND="${DEPEND}
BDEPEND="virtual/yacc"
PATCHES=(
"${FILESDIR}"/${PN}-4.3-mapfile-improper-array-name-validation.patch
"${FILESDIR}"/${PN}-4.3-arrayfunc.patch
"${FILESDIR}"/${PN}-4.3-protos.patch
"${FILESDIR}"/${PN}-4.4-popd-offset-overflow.patch # bug #600174
"${WORKDIR}"/${P}-r2-patches/${PN}-4.3-mapfile-improper-array-name-validation.patch
"${WORKDIR}"/${P}-r2-patches/${PN}-4.3-arrayfunc.patch
"${WORKDIR}"/${P}-r2-patches/${PN}-4.3-protos.patch
"${WORKDIR}"/${P}-r2-patches/${PN}-4.4-popd-offset-overflow.patch # bug #600174
)
S="${WORKDIR}/${MY_P}"
@@ -73,6 +81,10 @@ pkg_setup() {
src_unpack() {
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
}
src_prepare() {

View File

@@ -5,6 +5,10 @@ EAPI=7
inherit flag-o-matic toolchain-funcs prefix
# Uncomment if we have a patchset
GENTOO_PATCH_DEV="sam"
GENTOO_PATCH_VER="${PV}-r2"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-4.4-patches/
PLEVEL="${PV##*_p}"
@@ -44,6 +48,10 @@ else
SRC_URI="ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz"
fi
if [[ -n ${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="${MY_PV}"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
@@ -78,14 +86,18 @@ pkg_setup() {
src_unpack() {
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
}
src_prepare() {
# Include official patches
[[ ${PLEVEL} -gt 0 ]] && eapply -p0 $(patches -s)
eapply "${FILESDIR}/${PN}-4.4-jobs_overflow.patch" # bug #644720
eapply "${FILESDIR}/${PN}-4.4-set-SHOBJ_STATUS.patch" # bug #644720
eapply "${WORKDIR}"/${P}-r2-patches/${PN}-4.4-jobs_overflow.patch # bug #644720
eapply "${WORKDIR}"/${P}-r2-patches/${PN}-4.4-set-SHOBJ_STATUS.patch # bug #644720
# Clean out local libs so we know we use system ones w/releases.
if is_release ; then

View File

@@ -5,6 +5,10 @@ EAPI=7
inherit flag-o-matic toolchain-funcs prefix
# Uncomment if we have a patchset
GENTOO_PATCH_DEV="sam"
GENTOO_PATCH_VER="${PV}"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-5.0-patches/
PLEVEL="${PV##*_p}"
@@ -44,6 +48,10 @@ else
SRC_URI="ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz"
fi
if [[ -n ${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"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
@@ -64,8 +72,8 @@ S="${WORKDIR}/${MY_P}"
PATCHES=(
# Patches from Chet sent to bashbug ml
"${FILESDIR}"/${PN}-5.0-history-append.patch
"${FILESDIR}"/${PN}-5.0-syslog-history-extern.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-5.0-history-append.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-5.0-syslog-history-extern.patch
)
pkg_setup() {
@@ -84,6 +92,10 @@ pkg_setup() {
src_unpack() {
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
}
src_prepare() {

View File

@@ -6,6 +6,10 @@ EAPI=7
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/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}"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-5.1-patches/
PLEVEL="${PV##*_p}"
@@ -48,6 +52,10 @@ else
SRC_URI+=" verify-sig? ( ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz.sig )"
fi
if [[ -n ${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"
[[ "${PV}" == *_rc* ]] || \
@@ -70,7 +78,7 @@ S="${WORKDIR}/${MY_P}"
PATCHES=(
# Patches from Chet sent to bashbug ml
"${FILESDIR}"/${PN}-5.0-syslog-history-extern.patch
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-5.0-syslog-history-extern.patch
)
pkg_setup() {
@@ -88,9 +96,19 @@ pkg_setup() {
}
src_unpack() {
verify-sig_src_unpack
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
else
if use verify-sig ; then
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.sig}
fi
unpack ${MY_P}.tar.gz
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
fi
}
src_prepare() {

View File

@@ -10,6 +10,10 @@ EAPI=7
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/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}"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-5.1-patches/
PLEVEL="${PV##*_p}"
@@ -57,6 +61,10 @@ else
SRC_URI+=" verify-sig? ( ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz.sig )"
fi
if [[ -n ${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 is_release ; then
@@ -79,6 +87,8 @@ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-chetramey )"
S="${WORKDIR}/${MY_P}"
PATCHES=(
#"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/
# Patches from Chet sent to bashbug ml
"${FILESDIR}"/${PN}-5.0-syslog-history-extern.patch
)
@@ -101,8 +111,15 @@ src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
else
verify-sig_src_unpack
if use verify-sig ; then
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.sig}
fi
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
fi
}

View File

@@ -10,6 +10,10 @@ EAPI=7
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/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}"
# Official patchlevel
# See ftp://ftp.cwru.edu/pub/bash/bash-5.1-patches/
PLEVEL="${PV##*_p}"
@@ -57,6 +61,10 @@ else
SRC_URI+=" verify-sig? ( ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz.sig )"
fi
if [[ -n ${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 is_release ; then
@@ -79,6 +87,8 @@ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-chetramey )"
S="${WORKDIR}/${MY_P}"
PATCHES=(
#"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/
# Patches from Chet sent to bashbug ml
"${FILESDIR}"/${PN}-5.0-syslog-history-extern.patch
)
@@ -101,8 +111,15 @@ src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
else
verify-sig_src_unpack
if use verify-sig ; then
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.sig}
fi
unpack ${MY_P}.tar.gz
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
fi
fi
}

View File

@@ -1,199 +0,0 @@
https://bugs.gentoo.org/220040
--- a/configure
+++ b/configure
@@ -12393,22 +12393,25 @@ else
#line $LINENO "configure"
#include "confdefs.h"
/* Test program from Paul Eggert and Tony Leneis. */
-#if TIME_WITH_SYS_TIME
+#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
-# if HAVE_SYS_TIME_H
+# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
-#if HAVE_UNISTD_H
+#include <limits.h>
+#include <stdlib.h>
+
+#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
-#if !HAVE_ALARM
+#ifndef HAVE_ALARM
# define alarm(X) /* empty */
#endif
@@ -12416,6 +12419,7 @@ else
#undef putenv
static time_t time_t_max;
+static time_t time_t_min;
/* Values we'll use to set the TZ environment variable. */
static const char *const tz_strings[] = {
@@ -12424,9 +12428,9 @@ static const char *const tz_strings[] = {
};
#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
-/* Fail if mktime fails to convert a date in the spring-forward gap.
+/* Return 0 if mktime fails to convert a date in the spring-forward gap.
Based on a problem report from Andreas Jaeger. */
-static void
+static int
spring_forward_gap ()
{
/* glibc (up to about 1998-10-07) failed this test. */
@@ -12445,23 +12449,27 @@ spring_forward_gap ()
tm.tm_min = 0;
tm.tm_sec = 0;
tm.tm_isdst = -1;
- if (mktime (&tm) == (time_t)-1)
- exit (1);
+ return mktime (&tm) != (time_t) -1;
}
-static void
-mktime_test (now)
+static int
+mktime_test1 (now)
time_t now;
{
struct tm *lt;
- if ((lt = localtime (&now)) && mktime (lt) != now)
- exit (1);
- now = time_t_max - now;
- if ((lt = localtime (&now)) && mktime (lt) != now)
- exit (1);
+ return ! (lt = localtime (&now)) || mktime (lt) == now;
}
-static void
+static int
+mktime_test (now)
+ time_t now;
+{
+ return (mktime_test1 (now)
+ && mktime_test1 ((time_t) (time_t_max - now))
+ && mktime_test1 ((time_t) (time_t_min + now)));
+}
+
+static int
irix_6_4_bug ()
{
/* Based on code from Ariel Faigon. */
@@ -12474,11 +12482,10 @@ irix_6_4_bug ()
tm.tm_sec = 0;
tm.tm_isdst = -1;
mktime (&tm);
- if (tm.tm_mon != 2 || tm.tm_mday != 31)
- exit (1);
+ return tm.tm_mon == 2 && tm.tm_mday == 31;
}
-static void
+static int
bigtime_test (j)
int j;
{
@@ -12500,8 +12507,39 @@ bigtime_test (j)
&& lt->tm_wday == tm.tm_wday
&& ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
== (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
- exit (1);
+ return 0;
}
+ return 1;
+}
+
+static int
+year_2050_test ()
+{
+ /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
+ ignoring leap seconds. */
+ unsigned long int answer = 2527315200UL;
+
+ struct tm tm;
+ time_t t;
+ tm.tm_year = 2050 - 1900;
+ tm.tm_mon = 2 - 1;
+ tm.tm_mday = 1;
+ tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+
+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+ instead of "TZ=America/Vancouver" in order to detect the bug even
+ on systems that don't support the Olson extension, or don't have the
+ full zoneinfo tables installed. */
+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+ t = mktime (&tm);
+
+ /* Check that the result is either a failure, or close enough
+ to the correct answer that we can assume the discrepancy is
+ due to leap seconds. */
+ return (t == (time_t) -1
+ || (0 < t && answer - 120 <= t && t <= answer + 120));
}
int
@@ -12515,9 +12553,15 @@ main ()
isn't worth using anyway. */
alarm (60);
- for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
- continue;
- time_t_max--;
+ for (;;)
+ {
+ t = (time_t_max << 1) + 1;
+ if (t <= time_t_max)
+ break;
+ time_t_max = t;
+ }
+ time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max;
+
delta = time_t_max / 997; /* a suitable prime number */
for (i = 0; i < N_STRINGS; i++)
{
@@ -12525,17 +12569,22 @@ main ()
putenv (tz_strings[i]);
for (t = 0; t <= time_t_max - delta; t += delta)
- mktime_test (t);
- mktime_test ((time_t) 60 * 60);
- mktime_test ((time_t) 60 * 60 * 24);
-
- for (j = 1; 0 < j; j *= 2)
- bigtime_test (j);
- bigtime_test (j - 1);
+ if (! mktime_test (t))
+ return 1;
+ if (! (mktime_test ((time_t) 1)
+ && mktime_test ((time_t) (60 * 60))
+ && mktime_test ((time_t) (60 * 60 * 24))))
+ return 1;
+
+ for (j = 1; ; j <<= 1)
+ if (! bigtime_test (j))
+ return 1;
+ else if (INT_MAX / 2 < j)
+ break;
+ if (! bigtime_test (INT_MAX))
+ return 1;
}
- irix_6_4_bug ();
- spring_forward_gap ();
- exit (0);
+ return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ());
}
_ACEOF
rm -f conftest$ac_exeext

View File

@@ -1,197 +0,0 @@
http://bugs.gentoo.org/220040
--- a/configure
+++ b/configure
@@ -5299,26 +6059,25 @@
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Test program from Paul Eggert and Tony Leneis. */
-#if TIME_WITH_SYS_TIME
+#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
-# if HAVE_SYS_TIME_H
+# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
+#include <limits.h>
+#include <stdlib.h>
-#if HAVE_UNISTD_H
+#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
-#if !HAVE_ALARM
+#ifndef HAVE_ALARM
# define alarm(X) /* empty */
#endif
@@ -5335,9 +6094,9 @@
};
#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
-/* Fail if mktime fails to convert a date in the spring-forward gap.
+/* Return 0 if mktime fails to convert a date in the spring-forward gap.
Based on a problem report from Andreas Jaeger. */
-static void
+static int
spring_forward_gap ()
{
/* glibc (up to about 1998-10-07) failed this test. */
@@ -5356,29 +6115,27 @@
tm.tm_min = 0;
tm.tm_sec = 0;
tm.tm_isdst = -1;
- if (mktime (&tm) == (time_t)-1)
- exit (1);
+ return mktime (&tm) != (time_t) -1;
}
-static void
+static int
mktime_test1 (now)
time_t now;
{
struct tm *lt;
- if ((lt = localtime (&now)) && mktime (lt) != now)
- exit (1);
+ return ! (lt = localtime (&now)) || mktime (lt) == now;
}
-static void
+static int
mktime_test (now)
time_t now;
{
- mktime_test1 (now);
- mktime_test1 ((time_t) (time_t_max - now));
- mktime_test1 ((time_t) (time_t_min + now));
+ return (mktime_test1 (now)
+ && mktime_test1 ((time_t) (time_t_max - now))
+ && mktime_test1 ((time_t) (time_t_min + now)));
}
-static void
+static int
irix_6_4_bug ()
{
/* Based on code from Ariel Faigon. */
@@ -5391,11 +6148,10 @@
tm.tm_sec = 0;
tm.tm_isdst = -1;
mktime (&tm);
- if (tm.tm_mon != 2 || tm.tm_mday != 31)
- exit (1);
+ return tm.tm_mon == 2 && tm.tm_mday == 31;
}
-static void
+static int
bigtime_test (j)
int j;
{
@@ -5417,8 +6173,39 @@
&& lt->tm_wday == tm.tm_wday
&& ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
== (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
- exit (1);
+ return 0;
}
+ return 1;
+}
+
+static int
+year_2050_test ()
+{
+ /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
+ ignoring leap seconds. */
+ unsigned long int answer = 2527315200UL;
+
+ struct tm tm;
+ time_t t;
+ tm.tm_year = 2050 - 1900;
+ tm.tm_mon = 2 - 1;
+ tm.tm_mday = 1;
+ tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+
+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+ instead of "TZ=America/Vancouver" in order to detect the bug even
+ on systems that don't support the Olson extension, or don't have the
+ full zoneinfo tables installed. */
+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+ t = mktime (&tm);
+
+ /* Check that the result is either a failure, or close enough
+ to the correct answer that we can assume the discrepancy is
+ due to leap seconds. */
+ return (t == (time_t) -1
+ || (0 < t && answer - 120 <= t && t <= answer + 120));
}
int
@@ -5432,12 +6219,15 @@
isn't worth using anyway. */
alarm (60);
- for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
- continue;
- time_t_max--;
- if ((time_t) -1 < 0)
- for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2)
- continue;
+ for (;;)
+ {
+ t = (time_t_max << 1) + 1;
+ if (t <= time_t_max)
+ break;
+ time_t_max = t;
+ }
+ time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max;
+
delta = time_t_max / 997; /* a suitable prime number */
for (i = 0; i < N_STRINGS; i++)
{
@@ -5445,18 +6235,22 @@
putenv (tz_strings[i]);
for (t = 0; t <= time_t_max - delta; t += delta)
- mktime_test (t);
- mktime_test ((time_t) 1);
- mktime_test ((time_t) (60 * 60));
- mktime_test ((time_t) (60 * 60 * 24));
-
- for (j = 1; 0 < j; j *= 2)
- bigtime_test (j);
- bigtime_test (j - 1);
+ if (! mktime_test (t))
+ return 1;
+ if (! (mktime_test ((time_t) 1)
+ && mktime_test ((time_t) (60 * 60))
+ && mktime_test ((time_t) (60 * 60 * 24))))
+ return 1;
+
+ for (j = 1; ; j <<= 1)
+ if (! bigtime_test (j))
+ return 1;
+ else if (INT_MAX / 2 < j)
+ break;
+ if (! bigtime_test (INT_MAX))
+ return 1;
}
- irix_6_4_bug ();
- spring_forward_gap ();
- exit (0);
+ return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ());
}
_ACEOF
rm -f conftest$ac_exeext

View File

@@ -1,28 +0,0 @@
support DESTDIR install
--- bash-2.05b/Makefile.in
+++ bash-2.05b/Makefile.in
@@ -20,16 +20,16 @@
all: .made
# Include some boilerplate Gnu makefile definitions.
-prefix = @prefix@
+prefix = $(DESTDIR)@prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-infodir = @infodir@
-includedir = @includedir@
+exec_prefix = $(DESTDIR)@exec_prefix@
+bindir = $(DESTDIR)@bindir@
+libdir = $(DESTDIR)@libdir@
+infodir = $(DESTDIR)@infodir@
+includedir = $(DESTDIR)@includedir@
datadir = @datadir@
-mandir = @mandir@
+mandir = $(DESTDIR)@mandir@
manpfx = man
man1ext = .1

View File

@@ -1,25 +0,0 @@
###################################################################
# Added by Tavis Ormandy <taviso@gentoo.org> 01/05/2003
# Reproduce with
#
# $ xargs <<< ${EMTPY_VARIABLE}
# Segmentation fault.
#
# note: bash will still give you a "\n" with this patch, but this is
# standard behaviour, if you need proof:
#
# $ wc -l <<< ""
###############################
--- bash-2.05b/redir.c
+++ bash-2.05b/redir.c
@@ -263,7 +263,7 @@
int herelen, n, e;
herestr = expand_string_to_string (redirectee->word, 0);
- herelen = strlen (herestr);
+ herelen = (herestr == NULL) ? 0 : strlen (herestr);
n = write (fd, herestr, herelen);
if (n == herelen)
{

View File

@@ -1,14 +0,0 @@
fix obvious error:
common.c:247:5: warning: format '%s' expects a matching 'char *' argument [-Wformat=]
--- a/builtins/common.c
+++ b/builtins/common.c
@@ -244,7 +244,7 @@
char *s;
{
if (s)
- builtin_error ("%s: no job control");
+ builtin_error ("%s: no job control", s);
else
builtin_error ("no job control");
}

View File

@@ -1,28 +0,0 @@
Fix using bash with post-20040808 glibc ebuilds (from fedora)
--- bash-2.05b/jobs.c
+++ bash-2.05b/jobs.c
@@ -2423,6 +2423,7 @@
PROCESS *child;
pid_t pid;
int call_set_current, last_stopped_job, job, children_exited, waitpid_flags;
+ static int wcontinued_not_supported = 0;
call_set_current = children_exited = 0;
last_stopped_job = NO_JOB;
@@ -2436,7 +2437,15 @@
: 0;
if (sigchld || block == 0)
waitpid_flags |= WNOHANG;
+ retry:
+ if (wcontinued_not_supported)
+ waitpid_flags &= ~WCONTINUED;
pid = WAITPID (-1, &status, waitpid_flags);
+ if (pid == -1 && errno == EINVAL)
+ {
+ wcontinued_not_supported = 1;
+ goto retry;
+ }
/* The check for WNOHANG is to make sure we decrement sigchld only
if it was non-zero before we called waitpid. */

View File

@@ -1,15 +0,0 @@
Fix parallel make
http://bugs.gentoo.org/41002
--- a/Makefile.in
+++ b/Makefile.in
@@ -604,7 +604,7 @@
config.h: stamp-h
-stamp-h: config.status $(srcdir)/config.h.in $(srcdir)/config-top.h $(srcdir)/config-bot.h
+stamp-h: version.h config.status $(srcdir)/config.h.in $(srcdir)/config-top.h $(srcdir)/config-bot.h
CONFIG_FILES= CONFIG_HEADERS=config.h $(SHELL) ./config.status
config.status: $(srcdir)/configure

View File

@@ -1,25 +0,0 @@
move prototypes around so they show up when needed
--- a/externs.h
+++ b/externs.h
@@ -327,6 +327,9 @@
#undef xstrchr
extern char *xstrchr __P((const char *, int));
+/* declarations for functions defined in lib/sh/zcatfd.c */
+extern int zcatfd __P((int, int, char *));
+
/* declarations for functions defined in lib/sh/zread.c */
extern ssize_t zread __P((int, char *, size_t));
extern ssize_t zreadintr __P((int, char *, size_t));
--- a/jobs.h
+++ b/jobs.h
@@ -175,6 +175,8 @@
extern void ignore_tty_job_signals __P((void));
extern void default_tty_job_signals __P((void));
+extern void close_pgrp_pipe __P((void));
+
#if defined (JOB_CONTROL)
extern int job_control;
#endif

View File

@@ -1,27 +0,0 @@
Fix broken rbash functionality when used as a login shell via /etc/passwd
http://bugs.gentoo.org/26854
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=170298
Backported from bash-3.1
--- bash-2.05b/shell.c
+++ bash-2.05b/shell.c
@@ -1065,6 +1099,8 @@
if (restricted)
return 1;
temp = base_pathname (name);
+ if (*temp == '-')
+ temp++;
return (STREQ (temp, RESTRICTED_SHELL_NAME));
}
@@ -1082,6 +1118,8 @@
char *temp;
temp = base_pathname (name);
+ if (*temp == '-')
+ temp++;
if (restricted || (STREQ (temp, RESTRICTED_SHELL_NAME)))
{
set_var_read_only ("PATH");

View File

@@ -1,20 +0,0 @@
Ripped from Fedora
- Fixed AFS support for output redirection, so that the correct errors
are reported for other filesystems (bug #155373).
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=155373
--- bash-3.0/redir.c.afs 2005-04-20 09:16:15.000000000 +0100
+++ bash-3.0/redir.c 2005-04-20 09:16:58.000000000 +0100
@@ -596,7 +596,9 @@
fd = open (filename, flags, mode);
#if defined (AFS)
if ((fd < 0) && (errno == EACCES))
- fd = open (filename, flags & ~O_CREAT, mode);
+ if ((fd = open (filename, flags & ~O_CREAT, mode)) < 0)
+ /* Restore previous errno. */
+ errno = EACCES;
#endif /* AFS */
}

View File

@@ -1,46 +0,0 @@
> Machine Type: i686-pc-linux-gnu
>
> Bash Version: 3.0
> Patch Level: 0
> Release Status: release
>
> Description:
> GNU bash, version 3.00.0(1)-release (i686-pc-linux-gnu)
> (and
> GNU bash, version 2.05b.0(1)-release (i386-redhat-linux-gnu)
>
> dumps a core because of a null pointer "in make_bare_word
> at make_cmd.c:90" (see gdb output below)
Thanks for the report. Here's a quick fix:
*** a/arrayfunc.c
--- b/arrayfunc.c
***************
*** 709,713 ****
return ((char *)NULL);
}
! else if (var == 0)
return ((char *)NULL);
else if (array_p (var) == 0)
--- 709,713 ----
return ((char *)NULL);
}
! else if (var == 0 || value_cell (var) == 0)
return ((char *)NULL);
else if (array_p (var) == 0)
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
( ``Discere est Dolere'' -- chet )
Live...Laugh...Love
Chet Ramey, ITS, CWRU chet@po.cwru.edu http://tiswww.tis.cwru.edu/~chet/
_______________________________________________
Bug-bash mailing list
Bug-bash@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-bash

View File

@@ -1,20 +0,0 @@
Sune Foldager writes:
On Darwin (Mac OS X), bash incorrectly assumed that it has been called over a
network connection (such as ssh, rsh etc.), when stdin stems from the pipe()
system call. This is because bash's heuristic code for determining if it's
been started over a net connection is incorrect on Darwin kernels.
http://bugs.gentoo.org/79124
--- a/lib/sh/netconn.c
+++ b/lib/sh/netconn.c
@@ -53,7 +53,8 @@
l = sizeof(sa);
rv = getpeername(fd, &sa, &l);
/* Solaris 2.5 getpeername() returns EINVAL if the fd is not a socket. */
- return ((rv < 0 && (errno == ENOTSOCK || errno == EINVAL)) ? 0 : 1);
+ /* Darwin 7.7.0 getpeername() returns ENOTCONN if the fd was created with pipe(). */
+ return ((rv < 0 && (errno == ENOTSOCK || errno == ENOTCONN || errno == EINVAL)) ? 0 : 1);
#else /* !HAVE_GETPEERNAME || SVR4_2 || __BEOS__ */
# if defined (SVR4) || defined (SVR4_2)
/* Sockets on SVR4 and SVR4.2 are character special (streams) devices. */

View File

@@ -1,56 +0,0 @@
Ripped from Debian
http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00008.html
From: Enrique Perez-Terron <enrio@online.no>
To: bug-bash@gnu.org
Subject: When using HISTTIMEFORMAT, the date and the command are run
together.
Date: Sun, 01 Aug 2004 18:36:45 +0200
Configuration Information [Automatically generated, do not change]:
Machine: i586
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='i586'
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i586-pc-linux-gnu'
-DCONF_VENDOR='pc' -DLOCALEDIR='/usr/local/share/locale'
-DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I. -I./include -I./lib
-g -O2
uname output: Linux arabia.home.lan 2.6.6-1.435.2.3 #1 Thu Jul 1
09:11:28 EDT 2004 i586 i586 i386 GNU/Linux
Machine Type: i586-pc-linux-gnu
# DP: Add space separating the time and the command in the
# DP: output from the history builtin command.
Bash Version: 3.0
Patch Level: 0
Release Status: release
Description:
There is no space separating the time and the command in the
output from the history builtin command.
Repeat-By:
$ export HISTTIMEFORMAT=_A_format_string_
$ history 3
997 _A_format_string_echo $BASH_VERSION
998 _A_format_string_export HISTTIMEFORMAT=_A_format_string_
999 _A_format_string_history 3
Fix:
--- ./builtins/history.def.orig 2003-12-20 00:02:09.000000000 +0100
+++ ./builtins/history.def 2004-08-01 18:18:02.652720102 +0200
@@ -287,9 +287,10 @@
QUIT;
timestr = (histtimefmt && *histtimefmt) ? histtime (hlist[i], histtimefmt) : (char *)NULL;
- printf ("%5d%c %s%s\n", i + history_base,
+ printf ("%5d%c %s%s%s\n", i + history_base,
histdata(i) ? '*' : ' ',
((timestr && *timestr) ? timestr : ""),
+ ((timestr && *timestr) ? " " : ""),
histline(i));
i++;
}

View File

@@ -1,56 +0,0 @@
Ripped from Fedora
* Wed Sep 8 2004 Tim Waugh <twaugh@redhat.com> 3.0-13
- Check for EINVAL from waitpid() and avoid WCONTINUED in that case.
- Fixed jobs4 test.
From: Tim Waugh
Subject: [patch] bash-3.0: avoid WCONTINUED if invalid
Date: Wed, 8 Sep 2004 16:52:38 +0100
User-agent: Mutt/1.4.1i
Hi,
GNU libc defines WCONTINUED, but (at least on Linux 2.4.x kernels)
waitpid() returns -1 with errno set to EINVAL if WCONTINUED is
supplied in options.
Here is a patch to retry without WCONTINUED set in that case.
Tim.
--- bash-3.0/tests/jobs4.sub
+++ bash-3.0/tests/jobs4.sub
@@ -18,5 +18,5 @@
wait
-cat &
+sleep 100 &
kill -1 %% && echo i killed it || echo could not kill it
--- bash-3.0/jobs.c
+++ bash-3.0/jobs.c
@@ -2475,6 +2475,7 @@
PROCESS *child;
pid_t pid;
int call_set_current, last_stopped_job, job, children_exited, waitpid_flags;
+ static int wcontinued_not_supported = 0;
call_set_current = children_exited = 0;
last_stopped_job = NO_JOB;
@@ -2488,7 +2489,15 @@
: 0;
if (sigchld || block == 0)
waitpid_flags |= WNOHANG;
+ retry:
+ if (wcontinued_not_supported)
+ waitpid_flags &= ~WCONTINUED;
pid = WAITPID (-1, &status, waitpid_flags);
+ if (pid == -1 && errno == EINVAL)
+ {
+ wcontinued_not_supported = 1;
+ goto retry;
+ }
/* The check for WNOHANG is to make sure we decrement sigchld only
if it was non-zero before we called waitpid. */

View File

@@ -1,112 +0,0 @@
Ripped from SuSe
http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00005.html
From: schwab@suse.de
To: bug-bash@gnu.org
Subject: HISTTIMEFORMAT doesn't track locale changes
Date: Sun, 1 Aug 2004 11:14:00 +0200 (CEST)
Configuration Information [Automatically generated, do not change]:
Machine: ia64
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='ia64' -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='ia64-unknown-linux-gnu' -DCONF_VENDOR='unknown' -DLOCALEDIR='/usr/local/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I../bash-3.0 -I../bash-3.0/include -I../bash-3.0/lib -O2 -g
uname output: Linux sykes 2.6.5-22-default #1 SMP Fri Jul 2 13:43:23 UTC 2004 ia64 ia64 ia64 GNU/Linux
Machine Type: ia64-unknown-linux-gnu
Bash Version: 3.0
Patch Level: 0
Release Status: release
Description:
Bash doesn't use the current locale when formatting HISTTIMEFORMAT.
Repeat-By:
sykes:/tmp/bash/Build/:[0]$ locale
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC=POSIX
LC_TIME=POSIX
LC_COLLATE=POSIX
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
sykes:/tmp/bash/Build/:[0]$ history 1
1502 history 1
sykes:/tmp/bash/Build/:[0]$ HISTTIMEFORMAT=%c
sykes:/tmp/bash/Build/:[0]$ history 1
1504 Sun Aug 1 10:56:59 2004history 1
sykes:/tmp/bash/Build/:[0]$ export LC_TIME=$LANG
sykes:/tmp/bash/Build/:[0]$ history 1
1506 Sun Aug 1 10:57:24 2004history 1
--- bash-3.0/locale.c
+++ bash-3.0/locale.c
@@ -71,9 +71,10 @@ set_default_locale ()
textdomain (PACKAGE);
}
-/* Set default values for LC_CTYPE, LC_COLLATE, LC_MESSAGES and LC_NUMERIC
- if they are not specified in the environment, but LC_ALL is. This
- should be called from main() after parsing the environment. */
+/* Set default values for LC_CTYPE, LC_COLLATE, LC_MESSAGES, LC_NUMERIC
+ and LC_TIME if they are not specified in the environment, but LC_ALL
+ is. This should be called from main() after parsing the
+ environment. */
void
set_default_locale_vars ()
{
@@ -109,6 +110,12 @@ set_default_locale_vars ()
setlocale (LC_NUMERIC, lc_all);
# endif /* LC_NUMERIC */
+# if defined (LC_TIME)
+ val = get_string_value ("LC_TIME");
+ if (val == 0 && lc_all && *lc_all)
+ setlocale (LC_TIME, lc_all);
+# endif /* LC_TIME */
+
#endif /* HAVE_SETLOCALE */
val = get_string_value ("TEXTDOMAIN");
@@ -213,6 +220,13 @@ set_locale_var (var, value)
return (setlocale (LC_NUMERIC, get_locale_var ("LC_NUMERIC")) != 0);
# endif /* LC_NUMERIC */
}
+ else if (var[3] == 'T' && var[4] == 'I') /* LC_TIME */
+ {
+# if defined (LC_TIME)
+ if (lc_all == 0 || *lc_all == '\0')
+ return (setlocale (LC_TIME, get_locale_var ("LC_TIME")) != 0);
+# endif /* LC_TIME */
+ }
#endif /* HAVE_SETLOCALE */
return (0);
@@ -285,6 +299,9 @@ reset_locale_vars ()
# if defined (LC_NUMERIC)
setlocale (LC_NUMERIC, get_locale_var ("LC_NUMERIC"));
# endif
+# if defined (LC_TIME)
+ setlocale (LC_TIME, get_locale_var ("LC_TIME"));
+# endif
locale_setblanks ();
--- bash-3.0/variables.c
+++ bash-3.0/variables.c
@@ -3646,6 +3646,7 @@ static struct name_and_function special_
{ "LC_CTYPE", sv_locale },
{ "LC_MESSAGES", sv_locale },
{ "LC_NUMERIC", sv_locale },
+ { "LC_TIME", sv_locale },
{ "MAIL", sv_mail },
{ "MAILCHECK", sv_mail },

View File

@@ -1,15 +0,0 @@
Ripped from Fedora
fix obvious display bug
--- bash-3.0/doc/bash.1
+++ bash-3.0/doc/bash.1
@@ -3929,7 +3929,7 @@
.B SIGHUP
to all jobs when an interactive login shell exits.
.PP
-If \Bbash\fP is waiting for a command to complete and receives a signal
+If \fBbash\fP is waiting for a command to complete and receives a signal
for which a trap has been set, the trap will not be executed until
the command completes.
When \fBbash\fP is waiting for an asynchronous command via the \fBwait\fP

View File

@@ -1,281 +0,0 @@
From: Tim Waugh <twaugh@redhat.com>
To: bug-bash@gnu.org
Subject: [patch] multibyte IFS values
Date: Tue, 24 Aug 2004 13:34:59 +0100
Hi,
Here is a patch to address these problems:
http://lists.gnu.org/archive/html/bug-bash/2004-07/msg00294.html
http://lists.gnu.org/archive/html/bug-bash/2004-07/msg00296.html
It works well for me at least.
Tim.
--- bash-3.0/subst.c.multibyteifs 2004-08-20 15:22:48.366497771 +0100
+++ bash-3.0/subst.c 2004-08-20 18:13:30.833624616 +0100
@@ -124,7 +124,12 @@
SHELL_VAR *ifs_var;
char *ifs_value;
unsigned char ifs_cmap[UCHAR_MAX + 1];
+#if defined (HANDLE_MULTIBYTE)
+unsigned char ifs_firstc[MB_LEN_MAX];
+size_t ifs_firstc_len;
+#else
unsigned char ifs_firstc;
+#endif
/* Extern functions and variables from different files. */
extern int last_command_exit_value, last_command_exit_signal;
@@ -862,8 +867,14 @@
char *charlist;
{
register int i = *sindex;
+ size_t slen;
+#if defined (HANDLE_MULTIBYTE)
+ size_t clen;
+ wchar_t *wcharlist = NULL;
+#endif
int c;
char *temp;
+ DECLARE_MBSTATE;
if (charlist[0] == '\'' && charlist[1] == '\0')
{
@@ -872,18 +883,65 @@
return temp;
}
- for (i = *sindex; c = string[i]; i++)
+ slen = strlen (string + *sindex) + *sindex;
+ i = *sindex;
+#if defined (HANDLE_MULTIBYTE)
+ clen = strlen (charlist);
+#endif
+ while ((c = string[i]))
{
+#if defined (HANDLE_MULTIBYTE)
+ size_t mblength;
+#endif
+
if (c == CTLESC)
{
- i++;
+ i += 2;
continue;
}
+#if defined (HANDLE_MULTIBYTE)
+ mblength = mblen (string + i, slen - i);
+ if (mblength > 1)
+ {
+ wchar_t wc;
+ size_t mblength = mbtowc (&wc, string + i, slen - i);
+ if (MB_INVALIDCH (mblength))
+ {
+ if (MEMBER (c, charlist))
+ break;
+ }
+ else
+ {
+ if (!wcharlist)
+ {
+ size_t len = mbstowcs (wcharlist, charlist, 0);
+ if (len == -1)
+ len = 0;
+ wcharlist = xmalloc (sizeof (wchar_t) * (len + 1));
+ mbstowcs (wcharlist, charlist, 1 + len);
+ }
+
+ if (wcschr (wcharlist, wc))
+ {
+ break;
+ }
+ }
+ }
+ else
+#endif
+
if (MEMBER (c, charlist))
break;
+
+ ADVANCE_CHAR (string, slen, i);
}
+#if defined (HANDLE_MULTIBYTE)
+ if (wcharlist)
+ free (wcharlist);
+#endif
+
temp = substring (string, *sindex, i);
*sindex = i;
@@ -1456,11 +1514,36 @@
d2 = 0;
if (delims)
{
- d2 = (char *)xmalloc (strlen (delims) + 1);
- for (i = ts = 0; delims[i]; i++)
+ size_t slength = strlen (delims);
+#if defined (HANDLE_MULTIBYTE)
+ size_t mblength = 1;
+ DECLARE_MBSTATE;
+#endif
+
+ d2 = (char *)xmalloc (slength + 1);
+ i = ts = 0;
+ while (delims[i])
{
+#if defined (HANDLE_MULTIBYTE)
+ mbstate_t state_bak = state;
+ mblength = mbrlen (delims + i, slength, &state);
+
+ if (MB_INVALIDCH (mblength))
+ state = state_bak;
+ else if (mblength != 1)
+ {
+ memcpy (d2 + ts, delims + i, mblength);
+ ts += mblength;
+ i += mblength;
+ slength -= mblength;
+ continue;
+ }
+#endif
+
if (whitespace(delims[i]) == 0)
d2[ts++] = delims[i];
+ i++;
+ slength--;
}
d2[ts] = '\0';
}
@@ -1654,10 +1737,19 @@
string_list_dollar_star (list)
WORD_LIST *list;
{
+#if defined (HANDLE_MULTIBYTE)
+ char sep[MB_CUR_MAX + 1];
+#else
char sep[2];
+#endif
+#if defined (HANDLE_MULTIBYTE)
+ memcpy (sep, ifs_firstc, ifs_firstc_len);
+ sep[ifs_firstc_len] = '\0';
+#else
sep[0] = ifs_firstc;
sep[1] = '\0';
+#endif
return (string_list_internal (list, sep));
}
@@ -1676,14 +1768,41 @@
WORD_LIST *list;
int quoted;
{
- char *ifs, sep[2];
+ char *ifs;
+#if defined (HANDLE_MULTIBYTE)
+ char sep[MB_CUR_MAX + 1];
+#else
+ char sep[2];
+#endif
WORD_LIST *tlist;
/* XXX this could just be ifs = ifs_value; */
ifs = ifs_var ? value_cell (ifs_var) : (char *)0;
+#if defined (HANDLE_MULTIBYTE)
+ if (ifs && *ifs)
+ {
+ size_t mblength = mblen (ifs, strnlen (ifs, MB_CUR_MAX));
+ if (MB_INVALIDCH (mblength))
+ {
+ sep[0] = *ifs;
+ sep[1] = '\0';
+ }
+ else
+ {
+ memcpy (sep, ifs, mblength);
+ sep[mblength] = '\0';
+ }
+ }
+ else
+ {
+ sep[0] = ' ';
+ sep[1] = '\0';
+ }
+#else
sep[0] = (ifs == 0 || *ifs == 0) ? ' ' : *ifs;
sep[1] = '\0';
+#endif
tlist = ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (ifs && *ifs == 0))
? quote_list (list)
@@ -1732,6 +1851,7 @@
WORD_DESC *t;
char *current_word, *s;
int sindex, sh_style_split, whitesep;
+ size_t slen = 0;
if (!string || !*string)
return ((WORD_LIST *)NULL);
@@ -1805,7 +1925,12 @@
/* Move past the current separator character. */
if (string[sindex])
- sindex++;
+ {
+ DECLARE_MBSTATE;
+ if (!slen)
+ slen = strlen (string);
+ ADVANCE_CHAR (string, slen, sindex);
+ }
/* Now skip sequences of space, tab, or newline characters if they are
in the list of separators. */
@@ -6796,7 +6921,27 @@
ifs_cmap[uc] = 1;
}
+#if defined (HANDLE_MULTIBYTE)
+ if (!ifs_value)
+ {
+ ifs_firstc[0] = '\0';
+ ifs_firstc_len = 1;
+ }
+ else
+ {
+ size_t ifs_len = strnlen (ifs_value, MB_CUR_MAX);
+ ifs_firstc_len = mblen (ifs_value, ifs_len);
+ if (MB_INVALIDCH (ifs_firstc_len))
+ {
+ ifs_firstc[0] = '\0';
+ ifs_firstc_len = 1;
+ }
+ else
+ memcpy (ifs_firstc, ifs_value, ifs_firstc_len);
+ }
+#else
ifs_firstc = ifs_value ? *ifs_value : 0;
+#endif
}
char *
--- bash-3.0/subst.h.multibyteifs 2004-08-20 15:51:08.301074583 +0100
+++ bash-3.0/subst.h 2004-08-20 15:51:39.070206473 +0100
@@ -231,7 +231,12 @@
extern SHELL_VAR *ifs_var;
extern char *ifs_value;
extern unsigned char ifs_cmap[];
+#if defined (HANDLE_MULTIBYTE)
+extern unsigned char ifs_firstc[];
+extern size_t ifs_firstc_len;
+#else
extern unsigned char ifs_firstc;
+#endif
/* Evaluates to 1 if C is a character in $IFS. */
#define isifs(c) (ifs_cmap[(unsigned char)(c)] != 0)

View File

@@ -1,20 +0,0 @@
Fix an error when using pipes and PGRP_PIPE is enabled.
( exec 3>&1; : `echo >&3` )
bash: 3: Bad file descriptor
http://bugs.gentoo.org/92349
Patch from upstream
*** a/jobs.c
--- b/jobs.c
***************
*** 3456,3459 ****
--- 3901,3907 ----
stop_making_children ();
start_pipeline ();
+ #if defined (PGRP_PIPE)
+ pipe_close (pgrp_pipe);
+ #endif
delete_all_jobs (0);
set_job_control (0);

View File

@@ -1,68 +0,0 @@
move prototypes around so they show up when needed
--- a/externs.h
+++ b/externs.h
@@ -327,6 +327,9 @@
#undef xstrchr
extern char *xstrchr __P((const char *, int));
+/* declarations for functions defined in lib/sh/zcatfd.c */
+extern int zcatfd __P((int, int, char *));
+
/* declarations for functions defined in lib/sh/zread.c */
extern ssize_t zread __P((int, char *, size_t));
extern ssize_t zreadintr __P((int, char *, size_t));
--- a/jobs.h
+++ b/jobs.h
@@ -175,6 +175,8 @@
extern void ignore_tty_job_signals __P((void));
extern void default_tty_job_signals __P((void));
+extern void close_pgrp_pipe __P((void));
+
#if defined (JOB_CONTROL)
extern int job_control;
#endif
--- a/general.c
+++ b/general.c
@@ -39,6 +39,8 @@
#include "bashintl.h"
#include "shell.h"
+#include "test.h"
+
#include <tilde/tilde.h>
#if !defined (errno)
--- a/builtins/evalfile.c
+++ b/builtins/evalfile.c
@@ -39,6 +39,7 @@
#include "../flags.h"
#include "../input.h"
#include "../execute_cmd.h"
+#include "../trap.h"
#if defined (HISTORY)
# include "../bashhist.h"
--- a/lib/glob/strmatch.c
+++ b/lib/glob/strmatch.c
@@ -25,9 +25,6 @@
#include "strmatch.h"
extern int xstrmatch __P((char *, char *, int));
-#if defined (HAVE_MULTIBYTE)
-extern int internal_wstrmatch __P((wchar_t *, wchar_t *, int));
-#endif
int
strmatch (pattern, string, flags)
--- a/lib/glob/strmatch.h
+++ b/lib/glob/strmatch.h
@@ -57,6 +57,7 @@
#if HANDLE_MULTIBYTE
extern int wcsmatch __P((wchar_t *, wchar_t *, int));
+extern int internal_wstrmatch __P((wchar_t *, wchar_t *, int));
#endif
#endif /* _STRMATCH_H */

View File

@@ -1,16 +0,0 @@
Ripped from Fedora
* Tue Mar 15 2005 Tim Waugh <twaugh@redhat.com> 3.0-30
- Fix PS1 expansion crash when PWD is unset (bg #151116).
--- bash-3.0/parse.y.pwd 2005-03-15 14:22:36.000000000 +0000
+++ bash-3.0/parse.y 2005-03-15 14:22:37.000000000 +0000
@@ -4103,7 +4103,7 @@
#define ROOT_PATH(x) ((x)[0] == '/' && (x)[1] == 0)
#define DOUBLE_SLASH_ROOT(x) ((x)[0] == '/' && (x)[1] == '/' && (x)[2] == 0)
/* Abbreviate \W as ~ if $PWD == $HOME */
- if (c == 'W' && (((t = get_string_value ("HOME")) == 0) || STREQ (t, temp) == 0))
+ if (c == 'W' && (((t = get_string_value ("HOME")) == 0) || STREQ (t, t_string) == 0))
{
if (ROOT_PATH (t_string) == 0 && DOUBLE_SLASH_ROOT (t_string) == 0)
{

View File

@@ -1,18 +0,0 @@
Fix broken rbash functionality when used as a login shell via /etc/passwd
http://bugs.gentoo.org/26854
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=170298
Backported from bash-3.1
--- bash-3.0/shell.c
+++ bash-3.0/shell.c
@@ -1089,6 +1099,8 @@
if (restricted)
return 1;
temp = base_pathname (name);
+ if (*temp == '-')
+ temp++;
return (STREQ (temp, RESTRICTED_SHELL_NAME));
}

View File

@@ -1,20 +0,0 @@
Description:
When using 'read -u 3' or the like, and the pipe-buf already contains
more than one line, the first line is returned, and bytes up to the next
multiple of 128 are skipped.
http://lists.gnu.org/archive/html/bug-bash/2005-03/msg00168.html
http://lists.gnu.org/archive/html/bug-bash/2005-03/msg00173.html
http://bugs.gentoo.org/show_bug.cgi?id=87093
--- a/builtins/read.def
+++ b/builtins/read.def
@@ -276,7 +276,7 @@
input_is_tty = isatty (fd);
if (input_is_tty == 0)
#ifndef __CYGWIN__
- input_is_pipe = (lseek (0, 0L, SEEK_CUR) < 0) && (errno == ESPIPE);
+ input_is_pipe = (lseek (fd, 0L, SEEK_CUR) < 0) && (errno == ESPIPE);
#else
input_is_pipe = 1;
#endif

View File

@@ -1,15 +0,0 @@
Ripped from Fedora
http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00013.html
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=173283
--- bash-3.0/builtins/read.def
+++ bash-3.0/builtins/read.def
@@ -461,6 +461,7 @@
if (retval < 0)
{
builtin_error (_("read error: %d: %s"), fd, strerror (errno));
+ run_unwind_frame ("read_builtin");
return (EXECUTION_FAILURE);
}
#endif

View File

@@ -1,175 +0,0 @@
Add strnlen function for non-glibc systems, as one of Fedora's patches requires it.
--- bash-3.0/configure.in
+++ bash-3.0/configure.in
@@ -613,6 +613,9 @@
AC_LIBOBJ(vprint)
fi
+AC_CHECK_FUNCS([strnlen])
+AC_LIBOBJ(strnlen)
+
dnl signal stuff
AC_TYPE_SIGNAL
--- /dev/null
+++ bash-3.0/lib/sh/strnlen.c
@@ -0,0 +1,27 @@
+/*
+ Copyright (C) 2005 Gentoo Foundation
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, US
+*/
+
+#include <stdlib.h>
+
+size_t strnlen(const char *s, size_t n)
+{
+ int i;
+ for (i=0; s[i] && i<n; i++)
+ /* noop */ ;
+ return i;
+}
--- bash-3.0/configure
+++ bash-3.0/configure
@@ -10696,9 +10696,127 @@ _ACEOF
fi
if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then
- LIBOBJS="$LIBOBJS vprint.$ac_objext"
+ case $LIBOBJS in
+ "vprint.$ac_objext" | \
+ *" vprint.$ac_objext" | \
+ "vprint.$ac_objext "* | \
+ *" vprint.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS vprint.$ac_objext" ;;
+esac
+
fi
+
+for ac_func in strnlen
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+case $LIBOBJS in
+ "strnlen.$ac_objext" | \
+ *" strnlen.$ac_objext" | \
+ "strnlen.$ac_objext "* | \
+ *" strnlen.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strnlen.$ac_objext" ;;
+esac
+
+
echo "$as_me:$LINENO: checking return type of signal handlers" >&5
echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
if test "${ac_cv_type_signal+set}" = set; then

View File

@@ -1,39 +0,0 @@
Ripped from Fedora which took this from upstream
* Tue Nov 22 2005 Tim Waugh <twaugh@redhat.com> 3.0-37
- Applied patch from upstream to fix parsing problem (bug #146638).
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=146638
--- bash-3.0/parse.y.subshell 2005-11-22 13:19:11.000000000 +0000
+++ bash-3.0/parse.y 2005-11-22 13:19:24.000000000 +0000
@@ -2055,14 +2055,6 @@
if (uc)
shell_input_line_index++;
- if MBTEST(uc == '\\' && remove_quoted_newline && shell_input_line[shell_input_line_index] == '\n')
- {
- if (SHOULD_PROMPT ())
- prompt_again ();
- line_number++;
- goto restart_read;
- }
-
#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
/* If UC is NULL, we have reached the end of the current input string. If
pushed_string_list is non-empty, it's time to pop to the previous string
@@ -2078,6 +2070,14 @@
}
#endif /* ALIAS || DPAREN_ARITHMETIC */
+ if MBTEST(uc == '\\' && remove_quoted_newline && shell_input_line[shell_input_line_index] == '\n')
+ {
+ if (SHOULD_PROMPT ())
+ prompt_again ();
+ line_number++;
+ goto restart_read;
+ }
+
if (!uc && shell_input_line_terminator == EOF)
return ((shell_input_line_index != 0) ? '\n' : EOF);

View File

@@ -1,23 +0,0 @@
Don't barf on handled signals inside of scripts. Makes for nicer output.
patch by Martin Schlemmer <azarah@gentoo.org>
--- a/jobs.c
+++ b/jobs.c
@@ -2893,11 +2893,11 @@
}
else if (IS_FOREGROUND (job))
{
-#if !defined (DONT_REPORT_SIGPIPE)
- if (termsig && WIFSIGNALED (s) && termsig != SIGINT)
-#else
- if (termsig && WIFSIGNALED (s) && termsig != SIGINT && termsig != SIGPIPE)
-#endif
+ if (termsig && WIFSIGNALED (s) && termsig != SIGINT &&
+#if defined (DONT_REPORT_SIGPIPE)
+ termsig != SIGPIPE &&
+#endif
+ signal_is_trapped (termsig) == 0)
{
fprintf (stderr, "%s", j_strsignal (termsig));

View File

@@ -1,186 +0,0 @@
Ripped from Fedora
--- bash-3.0/builtins/ulimit.def
+++ bash-3.0/builtins/ulimit.def
@@ -34,15 +34,20 @@
-a all current limits are reported
-c the maximum size of core files created
-d the maximum size of a process's data segment
+ -e the maximum scheduling priority (`nice')
-f the maximum size of files created by the shell
+ -i the maximum number of pending signals
-l the maximum size a process may lock into memory
-m the maximum resident set size
-n the maximum number of open file descriptors
-p the pipe buffer size
+ -q the maximum number of bytes in POSIX message queues
+ -r the maximum rt priority
-s the maximum stack size
-t the maximum amount of cpu time in seconds
-u the maximum number of user processes
-v the size of virtual memory
+ -x the maximum number of file locks
If LIMIT is given, it is the new value of the specified resource;
the special LIMIT values `soft', `hard', and `unlimited' stand for
@@ -199,7 +204,13 @@
#ifdef RLIMIT_DATA
{ 'd', RLIMIT_DATA, 1024, "data seg size", "kbytes" },
#endif
+#ifdef RLIMIT_NICE
+ { 'e', RLIMIT_NICE, 1, "max nice", (char *)NULL},
+#endif /* RLIMIT_NICE */
{ 'f', RLIMIT_FILESIZE, 1024, "file size", "blocks" },
+#ifdef RLIMIT_SIGPENDING
+ { 'i', RLIMIT_SIGPENDING, 1, "pending signals", (char *)NULL},
+#endif
#ifdef RLIMIT_MEMLOCK
{ 'l', RLIMIT_MEMLOCK, 1024, "max locked memory", "kbytes" },
#endif
@@ -208,6 +219,12 @@
#endif /* RLIMIT_RSS */
{ 'n', RLIMIT_OPENFILES, 1, "open files", (char *)NULL},
{ 'p', RLIMIT_PIPESIZE, 512, "pipe size", "512 bytes" },
+#ifdef RLIMIT_MSGQUEUE
+ { 'q', RLIMIT_MSGQUEUE, 1, "POSIX message queues", "bytes" },
+#endif
+#ifdef RLIMIT_RTPRIO
+ { 'r', RLIMIT_RTPRIO, 1, "max rt priority", (char *)NULL},
+#endif /* RLIMIT_RTPRIO */
#ifdef RLIMIT_STACK
{ 's', RLIMIT_STACK, 1024, "stack size", "kbytes" },
#endif
@@ -221,6 +238,9 @@
#ifdef RLIMIT_SWAP
{ 'w', RLIMIT_SWAP, 1024, "swap size", "kbytes" },
#endif
+#ifdef RLIMIT_LOCKS
+ { 'x', RLIMIT_LOCKS, 1, "file locks", (char *)NULL},
+#endif
{ -1, -1, -1, (char *)NULL, (char *)NULL }
};
#define NCMDS (sizeof(limits) / sizeof(limits[0]))
@@ -647,11 +667,11 @@
for (i = 0; limits[i].option > 0; i++)
{
- if (get_limit (i, &softlim, &hardlim) < 0)
+ if (get_limit (i, &softlim, &hardlim) == 0)
+ printone (i, (mode & LIMIT_SOFT) ? softlim : hardlim, 1);
+ else if (errno != EINVAL)
builtin_error ("%s: cannot get limit: %s", limits[i].description,
strerror (errno));
- else
- printone (i, (mode & LIMIT_SOFT) ? softlim : hardlim, 1);
}
}
@@ -670,7 +690,7 @@
else
sprintf (unitstr, "(-%c) ", limits[limind].option);
- printf ("%-18s %16s", limits[limind].description, unitstr);
+ printf ("%-20s %16s", limits[limind].description, unitstr);
}
if (curlim == RLIM_INFINITY)
puts ("unlimited");
--- bash-3.0/doc/bashref.texi
+++ bash-3.0/doc/bashref.texi
@@ -3793,7 +3793,7 @@
@item ulimit
@btindex ulimit
@example
-ulimit [-acdflmnpstuvSH] [@var{limit}]
+ulimit [-acdeflmnpqrstuvxSH] [@var{limit}]
@end example
@code{ulimit} provides control over the resources available to processes
started by the shell, on systems that allow such control. If an
@@ -3814,9 +3814,15 @@
@item -d
The maximum size of a process's data segment.
+@item -e
+The maximum scheduling priority.
+
@item -f
The maximum size of files created by the shell.
+@item -i
+The maximum number of pending signals.
+
@item -l
The maximum size that may be locked into memory.
@@ -3829,6 +3835,12 @@
@item -p
The pipe buffer size.
+@item -q
+The maximum number of bytes in POSIX message queues.
+
+@item -r
+The maximum RT priority.
+
@item -s
The maximum stack size.
@@ -3841,6 +3853,9 @@
@item -v
The maximum amount of virtual memory available to the process.
+@item -x
+The maximum amount of file locks.
+
@end table
If @var{limit} is given, it is the new value of the specified resource;
--- bash-3.0/doc/bash.1
+++ bash-3.0/doc/bash.1
@@ -8362,7 +8362,7 @@
returns true if any of the arguments are found, false if
none are found.
.TP
-\fBulimit\fP [\fB\-SHacdflmnpstuv\fP [\fIlimit\fP]]
+\fBulimit\fP [\fB\-SHacdefilmnpqrstuvx\fP [\fIlimit\fP]]
Provides control over the resources available to the shell and to
processes started by it, on systems that allow such control.
The \fB\-H\fP and \fB\-S\fP options specify that the hard or soft limit is
@@ -8398,9 +8398,15 @@
.B \-d
The maximum size of a process's data segment
.TP
+.B \-e
+The maximum scheduling priority (`nice')
+.TP
.B \-f
The maximum size of files created by the shell
.TP
+.B \-i
+The maximum number of pending signals
+.TP
.B \-l
The maximum size that may be locked into memory
.TP
@@ -8414,6 +8420,12 @@
.B \-p
The pipe size in 512-byte blocks (this may not be set)
.TP
+.B \-q
+The maximum number of bytes in POSIX message queues
+.TP
+.B \-r
+The maximum rt priority
+.TP
.B \-s
The maximum stack size
.TP
@@ -8425,6 +8437,9 @@
.TP
.B \-v
The maximum amount of virtual memory available to the shell
+.TP
+.B \-x
+The maximum number of file locks
.PD
.PP
If

View File

@@ -1,16 +0,0 @@
Ripped from Debian
# DP: current_command must be declared volatile to prevent assignments from
# being optimized away as dead code. In reality, the use of setjmp/longjmp
# makes it not dead code at all.
--- a/eval.c
+++ b/eval.c
@@ -63,7 +63,7 @@
reader_loop ()
{
int our_indirection_level;
- COMMAND *current_command = (COMMAND *)NULL;
+ COMMAND * volatile current_command = (COMMAND *)NULL;
USE_VAR(current_command);

View File

@@ -1,16 +0,0 @@
https://bugs.gentoo.org/431850
this is a backport of the upstream bash42-033 patch for bash 3.1/3.0/2.05
--- a/test.c
+++ b/test.c
@@ -194,7 +194,8 @@
trailing slash. Make sure /dev/fd/xx really uses DEV_FD_PREFIX/xx.
On most systems, with the notable exception of linux, this is
effectively a no-op. */
- char pbuf[32];
+ static char *pbuf = 0;
+ pbuf = xrealloc (pbuf, sizeof (DEV_FD_PREFIX) + strlen (path + 8));
strcpy (pbuf, DEV_FD_PREFIX);
strcat (pbuf, path + 8);
return (stat (pbuf, finfo));

View File

@@ -1,14 +0,0 @@
Fix the /dev/fd test when running as a non root user
after logging in as a root user #131875
--- bash-3.1/configure
+++ bash-3.1/configure
@@ -23098,7 +23098,7 @@
if test -d /dev/fd && test -r /dev/fd/0 < /dev/null; then
# check for systems like FreeBSD 5 that only provide /dev/fd/[012]
exec 3<&0
- if test -r /dev/fd/3; then
+ if test -e /dev/fd/3; then
bash_cv_dev_fd=standard
else
bash_cv_dev_fd=absent

View File

@@ -1,52 +0,0 @@
http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00054.html
http://bugs.gentoo.org/118257
Date: Fri, 13 Jan 2006 17:11:10 +0000
From: Tim Waugh <twaugh@redhat.com>
To: bug-bash@gnu.org
Subject: [patch] fix 'exec -l /bin/bash'
Configuration Information [Automatically generated, do not change]:
Machine: i386
OS: linux-gnu
Compiler: i386-redhat-linux-gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='i386' -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i386-redhat-linux-gnu' -DCONF_VENDOR='redhat' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I. -I./include -I./lib -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=pentium4 -fasynchronous-unwind-tables
uname output: Linux gene.surrey.redhat.com 2.6.13-1.1597_FC5 #1 Thu Oct 6 02:13:06 EDT 2005 i686 i686 i386 GNU/Linux
Machine Type: i386-redhat-linux-gnu
Bash Version: 3.1
Patch Level: 1
Release Status: release
Description:
If bash has argv[0] as '-/bin/bash' it does not become a login
shell.
Repeat-By:
exec -l /bin/bash
shopt
Fix:
--- bash-3.1/shell.c.login 2006-01-13 16:52:14.000000000 +0000
+++ bash-3.1/shell.c 2006-01-13 16:52:15.000000000 +0000
@@ -1543,9 +1543,10 @@
any startup files; just try to be more like /bin/sh. */
shell_name = argv0 ? base_pathname (argv0) : PROGRAM;
- if (*shell_name == '-')
+ if (argv0 && *argv0 == '-')
{
- shell_name++;
+ if (*shell_name == '-')
+ shell_name++;
login_shell++;
}
_______________________________________________
Bug-bash mailing list
Bug-bash@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-bash

View File

@@ -1,67 +0,0 @@
move prototypes around so they show up when needed
--- a/jobs.h
+++ b/jobs.h
@@ -182,6 +182,7 @@
extern int count_all_jobs __P((void));
+extern void close_pgrp_pipe __P((void));
extern void terminate_current_pipeline __P((void));
extern void terminate_stopped_jobs __P((void));
extern void hangup_all_jobs __P((void));
--- a/lib/glob/strmatch.c
+++ b/lib/glob/strmatch.c
@@ -25,9 +25,6 @@
#include "strmatch.h"
extern int xstrmatch __P((char *, char *, int));
-#if defined (HAVE_MULTIBYTE)
-extern int internal_wstrmatch __P((wchar_t *, wchar_t *, int));
-#endif
int
strmatch (pattern, string, flags)
--- a/lib/glob/strmatch.h
+++ b/lib/glob/strmatch.h
@@ -57,6 +57,7 @@
#if HANDLE_MULTIBYTE
extern int wcsmatch __P((wchar_t *, wchar_t *, int));
+extern int internal_wstrmatch __P((wchar_t *, wchar_t *, int));
#endif
#endif /* _STRMATCH_H */
--- a/builtins/echo.def
+++ b/builtins/echo.def
@@ -31,6 +31,8 @@
#include <stdio.h>
#include "../shell.h"
+#include "common.h"
+
$BUILTIN echo
$FUNCTION echo_builtin
$DEPENDS_ON V9_ECHO
--- a/lib/sh/winsize.c
+++ b/lib/sh/winsize.c
@@ -55,6 +55,7 @@
#if defined (READLINE)
extern void rl_set_screen_size __P((int, int));
#endif
+extern void sh_set_lines_and_columns __P((int, int));
void
get_new_window_size (from_sig, rp, cp)
--- a/support/bashversion.c
+++ b/support/bashversion.c
@@ -47,6 +47,9 @@
extern char *dist_version;
extern int patch_level;
+extern char *shell_version_string __P((void));
+extern void show_shell_version __P((int));
+
char *shell_name = "bash";
char *progname;

View File

@@ -1,122 +0,0 @@
Ripped from Fedora
Add support for RLIMIT_NICE/RLIMIT_RTPRIO and add missing documentation
for many other options
--- a/builtins/ulimit.def
+++ b/builtins/ulimit.def
@@ -24,7 +24,7 @@
$BUILTIN ulimit
$FUNCTION ulimit_builtin
$DEPENDS_ON !_MINIX
-$SHORT_DOC ulimit [-SHacdfilmnpqstuvx] [limit]
+$SHORT_DOC ulimit [-SHacdefilmnpqrstuvx] [limit]
Ulimit provides control over the resources available to processes
started by the shell, on systems that allow such control. If an
option is given, it is interpreted as follows:
@@ -34,18 +34,20 @@
-a all current limits are reported
-c the maximum size of core files created
-d the maximum size of a process's data segment
+ -e the maximum scheduling priority (`nice')
-f the maximum size of files created by the shell
- -i the maximum number of pending signals
+ -i the maximum number of pending signals
-l the maximum size a process may lock into memory
-m the maximum resident set size
-n the maximum number of open file descriptors
-p the pipe buffer size
- -q the maximum number of bytes in POSIX message queues
+ -q the maximum number of bytes in POSIX message queues
+ -r the maximum rt priority
-s the maximum stack size
-t the maximum amount of cpu time in seconds
-u the maximum number of user processes
-v the size of virtual memory
- -x the maximum number of file locks
+ -x the maximum number of file locks
If LIMIT is given, it is the new value of the specified resource;
the special LIMIT values `soft', `hard', and `unlimited' stand for
@@ -202,6 +204,9 @@
#ifdef RLIMIT_DATA
{ 'd', RLIMIT_DATA, 1024, "data seg size", "kbytes" },
#endif
+#ifdef RLIMIT_NICE
+ { 'e', RLIMIT_NICE, 1, "max nice", (char *)NULL},
+#endif
{ 'f', RLIMIT_FILESIZE, 1024, "file size", "blocks" },
#ifdef RLIMIT_SIGPENDING
{ 'i', RLIMIT_SIGPENDING, 1, "pending signals", (char *)NULL },
@@ -217,6 +222,9 @@
#ifdef RLIMIT_MSGQUEUE
{ 'q', RLIMIT_MSGQUEUE, 1, "POSIX message queues", "bytes" },
#endif
+#ifdef RLIMIT_RTPRIO
+ { 'r', RLIMIT_RTPRIO, 1, "max rt priority", (char *)NULL},
+#endif
#ifdef RLIMIT_STACK
{ 's', RLIMIT_STACK, 1024, "stack size", "kbytes" },
#endif
--- a/doc/bashref.texi
+++ b/doc/bashref.texi
@@ -3833,7 +3833,7 @@
@item ulimit
@btindex ulimit
@example
-ulimit [-acdfilmnpqstuvxSH] [@var{limit}]
+ulimit [-acdefilmnpqrstuvxSH] [@var{limit}]
@end example
@code{ulimit} provides control over the resources available to processes
started by the shell, on systems that allow such control. If an
@@ -3854,6 +3854,9 @@
@item -d
The maximum size of a process's data segment.
+@item -e
+The maximum scheduling priority.
+
@item -f
The maximum size of files created by the shell.
@@ -3875,6 +3878,9 @@
@item -q
The maximum number of bytes in POSIX message queues.
+@item -r
+The maximum RT priority.
+
@item -s
The maximum stack size.
--- a/doc/bash.1
+++ b/doc/bash.1
@@ -8490,7 +8490,7 @@
returns true if any of the arguments are found, false if
none are found.
.TP
-\fBulimit\fP [\fB\-SHacdfilmnpqstuvx\fP [\fIlimit\fP]]
+\fBulimit\fP [\fB\-SHacdefilmnpqrstuvx\fP [\fIlimit\fP]]
Provides control over the resources available to the shell and to
processes started by it, on systems that allow such control.
The \fB\-H\fP and \fB\-S\fP options specify that the hard or soft limit is
@@ -8526,6 +8526,9 @@
.B \-d
The maximum size of a process's data segment
.TP
+.B \-e
+The maximum scheduling priority (`nice')
+.TP
.B \-f
The maximum size of files created by the shell
.TP
@@ -8548,6 +8551,9 @@
.B \-q
The maximum number of bytes in POSIX message queues
.TP
+.B \-r
+The maximum rt priority
+.TP
.B \-s
The maximum stack size
.TP

View File

@@ -1,26 +0,0 @@
diff -ur bash-3.2.orig/aclocal.m4 bash-3.2/aclocal.m4
--- bash-3.2.orig/aclocal.m4 2006-12-30 20:00:31 +0000
+++ bash-3.2/aclocal.m4 2006-12-30 20:02:02 +0000
@@ -1544,7 +1544,8 @@
if test -d /dev/fd && test -r /dev/fd/0 < /dev/null; then
# check for systems like FreeBSD 5 that only provide /dev/fd/[012]
exec 3</dev/null
- if test -r /dev/fd/3; then
+ # bash test builtin always works here, so we use the test binary
+ if `which test || echo test` -e /dev/fd/3; then
bash_cv_dev_fd=standard
else
bash_cv_dev_fd=absent
diff -ur bash-3.2.orig/configure bash-3.2/configure
--- bash-3.2.orig/configure 2006-12-30 20:03:24 +0000
+++ bash-3.2/configure 2006-12-30 20:01:50 +0000
@@ -27179,7 +27179,8 @@
if test -d /dev/fd && test -r /dev/fd/0 < /dev/null; then
# check for systems like FreeBSD 5 that only provide /dev/fd/[012]
exec 3</dev/null
- if test -r /dev/fd/3; then
+ # bash test builtin always works here, so we use the test binary
+ if `which test || echo test` -e /dev/fd/3; then
bash_cv_dev_fd=standard
else
bash_cv_dev_fd=absent

View File

@@ -1,37 +0,0 @@
http://bugs.gentoo.org/211947
fix from Takashi YOSHII: dont use target ldflags for build apps
--- bash/builtins/Makefile.in
+++ bash/builtins/Makefile.in
@@ -63,7 +63,7 @@
LIBS = @LIBS@
LDFLAGS = @LDFLAGS@ $(LOCAL_LDFLAGS) $(CFLAGS)
-LDFLAGS_FOR_BUILD = $(LDFLAGS)
+LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ $(LOCAL_LDFLAGS) $(CFLAGS_FOR_BUILD)
LOCAL_LDFLAGS = @LOCAL_LDFLAGS@
#LIBS_FOR_BUILD = @LIBS_FOR_BUILD@
LIBS_FOR_BUILD = $(LIBS)
--- bash/support/Makefile.in
+++ bash/support/Makefile.in
@@ -58,7 +58,7 @@
LOCAL_LDFLAGS = @LOCAL_LDFLAGS@
LDFLAGS = @LDFLAGS@ $(LOCAL_LDFLAGS) $(CFLAGS)
-LDFLAGS_FOR_BUILD = $(LDFLAGS)
+LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ $(LOCAL_LDFLAGS) $(CFLAGS_FOR_BUILD)
INCLUDES = -I${BUILD_DIR} -I${topdir}
--- bash/Makefile.in
+++ bash/Makefile.in
@@ -143,7 +143,7 @@
CCFLAGS_FOR_BUILD = $(BASE_CCFLAGS) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD)
LDFLAGS = @LDFLAGS@ $(STATIC_LD) $(LOCAL_LDFLAGS) $(PROFILE_FLAGS) $(CFLAGS)
-LDFLAGS_FOR_BUILD = $(LDFLAGS)
+LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ $(LOCAL_LDFLAGS) $(CFLAGS_FOR_BUILD)
INCLUDES = -I. @RL_INCLUDE@ -I$(srcdir) -I$(BASHINCDIR) -I$(LIBSRC) $(INTL_INC)

View File

@@ -1,239 +0,0 @@
--- bash-3.2/examples/loadables/basename.c
+++ bash-3.2/examples/loadables/basename.c
@@ -11,6 +11,7 @@
#include <stdio.h>
#include "builtins.h"
#include "shell.h"
+#include "common.h"
basename_builtin (list)
WORD_LIST *list;
--- bash-3.2/examples/loadables/cut.c
+++ bash-3.2/examples/loadables/cut.c
@@ -63,6 +63,7 @@
#include "builtins.h"
#include "shell.h"
#include "bashgetopt.h"
+#include "common.h"
#if !defined (errno)
extern int errno;
--- bash-3.2/examples/loadables/dirname.c
+++ bash-3.2/examples/loadables/dirname.c
@@ -11,6 +11,7 @@
#include <stdio.h>
#include "builtins.h"
#include "shell.h"
+#include "common.h"
dirname_builtin (list)
WORD_LIST *list;
--- bash-3.2/examples/loadables/finfo.c
+++ bash-3.2/examples/loadables/finfo.c
@@ -12,6 +12,7 @@
#include <pwd.h>
#include <grp.h>
#include <errno.h>
+#include <time.h>
#include "bashansi.h"
#include "shell.h"
--- bash-3.2/examples/loadables/head.c
+++ bash-3.2/examples/loadables/head.c
@@ -21,6 +21,7 @@
#include "builtins.h"
#include "shell.h"
#include "bashgetopt.h"
+#include "common.h"
#if !defined (errno)
extern int errno;
--- bash-3.2/examples/loadables/ln.c
+++ bash-3.2/examples/loadables/ln.c
@@ -18,6 +18,7 @@
#include "builtins.h"
#include "shell.h"
#include "bashgetopt.h"
+#include "common.h"
#if !defined (errno)
extern int errno;
--- bash-3.2/examples/loadables/logname.c
+++ bash-3.2/examples/loadables/logname.c
@@ -11,6 +11,7 @@
#include "builtins.h"
#include "shell.h"
+#include "common.h"
#if !defined (errno)
extern int errno;
--- bash-3.2/examples/loadables/mkdir.c
+++ bash-3.2/examples/loadables/mkdir.c
@@ -16,6 +16,7 @@
#include "builtins.h"
#include "shell.h"
#include "bashgetopt.h"
+#include "common.h"
#if !defined (errno)
extern int errno;
--- bash-3.2/examples/loadables/pathchk.c
+++ bash-3.2/examples/loadables/pathchk.c
@@ -45,6 +45,7 @@
#include "stdc.h"
#include "bashgetopt.h"
#include "maxpath.h"
+#include "common.h"
#if !defined (errno)
extern int errno;
--- bash-3.2/examples/loadables/print.c
+++ bash-3.2/examples/loadables/print.c
@@ -17,6 +17,8 @@
#include "builtins.h"
#include "stdc.h"
#include "bashgetopt.h"
+#include "builtext.h"
+#include "common.h"
#if !defined (errno)
extern int errno;
--- bash-3.2/examples/loadables/printenv.c
+++ bash-3.2/examples/loadables/printenv.c
@@ -11,6 +11,7 @@
#include "builtins.h"
#include "shell.h"
#include "bashgetopt.h"
+#include "common.h"
extern char **export_env;
--- bash-3.2/examples/loadables/push.c
+++ bash-3.2/examples/loadables/push.c
@@ -11,6 +11,7 @@
#include "shell.h"
#include "jobs.h"
#include "bashgetopt.h"
+#include "common.h"
#ifndef errno
extern int errno;
--- bash-3.2/examples/loadables/realpath.c
+++ bash-3.2/examples/loadables/realpath.c
@@ -34,6 +34,7 @@
#include "builtins.h"
#include "shell.h"
#include "bashgetopt.h"
+#include "common.h"
#ifndef errno
extern int errno;
@@ -67,14 +68,14 @@
vflag = 1;
break;
default:
- usage();
+ builtin_usage();
}
}
list = loptend;
if (list == 0)
- usage();
+ builtin_usage();
for (es = EXECUTION_SUCCESS; list; list = list->next) {
p = list->word->word;
--- bash-3.2/examples/loadables/rmdir.c
+++ bash-3.2/examples/loadables/rmdir.c
@@ -8,6 +8,7 @@
#include <errno.h>
#include "builtins.h"
#include "shell.h"
+#include "common.h"
#if !defined (errno)
extern int errno;
--- bash-3.2/examples/loadables/sleep.c
+++ bash-3.2/examples/loadables/sleep.c
@@ -27,6 +27,7 @@
#include "shell.h"
#include "builtins.h"
+#include "common.h"
#define RETURN(x) \
do { \
--- bash-3.2/examples/loadables/tee.c
+++ bash-3.2/examples/loadables/tee.c
@@ -22,6 +22,7 @@
#include "builtins.h"
#include "shell.h"
#include "bashgetopt.h"
+#include "common.h"
#if !defined (errno)
extern int errno;
--- bash-3.2/examples/loadables/truefalse.c
+++ bash-3.2/examples/loadables/truefalse.c
@@ -1,5 +1,7 @@
/* true and false builtins */
+#include <config.h>
+
#include "bashtypes.h"
#include "shell.h"
#include "builtins.h"
--- bash-3.2/examples/loadables/tty.c
+++ bash-3.2/examples/loadables/tty.c
@@ -8,6 +8,7 @@
#include "builtins.h"
#include "shell.h"
#include "bashgetopt.h"
+#include "common.h"
extern char *ttyname ();
--- bash-3.2/examples/loadables/uname.c
+++ bash-3.2/examples/loadables/uname.c
@@ -27,6 +27,7 @@
#include "builtins.h"
#include "shell.h"
#include "bashgetopt.h"
+#include "common.h"
#define FLAG_SYSNAME 0x01 /* -s */
#define FLAG_NODENAME 0x02 /* -n */
--- bash-3.2/examples/loadables/unlink.c
+++ bash-3.2/examples/loadables/unlink.c
@@ -14,6 +14,7 @@
#include "builtins.h"
#include "shell.h"
+#include "common.h"
#ifndef errno
extern int errno;
--- bash-3.2/examples/loadables/whoami.c
+++ bash-3.2/examples/loadables/whoami.c
@@ -8,6 +8,7 @@
#include "builtins.h"
#include "shell.h"
#include "bashgetopt.h"
+#include "common.h"
whoami_builtin (list)
WORD_LIST *list;
--- bash-3.2/examples/loadables/Makefile.in
+++ bash-3.2/examples/loadables/Makefile.in
@@ -68,7 +68,7 @@
SHOBJ_CC = @SHOBJ_CC@
SHOBJ_CFLAGS = @SHOBJ_CFLAGS@
SHOBJ_LD = @SHOBJ_LD@
-SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@
+SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@ @LDFLAGS@
SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@
SHOBJ_LIBS = @SHOBJ_LIBS@
SHOBJ_STATUS = @SHOBJ_STATUS@

View File

@@ -1,12 +0,0 @@
Fix process substitution on BSD
--- a/execute_cmd.c
+++ b/execute_cmd.c
@@ -2672,6 +2672,7 @@
do_piping (pipe_in, pipe_out);
+ subshell_environment = 0;
if (async)
subshell_environment |= SUBSHELL_ASYNC;
if (pipe_in != NO_PIPE || pipe_out != NO_PIPE)

View File

@@ -1,57 +0,0 @@
move prototypes around so they show up when needed
--- a/jobs.h
+++ b/jobs.h
@@ -182,6 +182,7 @@
extern int count_all_jobs __P((void));
+extern void close_pgrp_pipe __P((void));
extern void terminate_current_pipeline __P((void));
extern void terminate_stopped_jobs __P((void));
extern void hangup_all_jobs __P((void));
--- a/lib/glob/strmatch.c
+++ b/lib/glob/strmatch.c
@@ -25,9 +25,6 @@
#include "strmatch.h"
extern int xstrmatch __P((char *, char *, int));
-#if defined (HAVE_MULTIBYTE)
-extern int internal_wstrmatch __P((wchar_t *, wchar_t *, int));
-#endif
int
strmatch (pattern, string, flags)
--- a/lib/glob/strmatch.h
+++ b/lib/glob/strmatch.h
@@ -57,6 +57,7 @@
#if HANDLE_MULTIBYTE
extern int wcsmatch __P((wchar_t *, wchar_t *, int));
+extern int internal_wstrmatch __P((wchar_t *, wchar_t *, int));
#endif
#endif /* _STRMATCH_H */
--- a/quit.h
+++ b/quit.h
@@ -21,6 +21,8 @@
#if !defined (_QUIT_H_)
#define _QUIT_H_
+#include "sig.h"
+
/* Non-zero means SIGINT has already ocurred. */
extern volatile int interrupt_state;
extern volatile int terminating_signal;
--- a/support/bashversion.c
+++ b/support/bashversion.c
@@ -47,6 +47,9 @@
extern char *dist_version;
extern int patch_level;
+extern char *shell_version_string __P((void));
+extern void show_shell_version __P((int));
+
char *shell_name = "bash";
char *progname;

View File

@@ -1,65 +0,0 @@
http://bugs.gentoo.org/231775
http://lists.gnu.org/archive/html/bug-bash/2008-07/msg00010.html
A parent bash shell sometimes will set the session leader tty (using tcsetpgrp)
back to itself, taking control away from a child bash shell, due to a race
condition. A result is that the child can then not then execute some commands
(like stty) from its init script (e.g. .bashrc). The result I (and others)
have seen is that the bash shell will hang while reading the init script.
*** a/jobs.c
--- b/jobs.c
***************
*** 266,269 ****
--- 266,270 ----
static void set_job_running __P((int));
static void setjstatus __P((int));
+ static int maybe_give_terminal_to __P((pid_t, pid_t, int));
static void mark_all_jobs_as_dead __P((void));
static void mark_dead_jobs_as_notified __P((int));
***************
*** 637,641 ****
*/
if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0)
! give_terminal_to (newjob->pgrp, 0);
}
}
--- 638,642 ----
*/
if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0)
! maybe_give_terminal_to (shell_pgrp, newjob->pgrp, 0);
}
}
***************
*** 3833,3836 ****
--- 3834,3863 ----
}
+ /* Give terminal to NPGRP iff it's currently owned by OPGRP. FLAGS are the
+ flags to pass to give_terminal_to(). */
+ static int
+ maybe_give_terminal_to (opgrp, npgrp, flags)
+ pid_t opgrp, npgrp;
+ int flags;
+ {
+ int tpgrp;
+
+ tpgrp = tcgetpgrp (shell_tty);
+ if (tpgrp == npgrp)
+ {
+ terminal_pgrp = npgrp;
+ return 0;
+ }
+ else if (tpgrp != opgrp)
+ {
+ #if defined (DEBUG)
+ internal_warning ("maybe_give_terminal_to: terminal pgrp == %d shell pgrp = %d", tpgrp, opgrp);
+ #endif
+ return -1;
+ }
+ else
+ return (give_terminal_to (npgrp, flags));
+ }
+
/* Clear out any jobs in the job array. This is intended to be used by
children of the shell, who should not have any job structures as baggage

View File

@@ -1,13 +0,0 @@
add missing docs for -e and -r options
--- a/builtins/ulimit.def
+++ b/builtins/ulimit.def
@@ -24,7 +24,7 @@
$BUILTIN ulimit
$FUNCTION ulimit_builtin
$DEPENDS_ON !_MINIX
-$SHORT_DOC ulimit [-SHacdfilmnpqstuvx] [limit]
+$SHORT_DOC ulimit [-SHacdefilmnpqrstuvx] [limit]
Ulimit provides control over the resources available to processes
started by the shell, on systems that allow such control. If an
option is given, it is interpreted as follows:

View File

@@ -1,25 +0,0 @@
http://bugs.gentoo.org/304901
newer patches touch configure ... we don't want autotool deps, so update
the files ourselves
--- bash-4.0/configure
+++ bash-4.0/configure
@@ -5806,7 +5806,7 @@
# static version specified as -llibname to override the
# dynamic version
case "${host_os}" in
- darwin[89]*) READLINE_LIB='${READLINE_LIBRARY}' ;;
+ darwin[89]*|darwin10*) READLINE_LIB='${READLINE_LIBRARY}' ;;
*) READLINE_LIB=-lreadline ;;
esac
fi
@@ -5847,7 +5847,7 @@
# static version specified as -llibname to override the
# dynamic version
case "${host_os}" in
- darwin[89]*) HISTORY_LIB='${HISTORY_LIBRARY}' ;;
+ darwin[89]*|darwin10*) HISTORY_LIB='${HISTORY_LIBRARY}' ;;
*) HISTORY_LIB=-lhistory ;;
esac
fi

View File

@@ -1,15 +0,0 @@
http://bugs.gentoo.org/211947
fix from Takashi YOSHII: dont use target ldflags for build apps
--- bash/Makefile.in
+++ bash/Makefile.in
@@ -143,7 +143,7 @@
CCFLAGS_FOR_BUILD = $(BASE_CCFLAGS) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD)
LDFLAGS = @LDFLAGS@ $(STATIC_LD) $(LOCAL_LDFLAGS) $(PROFILE_FLAGS) $(CFLAGS)
-LDFLAGS_FOR_BUILD = $(LDFLAGS)
+LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ $(LOCAL_LDFLAGS) $(CFLAGS_FOR_BUILD)
INCLUDES = -I. @RL_INCLUDE@ -I$(srcdir) -I$(BASHINCDIR) -I$(LIBSRC) $(INTL_INC)

View File

@@ -1,33 +0,0 @@
http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00158.html
make `return` accept negative values again
hack by me (vapier@gentoo.org) ... i'm not familiar with bash source code, so
i imagine this isn't the best way to do it ...
--- bash/builtins/return.def
+++ bash/builtins/return.def
@@ -60,9 +60,23 @@
return_builtin (list)
WORD_LIST *list;
{
+ int neg = 0;
+ if (list && list->word && list->word->word) {
+ char *word = list->word->word;
+ if (*word == '-') {
+ while (*word++)
+ if (!isdigit(*word))
+ break;
+ if (!*word)
+ neg = 1;
+ }
+ }
+
+ if (!neg) {
if (no_options (list))
return (EX_USAGE);
list = loptend; /* skip over possible `--' */
+ }
return_catch_value = get_exitstat (list);

View File

@@ -1,65 +0,0 @@
http://bugs.gentoo.org/267613
add missing dep
patch by Peter Alfredsen
--- bash-4.0/Makefile.in
+++ bash-4.0/Makefile.in
@@ -1022,10 +1022,11 @@
subst.o: flags.h jobs.h siglist.h execute_cmd.h ${BASHINCDIR}/filecntl.h trap.h pathexp.h
subst.o: mailcheck.h input.h $(DEFSRC)/getopt.h $(DEFSRC)/common.h
subst.o: bashline.h bashhist.h ${GLOB_LIBSRC}/strmatch.h
subst.o: ${BASHINCDIR}/chartypes.h
subst.o: ${BASHINCDIR}/shmbutil.h
+subst.o: ${DEFDIR}/builtext.h
test.o: bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
test.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
test.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h
test.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
test.o: make_cmd.h subst.h sig.h pathnames.h externs.h test.h
http://bugs.gentoo.org/284633
and another ...
--- bash-4.0/lib/sh/Makefile.in
+++ bash-4.0/lib/sh/Makefile.in
@@ -136,6 +136,9 @@
${BUILD_DIR}/version.h: ${BUILD_DIR}/config.h ${BUILD_DIR}/Makefile Makefile
-( cd ${BUILD_DIR} && ${MAKE} ${MFLAGS} version.h )
+${BUILD_DIR}/pathnames.h: ${BUILD_DIR}/config.h ${BUILD_DIR}/Makefile Makefile
+ -( cd ${BUILD_DIR} && ${MAKE} ${MFLAGS} pathnames.h )
+
# rules for losing makes, like SunOS
casemod.o: casemod.c
clktck.o: clktck.c
http://bugs.gentoo.org/300143
and another ...
--- bash-4.0/lib/glob/Makefile.in
+++ bash-4.0/lib/glob/Makefile.in
@@ -119,6 +119,11 @@
mostlyclean: clean
-( cd doc && $(MAKE) $(MFLAGS) $@ )
+# Dependencies
+
+${BUILD_DIR}/pathnames.h: ${BUILD_DIR}/config.h ${BUILD_DIR}/Makefile Makefile
+ -( cd ${BUILD_DIR} && ${MAKE} ${MFLAGS} pathnames.h )
+
######################################################################
# #
# Dependencies for the object files which make up this library. #
@@ -136,7 +141,7 @@
strmatch.o: $(BUILD_DIR)/config.h
strmatch.o: $(BASHINCDIR)/stdc.h
-glob.o: $(BUILD_DIR)/config.h
+glob.o: $(BUILD_DIR)/config.h $(topdir)/shell.h $(BUILD_DIR)/pathnames.h
glob.o: $(topdir)/bashtypes.h $(BASHINCDIR)/ansi_stdlib.h $(topdir)/bashansi.h
glob.o: $(BASHINCDIR)/posixstat.h $(BASHINCDIR)/memalloc.h
glob.o: strmatch.h glob.h

View File

@@ -1,29 +0,0 @@
Bash built-in test fails to correctly report exeuctable status for non-
executable files when run by root on FreeBSD.
See http://bugs.gentoo.org/303411
Patch from Johan Hattne <johan.hattne@utsuthwestern.edu>
--- a/lib/sh/eaccess.c.orig
+++ b/lib/sh/eaccess.c
@@ -198,11 +198,19 @@
char *path;
int mode;
{
+ struct stat s;
+ int ret;
+
if (path_is_devfd (path))
return (sh_stataccess (path, mode));
#if defined (HAVE_EACCESS) /* FreeBSD */
- return (eaccess (path, mode));
+ if (stat (path, &s) != 0)
+ return (-1);
+ ret = eaccess (path, mode);
+ if (mode == X_OK && ret == 0 && !S_ISDIR(s.st_mode) && geteuid() == 0)
+ return ((s.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) == 0 ? -1 : 0);
+ return (ret);
#elif defined (EFF_ONLY_OK) /* SVR4(?), SVR4.2 */
return access (path, mode|EFF_ONLY_OK);
#else

View File

@@ -1,23 +0,0 @@
--- bash-4.1/lib/glob/Makefile.in
+++ bash-4.1/lib/glob/Makefile.in
@@ -119,6 +119,11 @@
mostlyclean: clean
-( cd doc && $(MAKE) $(MFLAGS) $@ )
+# Dependencies
+
+${BUILD_DIR}/pathnames.h: ${BUILD_DIR}/config.h ${BUILD_DIR}/Makefile Makefile
+ -( cd ${BUILD_DIR} && ${MAKE} ${MFLAGS} pathnames.h )
+
######################################################################
# #
# Dependencies for the object files which make up this library. #
@@ -136,7 +141,7 @@
strmatch.o: $(BUILD_DIR)/config.h
strmatch.o: $(BASHINCDIR)/stdc.h
-glob.o: $(BUILD_DIR)/config.h
+glob.o: $(BUILD_DIR)/config.h $(topdir)/shell.h $(BUILD_DIR)/pathnames.h
glob.o: $(topdir)/bashtypes.h $(BASHINCDIR)/ansi_stdlib.h $(topdir)/bashansi.h
glob.o: $(BASHINCDIR)/posixstat.h $(BASHINCDIR)/memalloc.h
glob.o: strmatch.h glob.h

View File

@@ -1,46 +0,0 @@
https://bugs.gentoo.org/431850
this is a minor tweak to the upstream patch to also apply to bash 4.1/4.0/3.2
BASH PATCH REPORT
=================
Bash-Release: 4.2
Patch-ID: bash42-033
Bug-Reported-by: David Leverton <levertond@googlemail.com>
Bug-Reference-ID: <4FCCE737.1060603@googlemail.com>
Bug-Reference-URL:
Bug-Description:
Bash uses a static buffer when expanding the /dev/fd prefix for the test
and conditional commands, among other uses, when it should use a dynamic
buffer to avoid buffer overflow.
Patch (apply with `patch -p0'):
*** bash-4.2/lib/sh/eaccess.c
--- bash-4.2/lib/sh/eaccess.c
***************
*** 83,86 ****
--- 83,88 ----
struct stat *finfo;
{
+ static char *pbuf = 0;
+
if (*path == '\0')
{
***************
*** 107,111 ****
On most systems, with the notable exception of linux, this is
effectively a no-op. */
! char pbuf[32];
strcpy (pbuf, DEV_FD_PREFIX);
strcat (pbuf, path + 8);
--- 109,113 ----
On most systems, with the notable exception of linux, this is
effectively a no-op. */
! pbuf = xrealloc (pbuf, sizeof (DEV_FD_PREFIX) + strlen (path + 8));
strcpy (pbuf, DEV_FD_PREFIX);
strcat (pbuf, path + 8);

View File

@@ -1,24 +0,0 @@
fix build when job control is disabled
http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00110.html
http://lists.gnu.org/archive/html/bug-bash/2011-07/msg00057.html
http://lists.gnu.org/archive/html/bug-bash/2011-09/msg00039.html
https://bugs.gentoo.org/383237
should be fixed in next release of bash ...
--- a/execute_cmd.c
+++ b/execute_cmd.c
@@ -2202,7 +2202,11 @@
/* If the `lastpipe' option is set with shopt, and job control is not
enabled, execute the last element of non-async pipelines in the
current shell environment. */
- if (lastpipe_opt && job_control == 0 && asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
+ if (lastpipe_opt &&
+#if defined(JOB_CONTROL)
+ job_control == 0 &&
+#endif
+ asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
{
lstdin = move_to_high_fd (0, 0, 255);
if (lstdin > 0)

View File

@@ -1,19 +0,0 @@
fix building when readline is disabled
--- a/builtins/complete.def
+++ b/builtins/complete.def
@@ -49,6 +49,8 @@ $END
#include <config.h>
+#ifdef READLINE
+
#include <stdio.h>
#include "../bashtypes.h"
@@ -867,3 +869,5 @@ compopt_builtin (list)
return (ret);
}
+
+#endif

View File

@@ -1,106 +0,0 @@
https://lists.gnu.org/archive/html/bug-bash/2011-10/msg00036.html
the current yacc rules allow multiple runs to generate the same files. usually
this doesn't come up as the generated files are shipped in the tarball, but
when you modify parse.y (applying a patch or developing or whatever), you can
hit this problem.
simple way of showing this:
make -j y.tab.{c,h}
a correct system would not show the yacc parser running twice :)
simple patch is to have the .h file depend on the .c file, and have the .h file
itself issue a dummy rule (to avoid make thinking things changed).
--- a/Makefile.in
+++ b/Makefile.in
@@ -579,16 +579,17 @@
# old rules
GRAM_H = parser-built
-y.tab.o: y.tab.c ${GRAM_H} command.h ${BASHINCDIR}/stdc.h input.h
+y.tab.o: y.tab.h y.tab.c ${GRAM_H} command.h ${BASHINCDIR}/stdc.h input.h
${GRAM_H}: y.tab.h
@-if test -f y.tab.h ; then \
cmp -s $@ y.tab.h 2>/dev/null || cp -p y.tab.h $@; \
fi
-y.tab.c y.tab.h: parse.y
+y.tab.c: parse.y
# -if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi
$(YACC) -d $(srcdir)/parse.y
touch parser-built
# -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; else cp -p y.tab.h ${GRAM_H}; fi
+y.tab.h: y.tab.c ; @true
# experimental new rules - work with GNU make but not BSD (or OSF) make
#y.tab.o: y.tab.c y.tab.h
https://lists.gnu.org/archive/html/bug-bash/2011-10/msg00037.html
the current code generates a bunch of local libraries in subdirs and then
links bash against that. those subdirs sometimes need version.h. so they
have a rule to change back up to the parent dir and build version.h (which is
fine). the trouble is that the top level objects and the subdirs are allowed
to build in parallel, so it's possible for multiple children to see that
version.h is not available and that it needs to be created, so they all do.
there is even more trouble is that version.h depends on all the top level
sources, some of which are compiled (like syntax.c). so these parallel
children all kick off a job to generate syntax.c which in turn requires the
mksyntax helper executable. obviously multiple processes rm-ing, compiling,
and linking the same files quickly falls apart.
so tweak the subdirs to all depend on the .build target which in turn depends
on all of these top level files being generated. now the subdirs won't try and
recursively enter the top level.
(noticed by David James)
--- a/Makefile.in
+++ b/Makefile.in
@@ -597,6 +598,11 @@
# $(YACC) -d $(srcdir)/parse.y
# -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; fi
+# Subdirs will often times want version.h, so they'll change back up to
+# the top level and try to create it. This causes parallel build issues
+# so just force top level sanity before we descend.
+$(LIBDEP): .build
+
$(READLINE_LIBRARY): config.h $(READLINE_SOURCE)
@echo making $@ in ${RL_LIBDIR}
@( { test "${RL_LIBDIR}" = "${libdir}" && exit 0; } || \
http://lists.gnu.org/archive/html/bug-bash/2011-10/msg00107.html
the top level Makefile will recurse into the defdir for multiple targets
(libbuiltins.a, common.o, bashgetopt.o, builtext.h), and since these do
not have any declared interdependencies, parallel makes will recurse into
the subdir and build the respective targets.
nothing depends on common.o or bashgetopt.o, so those targets don't get
used normally. this leaves libbuiltins.a and builtext.h. at a glance,
this shouldn't be a big deal, but when we look closer, there's a subtle
failure lurking.
most of the objects in the defdir need to be generated which means they
need to build+link the local mkbuiltins helper. the builtext.h header
also needs to be generated by the mkbuiltins helper. so when the top
level launches a child for libbuiltins.a and a child for builtext.h, we
can hit a race condition where the two try to generate mkbuiltins, and
the build randomly fails.
so update libbuiltins.a to depend on builtext.h. this should be fairly
simple since it's only a single target.
--- a/Makefile.in
+++ b/Makefile.in
@@ -674,7 +674,7 @@
$(RM) $@
./mksyntax$(EXEEXT) -o $@
-$(BUILTINS_LIBRARY): $(BUILTIN_DEFS) $(BUILTIN_C_SRC) config.h ${BASHINCDIR}/memalloc.h version.h
+$(BUILTINS_LIBRARY): $(BUILTIN_DEFS) $(BUILTIN_C_SRC) config.h ${BASHINCDIR}/memalloc.h ${DEFDIR}/builtext.h version.h
@(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} libbuiltins.a ) || exit 1
# these require special rules to circumvent make builtin rules

View File

@@ -1,41 +0,0 @@
https://bugs.gentoo.org/447810
fix from upstream to workaround broken BSD kernels
commit 208fdb509e072977ae7a621e916dfcd32c76047d
Author: Chet Ramey <chet@caleb.ins.cwru.edu>
Date: Mon Mar 4 08:09:29 2013 -0500
commit bash-20130201 snapshot
diff --git a/redir.c b/redir.c
index d7da2f3..aa3d16d 100644
--- a/redir.c
+++ b/redir.c
@@ -650,7 +650,7 @@ redir_open (filename, flags, mode, ri)
int flags, mode;
enum r_instruction ri;
{
- int fd, r;
+ int fd, r, e;
r = find_string_in_alist (filename, _redir_special_filenames, 1);
if (r >= 0)
@@ -666,7 +666,16 @@ redir_open (filename, flags, mode, ri)
}
else
{
- fd = open (filename, flags, mode);
+ do
+ {
+ fd = open (filename, flags, mode);
+ e = errno;
+ if (fd < 0 && e == EINTR)
+ QUIT;
+ errno = e;
+ }
+ while (fd < 0 && errno == EINTR);
+
#if defined (AFS)
if ((fd < 0) && (errno == EACCES))
{

View File

@@ -1,112 +0,0 @@
http://lists.gnu.org/archive/html/bug-bash/2012-11/msg00034.html
From 530d4988afd68ea9d2cf1b0267d4dc821d0d204f Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Mon, 19 Nov 2012 17:58:51 -0500
Subject: [PATCH] bash: speed up `read -N`
Rather than using 1 byte reads, use the existing cache read logic.
This could be sped up more, but this change is not as invasive and
should (hopefully) be fairly safe.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
builtins/read.def | 21 ++++++++++++++++-----
externs.h | 1 +
lib/sh/zread.c | 15 +++++++++++++--
3 files changed, 30 insertions(+), 7 deletions(-)
diff --git a/builtins/read.def b/builtins/read.def
index e32dec7..81a1b3f 100644
--- a/builtins/read.def
+++ b/builtins/read.def
@@ -457,7 +457,10 @@ read_builtin (list)
interrupt_immediately++;
terminate_immediately++;
- unbuffered_read = (nchars > 0) || (delim != '\n') || input_is_pipe;
+ if ((nchars > 0) && !input_is_tty && ignore_delim)
+ unbuffered_read = 2;
+ else if ((nchars > 0) || (delim != '\n') || input_is_pipe)
+ unbuffered_read = 1;
if (prompt && edit == 0)
{
@@ -505,10 +508,18 @@ read_builtin (list)
print_ps2 = 0;
}
- if (unbuffered_read)
- retval = zread (fd, &c, 1);
- else
- retval = zreadc (fd, &c);
+ switch (unbuffered_read)
+ {
+ case 2:
+ retval = zreadcn (fd, &c, nchars - nr);
+ break;
+ case 1:
+ retval = zread (fd, &c, 1);
+ break;
+ default:
+ retval = zreadc (fd, &c);
+ break;
+ }
if (retval <= 0)
{
diff --git a/externs.h b/externs.h
index 09244fa..a5ad645 100644
--- a/externs.h
+++ b/externs.h
@@ -479,6 +479,7 @@ extern ssize_t zread __P((int, char *, size_t));
extern ssize_t zreadretry __P((int, char *, size_t));
extern ssize_t zreadintr __P((int, char *, size_t));
extern ssize_t zreadc __P((int, char *));
+extern ssize_t zreadcn __P((int, char *, int));
extern ssize_t zreadcintr __P((int, char *));
extern void zreset __P((void));
extern void zsyncfd __P((int));
diff --git a/lib/sh/zread.c b/lib/sh/zread.c
index 5db21a9..af7d02b 100644
--- a/lib/sh/zread.c
+++ b/lib/sh/zread.c
@@ -101,15 +101,18 @@ static char lbuf[128];
static size_t lind, lused;
ssize_t
-zreadc (fd, cp)
+zreadcn (fd, cp, len)
int fd;
char *cp;
+ int len;
{
ssize_t nr;
if (lind == lused || lused == 0)
{
- nr = zread (fd, lbuf, sizeof (lbuf));
+ if (len > sizeof (lbuf))
+ len = sizeof (lbuf);
+ nr = zread (fd, lbuf, len);
lind = 0;
if (nr <= 0)
{
@@ -123,6 +126,14 @@ zreadc (fd, cp)
return 1;
}
+ssize_t
+zreadc (fd, cp)
+ int fd;
+ char *cp;
+{
+ return zreadcn (fd, cp, sizeof (lbuf));
+}
+
/* Don't mix calls to zreadc and zreadcintr in the same function, since they
use the same local buffer. */
ssize_t
--
1.7.12.4

View File

@@ -1,15 +0,0 @@
http://lists.gnu.org/archive/html/bug-bash/2014-11/msg00178.html
diff --git a/arrayfunc.c b/arrayfunc.c
index 804e6da..0f900aa 100644
--- a/arrayfunc.c
+++ b/arrayfunc.c
@@ -498,7 +498,7 @@ assign_compound_array_list (var, nlist, flags)
for (list = nlist; list; list = list->next)
{
- iflags = flags;
+ iflags = (flags & ~ASS_APPEND);
w = list->word->word;
/* We have a word of the form [ind]=value */

View File

@@ -1,13 +0,0 @@
http://lists.gnu.org/archive/html/bug-bash/2014-11/msg00097.html
--- bash-4.3/builtins/mapfile.def
+++ bash-4.3/builtins/mapfile.def
@@ -339,7 +339,7 @@
else
array_name = list->word->word;
- if (legal_identifier (array_name) == 0 && valid_array_reference (array_name) == 0)
+ if (legal_identifier (array_name) == 0)
{
sh_invalidid (array_name);
return (EXECUTION_FAILURE);

View File

@@ -1,10 +0,0 @@
--- a/redir.c
+++ b/redir.c
@@ -31,6 +31,7 @@
#endif
#include "filecntl.h"
#include "posixstat.h"
+#include "trap.h"
#if defined (HAVE_UNISTD_H)
# include <unistd.h>

View File

@@ -1,14 +0,0 @@
https://lists.gnu.org/archive/html/bug-bash/2017-12/msg00025.html
https://bugs.gentoo.org/644720
--- bash-4.4/jobs.c
+++ bash-4.4/jobs.c
@@ -750,7 +750,7 @@
else
nsize = bgpids.nalloc;
- while (nsize < js.c_childmax)
+ while (nsize < (ps_index_t)js.c_childmax)
nsize *= 2;
if (bgpids.nalloc < js.c_childmax)

View File

@@ -1,30 +0,0 @@
https://bugs.gentoo.org/600174
https://lists.gnu.org/archive/html/bug-bash/2016-11/msg00099.html
*** bash-4.4/builtins/pushd.def
--- bash-4.4/builtins/pushd.def
***************
*** 366,370 ****
}
! if (which > directory_list_offset || (directory_list_offset == 0 && which == 0))
{
pushd_error (directory_list_offset, which_word ? which_word : "");
--- 366,370 ----
}
! if (which > directory_list_offset || (which < -directory_list_offset) || (directory_list_offset == 0 && which == 0))
{
pushd_error (directory_list_offset, which_word ? which_word : "");
***************
*** 388,391 ****
--- 388,396 ----
of the list into place. */
i = (direction == '+') ? directory_list_offset - which : which;
+ if (i < 0 || i > directory_list_offset)
+ {
+ pushd_error (directory_list_offset, which_word ? which_word : "");
+ return (EXECUTION_FAILURE);
+ }
free (pushd_directory_list[i]);
directory_list_offset--;

View File

@@ -1,14 +0,0 @@
http://lists.gnu.org/archive/html/bug-bash/2016-10/msg00004.html
--- a/configure
+++ b/configure
@@ -16124,6 +16124,9 @@ $as_echo_n "checking shared object configuration for loadable builtins... " >&6;
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHOBJ_STATUS" >&5
$as_echo "$SHOBJ_STATUS" >&6; }
+else
+ SHOBJ_STATUS=unsupported
+
fi
# try to create a directory tree if the source is elsewhere

View File

@@ -1,47 +0,0 @@
http://bugs.gentoo.org/310197
http://lists.gnu.org/archive/html/bug-bash/2010-03/msg00063.html
fix heredocs handling in `set` output
*** bash-4.1/print_cmd.c
--- bash-4.1/print_cmd.c
***************
*** 114,117 ****
--- 114,123 ----
#define CHECK_XTRACE_FP xtrace_fp = (xtrace_fp ? xtrace_fp : stderr)
+ #define PRINT_DEFERRED_HEREDOCS(x) \
+ do { \
+ if (deferred_heredocs) \
+ print_deferred_heredocs (x); \
+ } while (0)
+
/* Non-zero means the stuff being printed is inside of a function def. */
static int inside_function_def;
***************
*** 561,571 ****
{
print_for_command_head (for_command);
-
cprintf (";");
newline ("do\n");
indentation += indentation_amount;
make_command_string_internal (for_command->action);
semicolon ();
indentation -= indentation_amount;
newline ("done");
}
--- 566,578 ----
{
print_for_command_head (for_command);
cprintf (";");
newline ("do\n");
+
indentation += indentation_amount;
make_command_string_internal (for_command->action);
+ PRINT_DEFERRED_HEREDOCS ("");
semicolon ();
indentation -= indentation_amount;
+
newline ("done");
}

View File

@@ -1,34 +0,0 @@
*** ../bash-5.0-patched/bashhist.c 2018-07-05 22:41:14.000000000 -0400
--- bashhist.c 2019-02-23 17:12:02.000000000 -0500
***************
*** 437,445 ****
char *filename;
{
! int fd, result;
struct stat buf;
result = EXECUTION_SUCCESS;
! if (history_lines_this_session > 0 && (history_lines_this_session <= where_history ()))
{
/* If the filename was supplied, then create it if necessary. */
--- 437,445 ----
char *filename;
{
! int fd, result, histlen;
struct stat buf;
result = EXECUTION_SUCCESS;
! if (history_lines_this_session > 0)
{
/* If the filename was supplied, then create it if necessary. */
***************
*** 454,457 ****
--- 454,461 ----
close (fd);
}
+ /* cap the number of lines we write at the length of the history list */
+ histlen = where_history ();
+ if (histlen > 0 && history_lines_this_session > histlen)
+ history_lines_this_session = histlen; /* reset below anyway */
result = append_history (history_lines_this_session, filename);
/* Pretend we already read these lines from the file because we just