diff options
author | Omar Vega Ramos <ovruni@gnu.org.pe> | 2014-07-27 12:48:43 -0500 |
---|---|---|
committer | Omar Vega Ramos <ovruni@gnu.org.pe> | 2014-07-27 12:48:43 -0500 |
commit | b676ed7f78d40ba7d94f7a8093f836747fd3adb5 (patch) | |
tree | 8ce2cc1b721d144af5707c6e003e5b839c0653e3 /core/bash | |
parent | 460c03c4195c86b0935e894c4b3d3cdba0775ecb (diff) |
Updating bash and readline
Diffstat (limited to 'core/bash')
-rw-r--r-- | core/bash/PKGBUILD | 161 | ||||
-rw-r--r-- | core/bash/privmode-setuid-fail.patch | 29 | ||||
-rw-r--r-- | core/bash/system.bashrc | 6 |
3 files changed, 85 insertions, 111 deletions
diff --git a/core/bash/PKGBUILD b/core/bash/PKGBUILD index 5825ee0eb..5a45a84e8 100644 --- a/core/bash/PKGBUILD +++ b/core/bash/PKGBUILD @@ -1,19 +1,20 @@ -# $Id: PKGBUILD 193699 2013-08-28 09:22:56Z allan $ -# Maintainer: Allan McRae <allan@archlinux.org> +# $Id: PKGBUILD 215305 2014-06-19 12:33:38Z bpiotrowski $ +# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org> +# Contributor: Allan McRae <allan@archlinux.org> # Contributor: Aaron Griffin <aaron@archlinux.org> pkgname=bash -_basever=4.2 -_patchlevel=045 #prepare for some patches +_basever=4.3 +_patchlevel=018 pkgver=$_basever.$_patchlevel -pkgrel=5 -pkgdesc="The GNU Bourne Again shell" +pkgrel=3 +pkgdesc='The GNU Bourne Again shell' arch=('i686' 'x86_64' 'mips64el') license=('GPL') -url="http://www.gnu.org/software/bash/bash.html" +url='http://www.gnu.org/software/bash/bash.html' groups=('base') backup=(etc/bash.bash{rc,_logout} etc/skel/.bash{rc,_profile,_logout}) -depends=('readline>=6.1' 'glibc') +depends=('readline>=6.3' 'glibc') provides=('sh') install=bash.install source=(http://ftp.gnu.org/gnu/bash/bash-$_basever.tar.gz{,.sig} @@ -22,26 +23,28 @@ source=(http://ftp.gnu.org/gnu/bash/bash-$_basever.tar.gz{,.sig} dot.bash_logout system.bashrc system.bash_logout - bash-4.2-do-not-use-memcpy-on-overlapping-memory.patch) -if [ $_patchlevel -gt 000 ]; then - for (( p=1; p<=$((10#${_patchlevel})); p++ )); do - source=(${source[@]} http://ftp.gnu.org/gnu/bash/bash-$_basever-patches/bash${_basever//./}-$(printf "%03d" $p){,.sig}) + privmode-setuid-fail.patch) + +if [[ $((10#${_patchlevel})) -gt 0 ]]; then + for (( _p=1; _p<=$((10#${_patchlevel})); _p++ )); do + source=(${source[@]} http://ftp.gnu.org/gnu/bash/bash-$_basever-patches/bash${_basever//.}-$(printf "%03d" $_p){,.sig}) done fi prepare() { - cd ${srcdir}/${pkgname}-$_basever + cd $pkgname-$_basever - for (( p=1; p<=$((10#${_patchlevel})); p++ )); do - msg "applying patch bash${_basever//./}-$(printf "%03d" $p)" - patch -p0 -i $srcdir/bash${_basever//./}-$(printf "%03d" $p) + for (( _p=1; _p<=$((10#${_patchlevel})); _p++ )); do + msg "applying patch bash${_basever//.}-$(printf "%03d" $_p)" + patch -p0 -i ../bash${_basever//.}-$(printf "%03d" $_p) done - - patch -p1 -i $srcdir/bash-4.2-do-not-use-memcpy-on-overlapping-memory.patch + + # http://hmarco.org/bugs/bash_4.3-setuid-bug.html (FS#40663) + patch -p0 -i ../privmode-setuid-fail.patch } build() { - cd ${srcdir}/${pkgname}-$_basever + cd $pkgname-$_basever _bashconfig=(-DDEFAULT_PATH_VALUE=\'\"/usr/local/sbin:/usr/local/bin:/usr/bin\"\' -DSTANDARD_UTILS_PATH=\'\"/usr/bin\"\' @@ -55,123 +58,65 @@ build() { } check() { - cd ${srcdir}/${pkgname}-$_basever - make check + make -C $pkgname-$_basever check } package() { - cd ${srcdir}/${pkgname}-$_basever - make DESTDIR=${pkgdir} install + make -C $pkgname-$_basever DESTDIR="$pkgdir" install + ln -s bash "$pkgdir"/usr/bin/sh - ln -s bash ${pkgdir}/usr/bin/sh - - install -dm755 ${pkgdir}/etc/skel/ - + install -dm755 "$pkgdir"/etc/skel/ # system-wide configuration files - install -m644 ${srcdir}/system.bashrc ${pkgdir}/etc/bash.bashrc - install -m644 ${srcdir}/system.bash_logout ${pkgdir}/etc/bash.bash_logout - + install -m644 system.bashrc $pkgdir/etc/bash.bashrc + install -m644 system.bash_logout "$pkgdir"/etc/bash.bash_logout + # user configuration file skeletons - install -m644 ${srcdir}/dot.bashrc ${pkgdir}/etc/skel/.bashrc - install -m644 ${srcdir}/dot.bash_profile ${pkgdir}/etc/skel/.bash_profile - install -m644 ${srcdir}/dot.bash_logout ${pkgdir}/etc/skel/.bash_logout + install -m644 dot.bashrc "$pkgdir"/etc/skel/.bashrc + install -m644 dot.bash_profile "$pkgdir"/etc/skel/.bash_profile + install -m644 dot.bash_logout "$pkgdir"/etc/skel/.bash_logout } -md5sums=('3fb927c7c33022f1c327f14a81c0d4b0' +md5sums=('81348932d5da294953e15d4814c74dd1' 'SKIP' '027d6bd8f5f6a06b75bb7698cb478089' '2902e0fee7a9168f3a4fd2ccd60ff047' '42f4400ed2314bd7519c020d0187edc5' - '3546099a1b2f667adc9794f52e78e35b' + '561949793177116b7be29a07c385ba8b' '472f536d7c9e8250dc4568ec4cfaf294' - '9e55d01f2d9dda4a0c96031b25d19f45' - '1100bc1dda2cdc06ac44d7e5d17864a3' - 'SKIP' - '30e7948079921d3261efcc6a40722135' - 'SKIP' - '9ea06decec43a198f3d7cf29acc602f8' - 'SKIP' - 'fb48f6134d7b013135929476aa0c250c' - 'SKIP' - 'e70e45de33426b38153b390be0dbbcd4' - 'SKIP' - 'ce4e5c484993705b27daa151eca242c2' - 'SKIP' - '88d1f96db29461767602e2546803bda7' - 'SKIP' - '24c574bf6d6a581e300823d9c1276af6' - 'SKIP' - '4c5835f2fbab36c4292bb334977e5b6d' - 'SKIP' - '0a51602b535ef661ee707be6c8bdb373' - 'SKIP' - '58deacf3d57cbd75575444ff6a3b0806' - 'SKIP' - '72d5059820015231483bb7415d09e9db' - 'SKIP' - '608336ebe215984ef126e3c29d2d3409' - 'SKIP' - 'ed19da878e3f630834c62b9d9dcc6fce' - 'SKIP' - '2d07daba0b8ca8f876d2aa052ff594b4' - 'SKIP' - '53d246537e1fffd1aaa02ba5c056211c' - 'SKIP' - '304fd129a58fee2d8a34f8b4704db0aa' - 'SKIP' - '6921a0b4228fe89b6537a5c29f027c89' - 'SKIP' - '1195d85447f3d048d2c9bcd075fa765c' - 'SKIP' - 'b09000bba08da6ac753124593850cdf7' - 'SKIP' - '09d3f96a16b881334cfaee0cf320b47e' - 'SKIP' - '597bf71a2aac6feb510b7505cdd3d4f7' - 'SKIP' - '3fab459b4e09daea529cacad025b13b3' - 'SKIP' - '4ad8d11e72afc6090e701073ff034cf4' - 'SKIP' - 'c7d2493e44490f01dd20bdc8feb0a6a7' - 'SKIP' - '9f19c199dd8d1fa9254eebe738759272' - 'SKIP' - 'a6ed82daf034587aee2f2581ba5fe829' - 'SKIP' - 'da9265aa2527fd4a7481baa3e0550287' + 'a577d42e38249d298d6a8d4bf2823883' + '1ab682b4e36afa4cf1b426aa7ac81c0d' 'SKIP' - 'ec444d229e8899fbaaf6fc7de2d82ae6' + '8fc22cf50ec85da00f6af3d66f7ddc1b' 'SKIP' - 'b4bc1c4dc1b508ff9cdfc44f1a5039b5' + 'a41728eca78858758e26b5dea64ae506' 'SKIP' - '89390ff6a3c2ef7e09dd4b8b097a8e56' + 'bf8d53d227829d67235927689a03cc7a' 'SKIP' - 'eee08003395c417f677d1a4bf8c548ee' + 'c0c00935c8b8ffff76e8ab77e7be7d15' 'SKIP' - '2fe070dd6d75d8ff16f269184a16e9c4' + '6f01e364cd092faa28dd7119f47ddb5f' 'SKIP' - '4e610506c1711bf3483b965800ac3d5d' + 'dcf471d222bcd83283d3094e6ceeb6f8' 'SKIP' - '7cd9bfdf7cbfd45274d07620ee94c8d9' + 'f7553416646dc26c266454c78a916d36' 'SKIP' - '9c3142956064d175a880bcb186e51ef9' + '7e73d2151f4064b484a4ba2c4b09960e' 'SKIP' - 'c10692f447d4966c879f8fb8d7c8ebc9' + 'a275463d21735bb6d7161f9fbd320d8f' 'SKIP' - '9ef3c308cde413e95866c1266cfb4e98' + 'c17103ee20420d77e46b224c8d3fceda' 'SKIP' - 'cd48f57a404498d4e5c73a3501c4b1a5' + '3e2a057a19d02b3f92a3a09eacbc03ae' 'SKIP' - '00a2371b6c05acbfce6bc850c6d982f8' + 'fb377143a996d4ff087a2771bc8332f9' 'SKIP' - '7bc4942a66ca4024ee964db7ede07896' + '1a1aaecc99a9d0cbc310e8e247dcc8b6' 'SKIP' - '1cf7701017ebfc8e129de92c8f8b798c' + '4f04387458a3c1b4d460d199f49991a8' 'SKIP' - '9e61168fca692d8d1a733c389a63712e' + '90e759709720c4f877525bebc9d5dc06' 'SKIP' - 'b4b11d64b45ea9ec50dcc74c6c3861f6' + '11e4046e1b86070f6adbb7ffc89641be' 'SKIP' - '1661bcc83c4715f54368877452ff2247' + 'cd5a9b46f5bea0dc0248c93c7dfac011' 'SKIP') diff --git a/core/bash/privmode-setuid-fail.patch b/core/bash/privmode-setuid-fail.patch new file mode 100644 index 000000000..059857d0b --- /dev/null +++ b/core/bash/privmode-setuid-fail.patch @@ -0,0 +1,29 @@ +*** ../bash-4.3-patched/shell.c 2014-01-14 08:04:32.000000000 -0500 +--- shell.c 2014-06-06 16:29:01.000000000 -0400 +*************** +*** 1227,1232 **** + disable_priv_mode () + { +! setuid (current_user.uid); +! setgid (current_user.gid); + current_user.euid = current_user.uid; + current_user.egid = current_user.gid; +--- 1229,1246 ---- + disable_priv_mode () + { +! int e; +! +! if (setuid (current_user.uid) < 0) +! { +! e = errno; +! sys_error (_("cannot set uid to %d: effective uid %d"), current_user.uid, current_user.euid); +! #if defined (EXIT_ON_SETUID_FAILURE) +! if (e == EAGAIN) +! exit (e); +! #endif +! } +! if (setgid (current_user.gid) < 0) +! sys_error (_("cannot set gid to %d: effective gid %d"), current_user.gid, current_user.egid); +! + current_user.euid = current_user.uid; + current_user.egid = current_user.gid; diff --git a/core/bash/system.bashrc b/core/bash/system.bashrc index a2231e861..4d7a64344 100644 --- a/core/bash/system.bashrc +++ b/core/bash/system.bashrc @@ -12,11 +12,11 @@ PS4='+ ' case ${TERM} in xterm*|rxvt*|Eterm|aterm|kterm|gnome*) - PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' - + PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"' + ;; screen) - PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' + PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"' ;; esac |