Public bug reported: Binary package hint: mksh
Please grant an FFE. This is mainly for the upstream changes (you were using a snapshot package anyway); upstream is relatively close to the feature freeze for the next version now. There are no Ubuntu specific changes. This version has been tested relatively broadly: I’m in contact with the Cygwin packager; all code changes have undergone extensive testing on its native MirBSD environment; I’ve built packages for all of etch, lenny, squeeze, sid and Kubuntu Hardy, as well as CentOS 5, and deployed these on a total of several hundred boxen (desktop, laptop, server) and VMs at my workplace, with zero problems spotted so far. Also, I’ve submitted this snapshot to the Android Open Source Project, where it is the primary /system/bin/sh shell. I’ve tested this on an Emulator build of AOSP (since I don’t own an Android Smartphone) with success. I believe the Android-x86 author is tracking mksh-current very closely, too. For the FFE: The estimated impact on the distribution is a much more consistent shell experience. Also, this will bring the Ubuntu and Debian versions in sync much better. People who want to experiment with a Korn Shell will have both better UI (changes to the command line editing) and better scripting (changes to the lexer/parser). The severity of these changes is in my eyes reason for an FFE if it works on the current Ubuntu version (I have only tested it on Hardy, but my desktop at work runs with mksh as /bin/sh even). Also, I am both upstream and Debian Developer for mksh so I am able to handle all requests from your side. • Upstream bugs tracked in LP Fixed in this version, too: LP#710539 (misleading tab completion for $FOO) Partially fixed in this version, too: LP#625164 (some pattern matching things are really slow) • Bugs tracked in distro trackers Debian #619947 (accept ${foo%(*} if "set -o sh"), important Redhat BZ#496791 (things like $(case foo in bar) echo baz ;; esac) are mis-parsed), critical Debian #603801 (make prev-hist-word emacs mode editing command better usable), wishlist The packaging was changed to be more reliable: several methods are tested in order now (eglibc, dietlibc, (not yet) klibc), and the resulting binaries are tested before being used (otherwise, the build is repeated with different settings), including compiler support for "-fwhole-program --combine" which sometimes breaks. If cross-compiling, this is not done of course, we fall back to a blacklist then. • The testsuite and its results from build time are included in the packages. Multi-Arch is supported (thanks, Vorlon!), and almost all (included) translations for debconf are at 100% now. Also, README.Debian is more verbose and accurate. The non-packaging debian-specific part now displays $debian_chroot in the default $PS1 like other shells (helps with cowbuilder --login or schroot etc). Noteworthy changes to the code: • $PS1 is no longer exported by default, to unconfuse other shells. • Greatly improved POSIX conformance. Update to Unicode 6.0.0. • Better usability (the bugs listed above, plus • The cat builtin now supports POSIX -u. New builtin sleep (can do microseconds). • New variables: KSHEGID, KSHGID, KSHUID; the PIPESTATUS array like GNU bash. • Implement recursive parser for $(…) to fix https://bugzilla.redhat.com/show_bug.cgi?id=496791 • Fix crashes: ${foo:1:2:3} no longer crashes; some memory corruption bugs were fixed (e.g. in the printf builtin). • Many more tests in the testsuite (regressions, new features, standards compliance). Full upstream changelog, copy-pasted from website (Upstream does not keep a changelog file, only a list on the webpage): [tg] dot.mkshrc no longer exports $PS1, as recommended by Frank Terbeck, to avoid confusing other shells [tg] The character width table is now in sync with Unicode 6.0.0 [tg] MKSH_SMALL doesn’t imply HAVE_REVOKE=0 any longer [tg] Ignore a ‘$’ preceding ‘"…"’ (like bash, ksh93) [tg] Make “foo=<<EOF” a direct assignment of here document (or here string) to string variable [tg] Add KSHEGID, KSHGID, KSHUID variables (idea from Richard K.) [tg] Option -d to read specifies a delimiter, like ksh93 (10x dgk) [tg] Extension ${foo@#} expands to hash of $foo (mksh specific) [tg, Jörg-Volker Peetz] Emacs prev-hist-word resets the counter if other editing commands were run in between; repeat calling works, even together with arguments, now; arguments are 0-based (Debian Closes: #603801) [tg] Introduce MKSH_NOPROSPECTOFWORK which implies MKSH_UNEMPLOYED and additionally disables job signals, |&, sigprocmask(2), etc. [tg] POSIX: trap 'echo foo' UNKNOWN is not a syntax error [tg] Do not use <sys/file.h> unless it exists [tg] dot.mkshrc: When we set a UTF-8 locale (e.g. for the GNU OS), we must also set -o utf8-mode to match it [tg] Don’t append a space after tab-completing a parameter substitution that doesn’t contain a glob/extglob (LP: #710539) [tg] Limit history file size to 1 GiB for sanity [tg] Add smores, a more(1)-like pager, as shell function to dot.mkshrc (not control character safe but tty aware) [tg] Make builtins directly callable; utf8-mode is determined by LC_ALL/LC_CTYPE/LANG environment variables in that case [tg] If the interactive shell uses setlocale(3)/nl_langinfo(3) to divine utf8-mode, fall back to environment variables unless success [tg] From a direct builtin call, echo(1) behaves POSIXish [tg] Replace some MirBSD utilities with links to mksh(1) and ensure some integration to keep compatibility [tg] Add a microsecond capable sleep(1) builtin [updated 20110213] [tg] If the built-in cat is invoked from a direct builtin call, it now properly handles the POSIXly demanded ‘-u’ option (as a no-op) [tg] Support the PIPESTATUS array (like GNU bash) [tg] Port to MiNT / FreeMiNT (Atari m68k operating system) [tg] Do not close filedescriptor #3 (controlling tty) on UWIN [tg] Make the tree printing code safe for re-entrancy of output [tg] Implement recursive parser for $(…) to fix RedHat BZ#496791 [tg] Use the existing state machine, a recursive parser and retracing the input stream for correct x=(…$((…$(…)…))…) parsing [tg, Jb_boin] complain about ${x:1:2:3} instead of crashing [tg, Jb_boin] make optional printf(1) builtin __CRAZY=Yes clean and prevent it from crashing by reading past end of (invalid) format strings [tg] abort(3) on rogue pointers #ifdef DEBUG [tg] Correct some documentation, code commentary, etc. [tg] Handle the UTF-8 Byte Order Mark in $(…) expressions [tg] Speed up reading input by checking for the BOM only once [tg] Fix mis-detection of gcc format attribute (false negative) [tg] Include some Android specific hacks (no change on other OEs) [tg, Jb_boin] In ${foo/bar/baz} expressions, when adjourning empty patterns to avoid running into a busy-wait loop, remember to skip the anchor characters (‘#’ or ‘%’) at the beginning, yet keep the special meaning replacing a string begin or end with a string has [tg] Write a pattern optimiser that is run internally before calls to the pattern matching code always (currently, replaces a@(b@(c)d)e with abcde but keeps @(a|a), then (in a second pass) collapses adjacent asterisk (‘*’) wildcards into a single one; this fixes some of the symptoms of severe performance issues our pattern matching code has to the extent that it can prevent busy-looping (found by Jb_boin) [tg, Chris “ironhead” Sutcliffe, Chet Ramey, Eric Blake, David Korn] Handle pathnames with exactly two leading slashes well (SUSv4 3.266) [tg, Wayne Pollock, Bart Schaefer] Fix here documents, add testcases [tg] Fix corner case ${##1}, add tests for that and ${##} and ${#?} [tg] Bring back “test -H” ifdef S_ISCDF (for HP-UX) from pdksh [tg] Align read-only variable behaviour with (future) POSIX [tg] Permit ${foo%(*} on FSH (Debian Closes: #619947) [tg, rsc] Allow skipping testcases that need a controlling tty ** Affects: mksh (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/747726 Title: Please sync mksh 39.3.20110328-2 (universe) from Debian testing (main) -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs