diff --git a/INIT.2009-10-21.tar.bz2 b/INIT.2009-10-21.tar.bz2 deleted file mode 100644 index 4bc70b2..0000000 --- a/INIT.2009-10-21.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:933f178903451dfda006e6e24778608dd58eaeee7415ea242659589cba878214 -size 273682 diff --git a/INIT.2009-12-06.tar.bz2 b/INIT.2009-12-06.tar.bz2 new file mode 100644 index 0000000..93f3fd4 --- /dev/null +++ b/INIT.2009-12-06.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a2500bcbcfa21b782a8b72cceb55dc776dd232ea91da417bc35879fd13bbbc0 +size 274616 diff --git a/ast-ksh.2009-10-21.tar.bz2 b/ast-ksh.2009-10-21.tar.bz2 deleted file mode 100644 index fa95422..0000000 --- a/ast-ksh.2009-10-21.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:44d58e5ed03c55e54024e8e54d38f707f6dbc53a5944f0227443c3d2b54e6676 -size 1460005 diff --git a/ast-ksh.2009-12-06.tar.bz2 b/ast-ksh.2009-12-06.tar.bz2 new file mode 100644 index 0000000..2d5e5c1 --- /dev/null +++ b/ast-ksh.2009-12-06.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64ef53f3cda7bc59455a9acb0ed322f202dab04066e1d216363cfa699bdaeb01 +size 1464922 diff --git a/ksh.changes b/ksh.changes index c4a4e8e..0c0d114 100644 --- a/ksh.changes +++ b/ksh.changes @@ -1,3 +1,47 @@ +------------------------------------------------------------------- +Wed Dec 9 18:01:09 CET 2009 - werner@suse.de + +- Update to 2009-12-06 beta test of ksh93t+ for bug fixes + + 09-12-04 A bug in which in some cases a trap in a function executed in + a subshell could trigger twice has been fixed. + 09-12-03 A bug in which SHLVL exported with some attributes could cause + the shell to abort at startup has been fixed. + 09-12-02 A bug with pipefail in which the shell could hang waiting for the + writer to complete before the last reader command has been fixed. + +------------------------------------------------------------------- +Wed Dec 3 10:54:02 CET 2009 - werner@suse.de + +- Update to 2009-11-30 beta test of ksh93t+ for bug fixes + + 09-11-30 A bug in which a trap could be inherited by the first element of + a pipeline when the command had more than 63 arguments that did + not contain any macro expansions has been fixed. + 09-11-19 When read from a terminal was called from with a while or foo loop, + and an edit mode was on, a backspace or erase no longer will + overwrite the prompt. + 09-11-17 Change .paths parse to handle BUILTIN_LIB=foo BUILTIN_LIB=foo-1.2. + 09-11-17 Inside a function, typeset foo.bar will bind foo to global variable + foo if local variable foo does not exist, instead of creating a + local variable. + 09-11-17 "read -n1" from the terminal has been fixed to read exactly one character. + 09-11-11 Job control now works for subshell commands, (...). + 09-11-11 If set -e is on for an interractive shell errors in special builtins + now cause the shell to exit. + 09-11-11 A bug in which an interrupt handler processed during the read builtin + when IFS did not contain a new line has been fixed. + 09-11-09 A bug in which a variable that has been unset in a subshell and then + exported from that subshell does not show up in the environment + has been fixed. + 09-11-02 ",2" is now a valid numeric constant for locales with + decimal_point=','. + 09-11-02 A bug where "return" in .profile did not restore the shell state + has been fixed. + 09-10-31 A bug that corrupted saved exit status when pids wrapped around has + been fixed. + 09-10-26 A bug in { LANG LC_ALL LC_category } ordering has been fixed in -last. + ------------------------------------------------------------------- Fri Oct 30 16:23:36 CET 2009 - werner@suse.de diff --git a/ksh.spec b/ksh.spec index 97ddb27..cd6e8aa 100644 --- a/ksh.spec +++ b/ksh.spec @@ -19,7 +19,10 @@ Name: ksh -BuildRequires: bind-libs bind-utils bison flex gdbm-devel glibc-devel libbz2-devel ncurses-devel procps psmisc pwdutils zlib-devel +BuildRequires: bind-libs bind-utils bison flex gdbm-devel glibc-devel ncurses-devel procps psmisc pwdutils zlib-devel +%if %suse_version > 1020 +BuildRequires: libbz2-devel +%endif Url: http://www.research.att.com/~gsf/download/ License: Common Public License Version 1.0 (CPL1.0) Group: System/Shells @@ -29,8 +32,8 @@ Version: 93t Release: 15 Summary: Korn Shell BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: INIT.2009-10-21.tar.bz2 -Source1: ast-ksh.2009-10-21.tar.bz2 +Source: INIT.2009-12-06.tar.bz2 +Source1: ast-ksh.2009-12-06.tar.bz2 Source2: ast-open-locale.2008-07-25.tar.bz2 Source10: leak1.sh Source11: leak2.sh @@ -134,14 +137,25 @@ find share/ -type d -a -empty | xargs -r rm -vrf case "${RPM_OPT_FLAGS}" in *${flag}*) return esac - if test -n "$1" && gcc -Werror $flag -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then - local var=$1; shift - eval $var=\${$var:+\$$var\ }$flag - fi - if test -n "$1" && g++ -Werror $flag -S -o /dev/null -xc++ /dev/null > /dev/null 2>&1 ; then - local var=$1; shift - eval $var=\${$var:+\$$var\ }$flag - fi + test -z "$1" && return + case "$flag" in + -Wl,*) + set -o noclobber + echo 'int main () { return 0; }' > ldtest.c + if gcc -Werror $flag -o /dev/null -xc ldtest.c > /dev/null 2>&1 ; then + local var=$1; shift + eval $var=\${$var:+\$$var\ }$flag + fi + set +o noclobber + rm -f ldtest.c + ;; + *) + if gcc -Werror $flag -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then + local var=$1; shift + eval $var=\${$var:+\$$var\ }$flag + fi + + esac } # LANG=POSIX @@ -254,33 +268,40 @@ find share/ -type d -a -empty | xargs -r rm -vrf rm -f ${root}/bin/shcomp ksh=$(grep -e '-o ksh' $log | tail -n 1 |\ sed "s@+ g\?cc@gcc@;s@-o ksh@-o ${root}/bin/ksh@;s@[a-zA-Z0-9_/\.-]*lib\([a-z]\+\)\.a@-l\1@g;s@'@@g") + ksht=$(grep -e '-o ksh' $log | tail -n 1 |\ + sed "s@+ g\?cc@gcc@;s@-o ksh@-o ${root}/bin/ksh.test@;s@[a-zA-Z0-9_/\.-]*lib\([a-z]\+\)\.a@-l\1@g;s@'@@g") test -n "${ksh}" || { echo build of ksh failed; exit 1; } shcomp=$(grep -e '-o shcomp' $log | tail -n 1 |\ sed "s@+ g\?cc@gcc@;s@-o shcomp@-o ${root}/bin/shcomp@;s@[a-zA-Z0-9_/\.-]*lib\([a-z]\+\)\.a@-l\1@g;s@'@@g") + shcompt=$(grep -e '-o shcomp' $log | tail -n 1 |\ + sed "s@+ g\?cc@gcc@;s@-o shcomp@-o ${root}/bin/shcomp.test@;s@[a-zA-Z0-9_/\.-]*lib\([a-z]\+\)\.a@-l\1@g;s@'@@g") test -n "${shcomp}" || { echo build of shcomp failed; exit 1; } suidex=$(grep -e '-o suid_exec' $log | tail -n 1 |\ sed "s@+ g\?cc@gcc@;s@-o shcomp@-o ${root}/bin/suid_exec@;s@[a-zA-Z0-9_/\.-]*lib\([a-z]\+\)\.a@-l\1@g;s@'@@g") test -n "${suidex}" || { echo build of suidex failed; exit 1; } - ${ksh} -Wl,-rpath-link,${root}/lib -Wl,-rpath,/%{_lib}/ast - ${shcomp} -Wl,-rpath-link,${root}/lib -Wl,-rpath,/%{_lib}/ast - ${suidex} -Wl,-rpath-link,${root}/lib -Wl,-rpath,/%{_lib}/ast + ${ksht} -Wl,-rpath,${root}/lib + ${shcompt} -Wl,-rpath,${root}/lib + ${ksh} -Wl,-rpath-link,${root}/lib -Wl,-rpath,/%{_lib}/ast + ${shcomp} -Wl,-rpath-link,${root}/lib -Wl,-rpath,/%{_lib}/ast + ${suidex} -Wl,-rpath-link,${root}/lib -Wl,-rpath,/%{_lib}/ast OPATH=$PATH OSHELL=$SHELL - LD_LIBRARY_PATH=${root}/lib PATH=$PATH:${root}/bin - SHELL=${root}/bin/ksh - export LD_LIBRARY_PATH PATH SHELL + SHELL=${root}/bin/ksh.test + SHCOMP=${root}/bin/shcomp.test + export PATH SHCOMP SHELL pushd ${test} - ${root}/bin/ksh shtests - ${root}/bin/ksh %{S:10} - ${root}/bin/ksh %{S:11} - ${root}/bin/ksh -c 'g="false"; trap "print -u2 PIPED; \$g && exit 0 ; g=true" PIPE ; while true ; do echo hello ; done' | head -n 10 + ${root}/bin/ksh.test shtests + ${root}/bin/ksh.test %{S:10} + ${root}/bin/ksh.test %{S:11} + ${root}/bin/ksh.test -c 'g="false"; trap "print -u2 PIPED; \$g && exit 0 ; g=true" PIPE ; while true ; do echo hello ; done' | head -n 10 popd pushd ${root}/bin PATH=$PATH:. - set -- $(shcomp --version 2>&1) + set -- $(shcomp.test --version 2>&1) eval version=\${$#} - shcomp --nroff 2>&1 | sed 's/\(\.TH .*\)/\1 "2003-03-02" "" "Korn shell utilities"/' > ../man/man1/shcomp.1 + shcomp.test --nroff 2>&1 | sed 's/\(\.TH .*\)/\1 "2003-03-02" "" "Korn shell utilities"/' > ../man/man1/shcomp.1 + rm -v ksh.test shcomp.test popd SHELL=$OSHELL PATH=$OPATH @@ -313,8 +334,9 @@ find share/ -type d -a -empty | xargs -r rm -vrf ln -sf /bin/true %{buildroot}%{_bindir}/ksh ln -sf /%{_lib}/ast/bin/ksh %{buildroot}%{_bindir}/rksh ln -sf /%{_lib}/ast/bin/shcomp %{buildroot}%{_bindir}/shcomp - cp -a lib/*.so.* %{buildroot}/%{_lib}/ast/ - cp -a fun/* %{buildroot}%{_datadir}/ksh/fun/ + ln -sf ast %{buildroot}/%{_lib}/ksh + cp -a lib/*.so* %{buildroot}/%{_lib}/ast/ + cp -a fun/* %{buildroot}%{_datadir}/ksh/fun/ for so in %{buildroot}/%{_lib}/ast/*.so.*.* ; do so=${so##*/} ln -sf /%{_lib}/ast/$so %{buildroot}%{_libdir}/ast/${so%%%%.*}.so @@ -403,7 +425,8 @@ fi %if %use_suid_exe %attr(4755,root,root) /%{_lib}/ast/bin/suid_exec %endif -/%{_lib}/ast/*.so.* +/%{_lib}/ast/*.so* +/%{_lib}/ksh %dir %{_datadir}/ksh %dir %{_datadir}/ksh/fun %{_datadir}/ksh/fun/* diff --git a/ksh93-compat.dif b/ksh93-compat.dif index 4b64fd8..1a3f12e 100644 --- a/ksh93-compat.dif +++ b/ksh93-compat.dif @@ -10,8 +10,8 @@ -r /usr/shlib/libc.so /shlib/libc.so do case $i in --- src/lib/libast/features/map.c -+++ src/lib/libast/features/map.c 2007-03-30 18:21:16.084565107 +0200 -@@ -60,10 +60,14 @@ main() ++++ src/lib/libast/features/map.c 2009-12-09 12:13:24.423429613 +0100 +@@ -66,10 +66,14 @@ main() #define _map_malloc 1 printf("\n"); printf("#define _map_libc 1\n"); @@ -23,9 +23,9 @@ printf("#define dirname _ast_dirname\n"); +#endif +#if _map_libc + #if !_lib_eaccess printf("#undef eaccess\n"); printf("#define eaccess _ast_eaccess\n"); - #if !_lib_execvpe --- src/lib/libdll/features/dll +++ src/lib/libdll/features/dll 2007-03-30 18:40:58.855596004 +0200 @@ -15,7 +15,7 @@ tst dll_DYNAMIC link{ diff --git a/ksh93.dif b/ksh93.dif index cb56c0b..d90c8ce 100644 --- a/ksh93.dif +++ b/ksh93.dif @@ -188,10 +188,10 @@ for v in ${v//,/ } do v=${v#*:} --- src/cmd/ksh93/tests/locale.sh -+++ src/cmd/ksh93/tests/locale.sh 2009-10-30 13:56:19.623430025 +0100 -@@ -115,24 +115,24 @@ set -- $($SHELL -c " ++++ src/cmd/ksh93/tests/locale.sh 2009-12-09 14:01:40.927429385 +0100 +@@ -134,11 +134,11 @@ unset LC_CTYPE - export LANG=en_US.UTF-8 + export LANG=$locale export LC_ALL=C - command wc -C < $tmp/two_euro_chars.txt + command wc -m < $tmp/two_euro_chars.txt @@ -204,23 +204,6 @@ ") got=$* [[ $got == $exp ]] || err_exit "command wc LC_ALL default failed -- expected '$exp', got '$got'" - set -- $($SHELL -c " -- if builtin -f cmd wc 2>/dev/null -+ if builtin wc 2>/dev/null - then unset LC_CTYPE - export LANG=en_US.UTF-8 - export LC_ALL=C -- wc -C < $tmp/two_euro_chars.txt -+ wc -m < $tmp/two_euro_chars.txt - unset LC_ALL -- wc -C < $tmp/two_euro_chars.txt -+ wc -m < $tmp/two_euro_chars.txt - export LC_ALL=C -- wc -C < $tmp/two_euro_chars.txt -+ wc -m < $tmp/two_euro_chars.txt - fi - ") - got=$* --- src/cmd/ksh93/tests/path.sh +++ src/cmd/ksh93/tests/path.sh 2008-09-11 18:02:46.000000000 +0200 @@ -228,7 +228,7 @@ builtin getconf diff --git a/workaround-stupid-build-system.diff b/workaround-stupid-build-system.diff index bc9ed84..3341e73 100644 --- a/workaround-stupid-build-system.diff +++ b/workaround-stupid-build-system.diff @@ -124,13 +124,13 @@ make suid_exec.o --- src/lib/libast/Mamfile +++ src/lib/libast/Mamfile 2008-02-14 13:08:37.000000000 +0100 -@@ -5,7 +5,7 @@ setv AR ar - setv ARFLAGS cr +@@ -5,7 +5,7 @@ setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS + setv ARFLAGS -cr setv AS as setv ASFLAGS -setv CC cc +setv CC gcc - setv mam_cc_FLAGS ${mam_cc_DLL} -D_BLD_ast + setv mam_cc_FLAGS ${mam_cc_DLL} -D_BLD_ast setv CCFLAGS ${-debug-symbols?1?${mam_cc_DEBUG} -D_BLD_DEBUG?${mam_cc_OPTIMIZE}?} setv CCLDFLAGS ${-strip-symbols?1?${mam_cc_LD_STRIP}??} @@ -27,7 +27,7 @@ setv NMAKE nmake @@ -224,13 +224,13 @@ done ${INSTALLROOT}/include/ast/syslog.h generated --- src/lib/libcmd/Mamfile +++ src/lib/libcmd/Mamfile 2008-02-14 13:08:37.000000000 +0100 -@@ -7,7 +7,7 @@ setv AR ar - setv ARFLAGS cr +@@ -7,7 +7,7 @@ setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS + setv ARFLAGS -cr setv AS as setv ASFLAGS -setv CC cc +setv CC gcc - setv mam_cc_FLAGS ${mam_cc_DLL} + setv mam_cc_FLAGS ${mam_cc_DLL} setv CCFLAGS ${-debug-symbols?1?${mam_cc_DEBUG} -D_BLD_DEBUG?${mam_cc_OPTIMIZE}?} setv CCLDFLAGS ${-strip-symbols?1?${mam_cc_LD_STRIP}??} @@ -29,7 +29,7 @@ setv NMAKE nmake