diff --git a/bash-4.2-patches.tar.bz2 b/bash-4.2-patches.tar.bz2 index ccc70919..aa303b17 100644 --- a/bash-4.2-patches.tar.bz2 +++ b/bash-4.2-patches.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:441c0e7f90b24072c6acf50d14da277a5854e7f4446b03b2faae5c4748eb6c5f -size 26485 +oid sha256:6901414b1d93b5bc046ea7d946722c56baf503743243bed97ef2f98e05af1742 +size 27775 diff --git a/bash.changes b/bash.changes index 18daa32a..dd596e68 100644 --- a/bash.changes +++ b/bash.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Thu Mar 21 11:51:54 UTC 2013 - werner@suse.de + +- Add patch from upstream mailing list to speed up array handling +- Add patch from upstream mailing list to avoid fdleaks +- Use lsdiff to determine the depth of the leading slashes in a + patch file + ------------------------------------------------------------------- Fri Mar 15 15:35:51 UTC 2013 - werner@suse.de diff --git a/bash.spec b/bash.spec index 995d3f28..5dd185a4 100644 --- a/bash.spec +++ b/bash.spec @@ -27,6 +27,7 @@ BuildRequires: fdupes BuildRequires: makeinfo %endif BuildRequires: ncurses-devel +BuildRequires: patchutils BuildRequires: screen %define bash_vers 4.2 %define rl_vers 6.2 @@ -269,14 +270,19 @@ as well as programming with the interface of the readline library. %prep %setup -q -n bash-%{bash_vers}%{extend} -b1 -b2 -b3 +typeset -i level for patch in ../bash-%{bash_vers}-patches/*; do - level=-p1 test -e $patch || break - [[ $(head -n 1 $patch) =~ From ]] || level=-p0 + let level=0 || true + file=$(lsdiff --files=1 $patch) + if test ! -e $file ; then + file=${file#*/} + let level++ || true + fi + test -e $file || exit 1 echo Patch $patch - patch -s $level < $patch + patch -s -p$level < $patch done -unset p %patch1 -p0 -b .manual %patch2 -p0 -b .security %patch3 -p0 -b .2.4.4 @@ -308,10 +314,16 @@ unset p %patch47 %patch0 -p0 -b .0 pushd ../readline-%{rl_vers}%{extend} -for p in ../readline-%{rl_vers}-patches/*; do - test -e $p || break - echo Patch $p - patch -s -p0 < $p +for patch in ../readline-%{rl_vers}-patches/*; do + test -e $patch || break + let level=0 || true + file=$(lsdiff --files=1 $patch) + if test ! -e $file ; then + file=${file#*/} + let level++ || true + fi + echo Patch $patch + patch -s -p$level < $patch done %patch21 -p2 -b .zerotty %patch22 -p2 -b .wrap