Hello community, here is the log from the commit of package mksh for openSUSE:Factory checked in at 2017-03-04 16:37:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mksh (Old) and /work/SRC/openSUSE:Factory/.mksh.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mksh" Sat Mar 4 16:37:06 2017 rev:13 rq:460024 version:54 Changes: -------- --- /work/SRC/openSUSE:Factory/mksh/mksh.changes 2015-04-22 01:19:00.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.mksh.new/mksh.changes 2017-03-04 16:48:50.109063115 +0100 @@ -1,0 +2,183 @@ +Thu Feb 23 10:42:43 UTC 2017 - wer...@suse.de + +- Avoid deprecated API for errors and signals +- Be sure to use a clean history file + +------------------------------------------------------------------- +Tue Feb 21 17:02:03 UTC 2017 - wer...@suse.de + +- Make errors ini test suite fatal +- Avoid -flto as this breaks even with gcc 6.3.1 20170202 + +------------------------------------------------------------------- +Tue Feb 14 16:37:07 UTC 2017 - wer...@suse.de + +- Use screen to provide a tty for test suite scripts + +------------------------------------------------------------------- +Tue Feb 14 16:19:19 UTC 2017 - wer...@suse.de + +- Update to version R54 + R54 is a bugfix release with moderate new features: + [tg] Simplify and improve code and manual page + [tg] Try GCC 5’s new -malign-data=abi + [tg] Allow interrupting builtin cat even on fast devices (LP#1616692) + [tg] Update to Unicode 9.0.0 + [Andreas Buschka] Correct English spelling + [tg] Handle set -e-related error propagation in || and && constructs correctly + [tg] Initialise memory for RNG even when not targeting Valgrind + [tg] Shrink binary size + [Brian Callahan] Improve support for the contemporary pcc compiler + [tg] Fix side effects with lazy evaluation; spotted by ormaaj + [tg] New flags -c (columnise), -l, -N for the print builtin + [Larry Hynes] Fix English, spelling mistakes, typos in the manpage + [tg, ormaah] Return 128+SIGALRM if read -t times out, like GNU bash + [Martijn Dekker] Install both manpages from Build.sh + [Martijn Dekker] Document case changes are ASCII-only + [Ronald G. Minnich, Elbing Miss, Álvaro Jurado, tg] Begin porting to Harvey-OS and APEX (similar to Plan 9 and APE) + [KO Myung-Hun] More infrastructure for the OS/2 (EMX, KLIBC) port + R53a is a snapshot/feature release: + [lintian] Fix spelling + [tg] Unbreak multi-line command history broken by history flush + [tg] Fix redefining POSIX functions that were Korn functions before + [tg, TNF] Fix bounds checks in Vi editing mode + [tg] Handle combining characters at end of string or output correctly + [tg] Fix ${!#} ${!?} ${!-} (POSIX, prompted by izabera) + [tg] Fix shf.c-internal buffer overread on printing digits + [J�rg] Fix a typo in the testsuite + [arekm] Increase default edit line size (unless MKSH_SMALL) + [tg] Improve description of Emacs mode keybindings, especially ^U + [tg, arekm, jilles] Abort read builtin in case of read(2) errors + [tg, izabera, carstenh] Fix most of the ambiguous corner cases related to ${[pfx]var[op[word]]} (${@:-1} still unsupported) + [carstenh] Contribute some more testsuite coverage + [tg] WDS_TPUTS now emits QCHAR newline reentrant-safe + [tg] Fix var=<< implementation (LP#1380389) + [tg, FreeBSD] Make XSI test(1) extensions behave as if they were POSIX + [tg, izabera] Add $(<<<x) and $(<<EOF…) implementation + [tg] Lower minimum screen size accepted as “sane” from the OS to 4×2 + [tg, Torsten Sillke] Simplify tilde-expanded parameters + [tg, Torsten Sillke] Fix default PS1 for substring matches + [tg] Apply defer-builtin-with-arguments logic to realpath builtin + [tg] Rework string pooling (own vs. compiler’s) (LP#1580348) + [tg] Feature: print -A, prints arguments as characters + [tg, izabera] Replace <<< and >>> as ROL and ROR operators with their new ^< and ^> spelling as per this proposal + [tg, slagtc] Clear-to-EOL under tmux to work around its anti-feature + [tg, p120ph37] Remove support for using file descriptors with more than a single digit, in preparation for named file descriptors + [tg] Correct, but simplify (at the potential cost of more tty I/O than strictly necessary, though never redundant and (probably) not more than before when it was miscalculated), line clearing and redrawing + [slagtc, tg] Implement new evaluate-region editing command Esc+Ctrl-E + [tg] Prefer external rename utility over the recovery builtin + [tg] Remove redundant full-line redraws + [tg, Natureshadow] Fix errorlevel of ‘.’ (“dot” special builtin) when the sourced script does not run any commands, for POSIX compliance + [tg] Refactor op tokens and edchars to shave off some more bytes + [tg] Fix some bugs in the manpage and some occasional/minor code bugs + [tg, Brian Callahan] Mark tests requiring new perl as !need-pass + [tg, slagtc] Add $KSH_MATCH and, to make it usable, ${foo@/bar/baz} + [tg, Score_Under] Fix bogus patch from OpenBSD: only NULL the global source in unwind when actually reclaiming its Area + [izabera] Mention in the manpage that integer bases go up to 36 + [Natureshadow] Fix /= operator broken during refactoring + R52c is a bugfix-only release: + [tg] Shave 200 bytes off .text by revisiting string pooling + [tg, J�rg] Fix manpage for ditroff on Schillix + [tg, wbx] Use sed 1q instead of unportable head(1) + [tg] Implement underrun debugging tool for area-based memory allocator + [tg] Fix history underrun when first interactive command is entered + [tg, bef0rd] Do not misinterpret “${0/}” as “${0//”, fixes segfault + [tg, Stéphane Chazelas] Fix display problems with special parameters + [tg, Stéphane Chazelas] Catch attempt to trim $* and $@ with ?, fixes segfault (Todd Miller did this in 2004 for ${x[*]} already, so just sync) + [Martijn Dekker] Fix “command -p” with -Vv to behave as POSIX requires + [tg, jilles, Oleg Bulatov] Fix recusive parser with active heredocs + [tg] Flush even syntax-failing or interrupted commands to history + [tg, fmunozs] Fix invalid memory access for “'\0'” in arithmetics + [tg] Explicitly reserve SIGEXIT and SIGERR for ksh + [tg, izabera] Catch missing here documents at EOF even under “set -n” + [kre, tg] Document Austin#1015 handling (not considered a violation) + [tg, fmunozs] Fix buffer overread for empty nameref targets + [tg] Fix warnings pointed out by latest Debian gcc-snapshot + [tg, Martijn Dekker] Document upcoming set +o changes + [Martijn Dekker] Expand testsuite for command/whence + R52b is a strongly recommended bugfix-only release: + [tg] Recognise ksh93 compiled scripts and LZIP compressed files as binary (i.e. to not run as mksh plaintext script) + [tg] Document that we will implement locale tracking later + [tg] Add EEXIST to failback strerror(3) + [jilles] Make set -C; :>foo race-free + [tg] Don’t use unset in portable build script + [tg] Plug warning on GNU/kFreeBSD, GNU/Hurd + [tg] Document read -a resets the integer base + [J�rg] Fix manpage: time is not a builtin but a reserved word + [J�rg, tg] Make exit (and return) eat -1 + [tg] parse “$( (( … ) … ) … )” correctly (LP#1532621), Jan Palus + [tg] reduce memory footprint by free(3)ing more aggressively + [tg] fix buffer overrun (LP#1533394), bugreport by izabera + [tg] correctly handle nested ADELIM parsing (LP#1453827), Teckids + [tg] permit “read -A/-a arr[idx]” as long as only one element is read; fix corruption of array indicēs with this construct (LP#1533396), izabera + [tg] Sanitise OS-provided signal number in even more places + [tg] As requested by J�rg, be clear manpage advice is for mksh + [tg] Revert (as it was a regression) POSIX bugfix from R52/2005 related to accent gravis-style command substitution until POSIX decides either way + [tg] Handle export et al. after command (Austin#351) + [tg] Catch EPIPE in built-in cat and return as SIGPIPE (LP#1532621) + [tg] Fix errno in print/echo builtin; optimise that and unbksl + [tg] Update documentation, point out POSIX violation (Austin#1015) + R52 is a strongly recommended bugfix release: + [_0bitcount] Move moving external link from mksh(1) to the #ksh channel homepage linked therein + [tg] Make setenv “set -u”-safe and fix when invoked with no args + [tg] Make “typeset -f” output reentrant if name is a reserved word + [oksh] Zero-pad seconds in “time” output to align columns + [tg] Check signals and errorlevels from OS to be within bounds + [komh, tg] Quote and document ‘;’ as PATH separator in some places + [oksh, tg] Simplify code to call afree() even if arg is NULL + [tg] Fix tree-printing and reentrancy of multiple here documents + [tg] Work around LP#1030581 by permitting exactly one space after + [tg, oksh] Code quality work, cleanups + [tg] New code for here documents/strings with several bugfixes + [tg] Stop using issetugid(2) for ±p checks, wrong tool for the job + [tg] Reintroduce some -o posix changes lost in 2005, plus fixes + [tg] Make “source” into a built-in command + [tg] Drop “stop” alias, lksh(1) functionality to auto-unalias + [tg] Fix \u0000 ignored in $'…' and print + [tg] Improve portability of Build.sh + [Jilles Tjoelker] Improve portability of testsuite + [tg] Fix tilde expansion for some substitutions (izabera, Chet, Geoff) + [tg] Improve reparsing of ((…) |…) as ( (…) |…) + [Martijn Dekker] Fix test(1) not returning evaluation errors + [tg] Fix ${*:+x} constructs (carstenh) + [tg] Make (( … )) into a compound command (ormaaj) + [tg] Repair a few parameter substitution expansion mistakes + R51 is a strongly recommended feature release: + [tg] OpenBSD sync: handle integer base out of band like ksh93 does + [tg] Protect standard code (predefined aliases, internal code, aliases and functions in dot.mkshrc) from being overridden by aliases and, in some cases, shell functions (i.e. permit overriding but ignore it) + [tg] Implement GNU bash’s enable for dot.mkshrc using magic aliases to redirect the builtins to external utilities; this differs from GNU bash in that enable takes precedence over functions + [tg] Move unaliasing an identifier when defining a POSIX-style function with the same name into lksh, as compatibility kludge + [tg] Korn shell style functions now have locally scoped shell options + [tg, iSKUNK] Change some ASCII-isms to be EBCDIC-aware or pluggable + [tg, Ypnose] Mention lksh build instructions on manpage and website + [tg] Overhaul signal handling; support new POSIX NSIG_MAX, add sysconf(_SC_NSIG) as a later TODO item + [tg] Fix signal bounds (1 ≤ signum < NSIG) + [tg] Improve manual pages, especially wrt. standards compliance + [tg, iSKUNK] Initial EBCDIC work for dot.mkshrc + [tg, iSKUNK] Add list of z/OS signals to Build.sh + [tg] Work around the sh(1) backslash-newline problem by moving the code triggering it out of *.opt and into the consumers + [colona] Bind another well-known ANSI Del key in the Emacs mode + [tg] Fix ${foo/*/x} pattern checks, spotted by izabera + [carstenh] Fix error output of cd function in dot.mkshrc + [tg] read partial returns in -N and timeout cases + [tg] Fix $LINENO inside PS1; spotted by carstenh + [tg] Ensure correct padding of at least 2 spaces in print_columns + [tg] Note issues with nested complex parameter expansions and follow-up bugfixes to expect + [OpenBSD] Some language fixes in documentation; comments + [tg] Reimplement multi-line command history (Debian #783978) + fixes + [Martijn Dekker] Fix command -v for “shell reserved words” + [tg] In dot.mkshrc make use of latest feature: local options + [tg] Fix ""$@ to emit a word + [tg] Change cat(1) hack to look first and not ignore builtin + [KO Myung-Hun] Begin porting mksh to OS/2 + [komh, tg] Some generic minor bugfixes from OS/2 porting + [tg] Document mknod(8) isn’t normally part of mksh(1) + [tg] Quote arguments to : in build/test scripts as well + [tg] Add cat(1) hack for printf(1)-as-builtin: always prefer external + [tg] Explicitly use binary mode for any and all file I/O in stock mksh + [Ilya Zakharevich] Use termio, not termios(4), on OS/2 + [tg] Set edchars to sane BSD defaults if any are NUL + [tg] Implement support for PC scancodes in Vi and Emacs editing mode + [komh] OS/2 uses ‘;’ as PATH separator plus support drive letters + +------------------------------------------------------------------- Old: ---- mksh-R50f.tgz New: ---- mksh-R54.tgz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mksh.spec ++++++ --- /var/tmp/diff_new_pack.Jxv6fE/_old 2017-03-04 16:48:50.568997990 +0100 +++ /var/tmp/diff_new_pack.Jxv6fE/_new 2017-03-04 16:48:50.568997990 +0100 @@ -1,7 +1,7 @@ # # spec file for package mksh # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2013 Guido Berhoerster. # Copyright (c) 2013, 2014 Thorsten Glaser. # @@ -21,7 +21,7 @@ # Please see OBS home:mirabile/mksh for a package for other distributions. Name: mksh -Version: 50f +Version: 54 Release: 0 Summary: MirBSD Korn Shell License: MirOS and ISC @@ -33,11 +33,17 @@ BuildRequires: ed # for %%check BuildRequires: perl +BuildRequires: screen +BuildRequires: sed BuildRequires: update-alternatives %if 0%{?suse_version} >= 1315 # replaces pdksh in openSUSE >= 13.2 and SLES >= 12 Provides: pdksh = %{version} Obsoletes: pdksh < %{version} +%if 0%{suse_version} == 1315 +Provides: ksh = %{version} +Obsoletes: ksh < %{version} +%endif Provides: /bin/ksh Requires(post): update-alternatives Requires(preun): update-alternatives @@ -55,50 +61,90 @@ %prep %setup -q -n %{name} -%patch0 -p1 +%patch0 -p1 -b .p0 -%if 0%{?sles_version} > 0 || 0%{suse_version} > 0 -ed -s sh.h <<'EOF' -,s/#define MKSH_VERSION "R\([^"]*\)"/#define MKSH_VERSION "R\1 SUSE"/ -w -EOF -ed -s check.t <<'EOF' -,s/@(#)\(MIRBSD\|LEGACY\) KSH R\(.*\)/@(#)\1 KSH R\2 SUSE/ -w -EOF -ed -s mksh.1 <<'EOF' -/insert-your-name-here/s/^\.\\" // -s/insert-your-name-here/SUSE/ -w -EOF +%if 0%{?suse_version} > 0 +%if %{suse_version} == 1315 +ed -s sh.h <<-'EOF' + ,s/#define MKSH_VERSION "R\([^"]*\)"/#define MKSH_VERSION "R\1 SLES"/ + w + EOF +ed -s check.t <<-'EOF' + ,s/@(#)\(MIRBSD\|LEGACY\) KSH R\(.*\)/@(#)\1 KSH R\2 SLES/ + w + EOF +%else +ed -s sh.h <<-'EOF' + ,s/#define MKSH_VERSION "R\([^"]*\)"/#define MKSH_VERSION "R\1 openSUSE"/ + w + EOF +ed -s check.t <<-'EOF' + ,s/@(#)\(MIRBSD\|LEGACY\) KSH R\(.*\)/@(#)\1 KSH R\2 openSUSE/ + w + EOF +%endif +ed -s mksh.1 <<-'EOF' + /insert-your-name-here/s/^\.\\" // + s/insert-your-name-here/SUSE/ + w + EOF +# " Stupid double quote for vi %endif +if grep -q _DEFAULT_SOURCE /usr/include/features.h ; then + ed -s Build.sh <<-'EOF' + /^Linux)/ + /-D_GNU_SOURCE/s/\(add_cppflags\s\)-D_GNU_SOURCE/\1 -D_GNU_SOURCE -D_DEFAULT_SOURCE/ + w + EOF +fi + +# +# sys_errlist and sys_siglist *are* deprecated +# +ed -s Build.sh <<-'EOF' + /^ac_test strerror/s/\(strerror\).*\( <<\)/\1\2/ + /^ac_test strsignal/s/\(strsignal\).*\( <<\)/\1\2/ + w + EOF +ed -s histrap.c <<-'EOF' + /^#if HAVE_SYS_SIGLIST/s/HAVE_SYS_SIGLIST/0/ + w + EOF ln -s . examples %build -export CFLAGS='%{optflags}' +export CC=gcc +if $CC -Werror -ftree-loop-linear -S -o /dev/null -xc /dev/null > /dev/null 2>&1 +then + export CFLAGS='%{optflags} -Wuninitialized -Wall -Wextra -ftree-loop-linear -pipe' +else + export CFLAGS='%{optflags} -Wuninitialized -Wall -Wextra -pipe' +fi export CPPFLAGS='-DMKSH_VENDOR_MKSHRC_PATH=\"/etc/mkshrc\"' +export LDFLAGS='-Wl,--as-needed -Wl,-O2' # filter compiler warnings and errors from configuration tests { -# work around bugs in gcc 4.8 (deb#717734 rh#922974) and gcc 4.1.2 in SLE 10 -%if 0%{?suse_version} >= 1310 || 0%{?sles_version} == 10 - sh Build.sh -r || touch build.failed -%else - sh Build.sh -r -c lto || touch build.failed -%endif + # work around bugs in gcc 4.8 (deb#717734 rh#922974) and gcc 4.1.2 in SLE 10 + case "$(gcc --version | head -n 1)" in + *\ 4.[12345678].*) + lto= + ;; + *) + # lto="lto" cause error with gcc 6.3.1 20170202 + # beside this lto makes debugging much harder + lto= + ;; + esac + sh Build.sh -r ${lto:+-c $lto} || touch build.failed mv test.sh test-mksh.sh -# build lksh to automatically enable -o posix if called as sh + # build lksh to automatically enable -o posix if called as sh CPPFLAGS="$CPPFLAGS -DMKSH_BINSHPOSIX" -# work around bugs in gcc 4.8 (deb#717734 rh#922974) and gcc 4.1.2 in SLE 10 -%if 0%{?suse_version} >= 1310 || 0%{?sles_version} == 10 - sh Build.sh -L -r || touch build.failed -%else - sh Build.sh -L -r -c lto || touch build.failed -%endif + sh Build.sh -L -r ${lto:+-c $lto} || touch build.failed mv test.sh test-lksh.sh -} 2>&1 | sed \ - -e 's!conftest.c:\([0-9]*\(:[0-9]*\)*\): error:!cE(\1) -!g' \ - -e 's!conftest.c:\([0-9]*\(:[0-9]*\)*\): warning:!cW(\1) -!g' +} 2>&1 | sed -r \ + -e 's!conftest.c:([0-9]*(:[0-9]*)*): error:!cE(\1) -!g' \ + -e 's!conftest.c:([0-9]*(:[0-9]*)*): warning:!cW(\1) -!g' test ! -e build.failed %install @@ -127,9 +173,36 @@ %endif %check +SCREENDIR=$(mktemp -d ${PWD}/screen.XXXXXX) || exit 1 +trap 'rm -rf $SCREENDIR' EXIT +SCREENRC=${SCREENDIR}/mksh +export SCREENRC SCREENDIR +export HOME=${SCREENDIR} +exec 0< /dev/null +SCREENLOG=${SCREENDIR}/log +cat > $SCREENRC<<-EOF + deflogin off + deflog on + logfile $SCREENLOG + logfile flush 1 + logtstamp off + log on + setsid on + scrollback 0 + silence on + utf8 on + EOF +> $SCREENLOG +tail -q -s 0.5 -f $SCREENLOG & pid=$! for shell in mksh lksh; do - ./test-${shell}.sh -v -f -C regress:no-ctty + screen -D -m sh -c "./test-${shell}.sh -v -f || > failed" done +kill -TERM $pid +if test -e failed +then + sed -rn '/FAIL /,/^pass /p' $SCREENLOG + exit 1 +fi %clean rm -Rf %{buildroot} ++++++ mksh-R50f.tgz -> mksh-R54.tgz ++++++ ++++ 20190 lines of diff (skipped) ++++++ mksh-vendor-mkshrc.patch ++++++ --- /var/tmp/diff_new_pack.Jxv6fE/_old 2017-03-04 16:48:50.724975903 +0100 +++ /var/tmp/diff_new_pack.Jxv6fE/_new 2017-03-04 16:48:50.724975903 +0100 @@ -1,6 +1,12 @@ ---- a/main.c 2014-10-03 19:20:17.000000000 +0200 -+++ b/main.c 2014-10-07 18:20:32.529192101 +0200 -@@ -595,6 +595,11 @@ main_init(int argc, const char *argv[], +--- + b/main.c | 5 +++++ + b/mksh.1 | 5 +++++ + 2 files changed, 10 insertions(+) + +diff --git a/main.c b/main.c +--- a/main.c ++++ b/main.c +@@ -614,6 +614,11 @@ main_init(int argc, const char *argv[], if (Flag(FLOGIN)) include(substitute("$HOME/.profile", 0), 0, NULL, true); if (Flag(FTALKING)) { @@ -12,9 +18,10 @@ cp = substitute(substitute("${ENV:-" MKSHRC_PATH "}", 0), DOTILDE); if (cp[0] != '\0') ---- a/mksh.1 2014-10-07 17:31:02.000000000 +0200 -+++ b/mksh.1 2014-10-07 18:20:32.529192101 +0200 -@@ -371,6 +371,11 @@ it is processed; non-existence is silent +diff --git a/mksh.1 b/mksh.1 +--- a/mksh.1 ++++ b/mksh.1 +@@ -378,6 +378,11 @@ it is processed; non-existence is silent A privileged shell then drops privileges if neither was the .Fl p option given on the command line nor set during execution of the startup files.