diff --git a/INIT.2009-06-30.tar.bz2 b/INIT.2009-06-30.tar.bz2 deleted file mode 100644 index 1db5184..0000000 --- a/INIT.2009-06-30.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7915fccde4559aaa965da5c5824deddc929c0e21f8b023a9e941f7b9a538feec -size 270826 diff --git a/INIT.2009-10-21.tar.bz2 b/INIT.2009-10-21.tar.bz2 new file mode 100644 index 0000000..4bc70b2 --- /dev/null +++ b/INIT.2009-10-21.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:933f178903451dfda006e6e24778608dd58eaeee7415ea242659589cba878214 +size 273682 diff --git a/ast-ksh.2009-06-30.tar.bz2 b/ast-ksh.2009-06-30.tar.bz2 deleted file mode 100644 index a438ce4..0000000 --- a/ast-ksh.2009-06-30.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0ce968695698a22a37eff9b98e0a0cbfa7b8d7b727f24e4b70c83d06f3de9a28 -size 1450359 diff --git a/ast-ksh.2009-10-21.tar.bz2 b/ast-ksh.2009-10-21.tar.bz2 new file mode 100644 index 0000000..fa95422 --- /dev/null +++ b/ast-ksh.2009-10-21.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44d58e5ed03c55e54024e8e54d38f707f6dbc53a5944f0227443c3d2b54e6676 +size 1460005 diff --git a/ksh.changes b/ksh.changes index df15bfe..247bb1d 100644 --- a/ksh.changes +++ b/ksh.changes @@ -1,3 +1,70 @@ +------------------------------------------------------------------- +- Update to 2009-10-21 beta test of ksh93t+ for bug fixes + + 09-10-16 A bug where notification to libast that the environment has changed + has been fixed. + 09-10-12 A bug in which a function loaded in a subshell could leave side + effects in the parent shell has been fixed. + 09-10-12 A bug in converting a printf %d operand to a number when the operand + contains multiple subscripts for the same variable has been fixed. + 09-10-09 A bug in the handling of the escape character \ in directory prefixes + in command completion has been fixed. + 09-10-09 $PATH processing has been changed to delay dir stat() and .paths + lookup until the directory is needed in the path search. + 09-09-28 Call the ast setlocale() intercept on unset too. + 09-09-24 A bug in which LANG=foo; LC_ALL=foo; unset LC_ALL; did not revert + LC_CTYPE etc. to the LANG value has been fixed. + 09-09-17 A bug in which unsetting SVLVL could cause a script invoked by + name without #! to core dump has been fixed. + 09-09-16 A bug in which a pipeline in a here-document could hang when the + pipefail option was on has been fixed. + 09-09-09 A bug in the processing of line joining in here documents which + occurred when a buffer began with has been fixed. + 09-09-09 A leading ; with commands in a brace group or parenthesis group + no longer causes an error. It now is used for the "showme" option. + 09-09-09 A bug in which a subshell containing a background process could + block until the background process completed has been fixed. + 09-09-04 A bug in handing ${var[sub]}, where var is a nameref has been fixed. + 09-09-03 A bug which caused an index array to have the wrong number of elements + when it was converted from a compound variable by adding an another + element has been fixed. + 09-09-03 Specifying export for a compound variable now generates an error. + 09-09-02 $"..." localizations strings are no longer recognized inside `...`. + 09-09-01 A bug in the for loop optimizer in the handling of type static + variables has been fixed. + 09-09-01 An error message is not displayed when * and @ are used as subscripts. + 09-09-01 Several bugs in the processing for types that included an associative + array of another type has been fixed. + 09-09-01 A bug in the tracing of [[ a < b ]] and [[ a > b ]] has been fixed. + 09-08-26 The .sh.file variable was not being set for a script that was run + by name and didn't start with #! and this has been fixed. + 09-08-25 A bug in which a function called to deeply from command substitution + did not display an error message has been fixed. + 09-08-24 When processing profiles, ksh93 now violates the POSIX standard and + treats &> as a redirection operator similar to bash. + 09-08-23 A bug in the handling of the trap on SIGPIPE that could lead to am + memory fault has been fixed. + 09-08-21 A bug in the handling of the comma operator in arithmetic expressions + that could cause a core dump on some systems has been fixed. + 09-08-20 A bug in which a compound variable containing an array of a type + that doesn't have any elements now expands correctly. + 09-08-19 A bug which disabled function tracing inside a function after + a call to another function has been fixed. + 09-08-19 A bug in which initializing a compound variable instance to another + compound variable by name has been fixed. + 09-08-18 A bug in which compound variable instances could be lost after + an instance that invoked a type method discipline has been fixed. + 09-08-18 A bug in which a discipline function for a type applied to an + array instance when invoked in a function ignored the subscript + has been fixed. + 09-08-18 A scoping error with variables in arithmetic expression with + type variables when reference with a name reference has been fixed. + 09-08-10 Several memory leaks were fixed primarily related to subshells. + 09-08-06 A bug in which setting the trap on CHLD to ignore could cause + a script to hang has been fixed. + 09-07-08 A bug in the processing of name reference assignments when it + contained pattern expansions with quoting has been fixed. + ------------------------------------------------------------------- Wed Aug 26 14:03:10 CEST 2009 - werner@suse.de diff --git a/ksh.spec b/ksh.spec index f67294b..97ddb27 100644 --- a/ksh.spec +++ b/ksh.spec @@ -29,8 +29,8 @@ Version: 93t Release: 15 Summary: Korn Shell BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: INIT.2009-06-30.tar.bz2 -Source1: ast-ksh.2009-06-30.tar.bz2 +Source: INIT.2009-10-21.tar.bz2 +Source1: ast-ksh.2009-10-21.tar.bz2 Source2: ast-open-locale.2008-07-25.tar.bz2 Source10: leak1.sh Source11: leak2.sh @@ -53,8 +53,6 @@ Patch11: ksh93-signals.dif Patch12: ksh93-limits.dif Patch14: ksh93-ia64.dif Patch15: ksh93-s390.dif -Patch16: ksh93-memleak.dif -Patch17: ksh93-pipe.dif Patch42: ksh93-debugleaks.dif %global use_suid_exe 0 %global use_locale 0 @@ -121,8 +119,6 @@ find share/ -type d -a -empty | xargs -r rm -vrf %patch14 %endif %patch15 -%patch16 -%patch17 %if %debug_memleak %patch42 %endif @@ -160,7 +156,7 @@ find share/ -type d -a -empty | xargs -r rm -vrf # Do not use -DSHOPT_SPAWN=1 and/or -DSHOPT_AMP=1 this would cause # errors due race conditions while executing the test suite. # - FEATURE="-DSHOPT_SYSRC=1 -DSHOPT_REMOTE=1 -DSHOPT_CMDLIB_BLTIN=1" + FEATURE="-DSHOPT_SYSRC=1 -DSHOPT_REMOTE=1 -DSHOPT_CMDLIB_BLTIN=1 -DSHOPT_CMDLIB_DIR=1" FEATURE="$FEATURE -DSH_CMDLIB_DIR=\\\"/%{_lib}/ast/bin\\\"" FEATURE="$FEATURE -DDEFSHELL=\\\"/bin/ksh\\\"" FEATURE="$FEATURE -DTHISPROG=\\\"/%{_lib}/ast/bin/suid_exec\\\"" @@ -182,16 +178,22 @@ find share/ -type d -a -empty | xargs -r rm -vrf RPM_OPT_FLAGS=$(echo "${RPM_OPT_FLAGS}"|sed -r 's/[[:blank:]]+-g[0-9]?//g') UNIVERSE=att LDFLAGS="-lm" + LDSOFLG="" CC=gcc - cflags -std=gnu99 RPM_OPT_FLAGS - cflags -fPIC RPM_OPT_FLAGS - cflags @%{S:22} RPM_OPT_FLAGS - cflags -fno-strict-aliasing RPM_OPT_FLAGS - cflags -fno-zero-initialized-in-bss RPM_OPT_FLAGS - cflags -g RPM_OPT_FLAGS - cflags -pipe RPM_OPT_FLAGS - cflags -Wl,-O2 LDFLAGS - cflags -Wl,--hash-size=16699 LDFLAGS + cflags -std=gnu99 RPM_OPT_FLAGS + cflags -fPIC RPM_OPT_FLAGS + cflags @%{S:22} RPM_OPT_FLAGS + cflags -fno-strict-aliasing RPM_OPT_FLAGS + cflags -fno-zero-initialized-in-bss RPM_OPT_FLAGS + cflags -g RPM_OPT_FLAGS + cflags -pipe RPM_OPT_FLAGS + cflags -Wl,-O2 LDFLAGS + cflags -Wl,--hash-size=16699 LDFLAGS + cflags -Wl,-O2 LDSOFLG + cflags -Wl,-warn-common LDSOFLG + cflags -Wl,--as-needed LDSOFLG + cflags -Wl,--hash-size=8599 LDSOFLG + cflags -Wl,-rpath,/%{_lib}/ast LDSOFLG RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE $LARGEFILE" RPM_OPT_FLAGS="$RPM_OPT_FLAGS $IGNORE $FEATURE" HOSTTYPE=${RPM_ARCH%%*-linux*} @@ -207,28 +209,29 @@ find share/ -type d -a -empty | xargs -r rm -vrf log=${root}/lib/package/gen/make.out test -s $log || exit 1 for lib in libast libcmd libdll libshell ; do - obj=$(grep -E "ar *cr *${lib}.a" $log | sed "s@+ *ar *cr *${lib}.a@@") + test -s ${root}/lib/${lib}.a || exit 1 + obj=$(ar t ${root}/lib/${lib}.a) test $? -eq 0 || exit 1 case "$lib" in libshell) base=src/cmd/ksh93 vers=$(grep ^VERSION ${base}/Makefile | sed "s@.*\([0-9]\+\.[0-9]\+\).*@\1@") - link="-L${root}/lib/ -Wl,-rpath-link,${root}/lib -Wl,-rpath,/%{_lib}/ast -ldll -lcmd -last -lm -ldl" + link="-L${root}/lib/ -Wl,-rpath-link,${root}/lib $LDSOFLG $LDFLAGS -ldll -lcmd -last -lm -ldl" ;; libdll) base=src/lib/$lib vers=$(grep :LIBRARY: ${base}/Makefile | sed "s@.*\([0-9]\+\.[0-9]\+\).*@\1@") - link="-L${root}/lib/ -Wl,-rpath-link,${root}/lib -Wl,-rpath,/%{_lib}/ast -ldl -last" + link="-L${root}/lib/ -Wl,-rpath-link,${root}/lib $LDSOFLG -ldl -last" ;; libcmd) base=src/lib/$lib vers=$(grep :LIBRARY: ${base}/Makefile | sed "s@.*\([0-9]\+\.[0-9]\+\).*@\1@") - link="-L${root}/lib/ -Wl,-rpath-link,${root}/lib -Wl,-rpath,/%{_lib}/ast -last" + link="-L${root}/lib/ -Wl,-rpath-link,${root}/lib $LDSOFLG -last" ;; libast) base=src/lib/$lib vers=$(grep :LIBRARY: ${base}/Makefile | sed "s@.*\([0-9]\+\.[0-9]\+\).*@\1@") - link="-L${root}/lib/ -Wl,-rpath-link,${root}/lib -Wl,-rpath,/%{_lib}/ast" + link="-L${root}/lib/ -Wl,-rpath-link,${root}/lib $LDSOFLG" ;; esac soname="-Wl,-soname,${lib}.so.${vers%.*},-stats" diff --git a/ksh93-shift_ijs.dif b/ksh93-shift_ijs.dif index fe48571..0246e3e 100644 --- a/ksh93-shift_ijs.dif +++ b/ksh93-shift_ijs.dif @@ -271,7 +271,7 @@ #define mbcoll() (ast.mb_xfrm!=0) #define mbwide() (mbmax()>1) --#define mbchar(p) (mbwide()?((ast.tmp_int=(*ast.mb_towc)(&ast.tmp_wchar,(char*)(p),mbmax()))>0?((p+=ast.tmp_int),ast.tmp_wchar):(p++,ast.tmp_int)):(*(unsigned char*)(p++))) +-#define mbchar(p) (mbwide()?((ast.tmp_int=(*ast.mb_towc)(&ast.tmp_wchar,(char*)(p),mbmax()))>0?((p+=ast.tmp_int),ast.tmp_wchar):(p+=ast.mb_sync+1,ast.tmp_int)):(*(unsigned char*)(p++))) #define mbinit() (mbwide()?(*ast.mb_towc)((wchar_t*)0,(char*)0,mbmax()):0) #define mbsize(p) (mbwide()?(*ast.mb_len)((char*)(p),mbmax()):((p),1)) #define mbconv(s,w) (ast.mb_conv?(*ast.mb_conv)(s,w):((*(s)=(w)),1)) @@ -280,8 +280,8 @@ - +#define mbchar(p) ((mbsize(p)>1) ? \ + (((ast.tmp_int=(*ast.mb_towc)(&ast.tmp_wchar,(char*)(p),mbmax()))>0) ? \ -+ ((p+=ast.tmp_int),ast.tmp_wchar) : \ -+ (*(unsigned char*)(p++))) : \ ++ ({p+=ast.tmp_int;ast.tmp_wchar;}) : \ ++ ({ast.tmp_int=*(unsigned char*)p;p+=ast.mb_sync+1;ast.tmp_int;})) : \ + (*(unsigned char*)(p++))) /* * common macros diff --git a/ksh93.dif b/ksh93.dif index 687a7d7..cb56c0b 100644 --- a/ksh93.dif +++ b/ksh93.dif @@ -187,6 +187,40 @@ v=$(getconf LIBPATH) 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 " + unset LC_CTYPE + export LANG=en_US.UTF-8 + export LC_ALL=C +- command wc -C < $tmp/two_euro_chars.txt ++ command wc -m < $tmp/two_euro_chars.txt + unset LC_ALL +- command wc -C < $tmp/two_euro_chars.txt ++ command wc -m < $tmp/two_euro_chars.txt + export LC_ALL=C +- command wc -C < $tmp/two_euro_chars.txt ++ command wc -m < $tmp/two_euro_chars.txt + ") + 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