mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
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:
@@ -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
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
{
|
||||
@@ -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");
|
||||
}
|
||||
@@ -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. */
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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");
|
||||
@@ -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 */
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -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. */
|
||||
@@ -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++;
|
||||
}
|
||||
@@ -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. */
|
||||
@@ -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 },
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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);
|
||||
@@ -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 */
|
||||
@@ -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)
|
||||
{
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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
|
||||
@@ -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);
|
||||
@@ -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));
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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@
|
||||
@@ -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)
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
@@ -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:
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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);
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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))
|
||||
{
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
@@ -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);
|
||||
@@ -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>
|
||||
@@ -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)
|
||||
@@ -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--;
|
||||
@@ -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
|
||||
@@ -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");
|
||||
}
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user