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

Reply via email to