mksh (59-1) experimental; urgency=low User-visible changes to the shell language (R59): - The output of some commands changed adding quoting for re-entry safety (mostly displaying aliases). - Restricted mode is now enabled if the shell is called as rmksh, rsh, rlksh, … and we install rmksh and rlksh. - The right-hand side of a string comparison (=, ==, !=) in [[ … ]] now uses full Korn Shell extglobs eliminating many a need for an “eval” — e.g. x='f+(o)ba[rz]'; [[ foobar = $x ]] (as before, quote the RHS to avoid this: [[ foobar = "$x" ]] - The global builtin is gone (use R55’s typeset -g instead). -- Thorsten Glaser Wed, 15 Apr 2020 02:38:44 +0200 mksh (58-1) unstable; urgency=medium - HISTSIZE is now limited to 65535, as was pre-announced for years. - Running set -p interactively in privileged shells obtains the effective privileges. -- Thorsten Glaser Wed, 15 Apr 2020 02:34:04 +0200 mksh (56-1) unstable; urgency=medium The new /etc/skel/.mkshrc moves selection of the default EDITOR (for when the parameter was not set prior to running it) to near the top, before /etc/mkshrc runs. It contains a user-editable priority list (first match wins) and, newly, defaults to Debian’s sensible-editor (after a previously-set $EDITOR, of course). It is therefore recommended to update from the skeleton file. Read the full user’s caveat at: http://www.mirbsd.org/mksh.htm#c56 -- Thorsten Glaser Wed, 09 Aug 2017 04:34:54 +0200 mksh (55-1) experimental; urgency=low User-visible changes to the shell language (R55): - The POSIX declaration utility concept is introduced, which also applies to commands having variable assignments and redirections preceding them. "wait" however does not keep assignments any longer. - The new "\builtin" utility forwards the declaration utility flag exactly like "command" does. - The new "typeset -g" replaces mksh’s previous home-grown "global" builtin, which is now deprecated and *will* be removed from a future version. - Aliases are now expanded for command, function and value substitutions at parse time (like for functions, and excepting ‘`’-style ones). - "typeset -f" output is now alias-resistent and thus more reentrant. - Alias names are now limited to [A-Za-z0-9_!%,@], following POSIX, although a non-leading hyphen-minus is also permitted. - "print -R" is now (correctly) roughly equivalent to POSIX mode echo. - The "let]" hack is gone. - "ulimit -a" output changed to display the associated flag. - $PATHSEP is now pre-defined to ‘:’ (‘;’ on OS/2). The delta between mksh and lksh and the deltas between normal, posix and “sh” mode are now properly documented in the manual pages; see README.Debian for which options are enabled in which Debian binaries. -- Thorsten Glaser Wed, 12 Apr 2017 21:52:27 +0200 mksh (53-1) unstable; urgency=medium User-visible changes to the shell language (R53): - Tilde expansion for HOME/PWD/OLDPWD now simplifies the PATH - Rotation operators were renamed from <<< and >>> to ^< and ^> - File descriptors are, once again, sole digits These are in preparation for changes planned in R54: - Perl-ish named file descriptors (ksh93-style) are being researched -- Thorsten Glaser Wed, 10 Aug 2016 20:40:55 +0200 mksh (52c-2exp2) experimental; urgency=low The musl C library is now used for /bin/mksh-static and /bin/lksh as another, i.e. third, alternative, on architectures that have it. -- Thorsten Glaser Thu, 14 Apr 2016 19:04:08 +0200 mksh (52c-2) unstable; urgency=low The /bin/mksh-static binary may now be a symbolic link to a binary placed under /usr – take suitable action if this is a problem for you. In Debian, /bin/mksh should suffice as rescue shell as glibc lives in /lib; for e.g. an initrd, copy the binary straight from the klibc or dietlibc (your choice) bin directory instead. Note that either is only populated if the relevant build succeeded. -- Thorsten Glaser Tue, 12 Apr 2016 15:21:09 +0200 mksh (50f-1) unstable; urgency=low The pdksh transitional package is gone after two full releases – pdksh was last in oldoldoldstable. The /bin/mksh binary no longer inspects argv[0] to enable POSIX and kludge modes when called as sh; use mksh-static (as sh and user shell for initrd) or lksh (as /bin/sh on general systems) instead. -- Thorsten Glaser Sun, 19 Apr 2015 23:08:08 +0200 mksh (50-1) unstable; urgency=medium The right-hand side of “nameref” (typeset -n) expressions is now checked for validity. (Although, this is only fixed for positional parameters and other special variables in mksh 50b-1.) The “arr=([index]=value)” syntax is gone because of severe bugs in its implementation and regressions in other places. It will eventually be brought back, but not right now. Use of “set -A arr -- [index]=value” has not been historically supported by ksh and will not be brought back in mksh either. -- Thorsten Glaser Wed, 03 Sep 2014 22:22:44 +0200 mksh (46-2) unstable; urgency=low The mksh and mksh-static binaries no longer come with the limited printf(1) builtin which was only added to please a maintainer who likes to use printf while not having /usr/bin in their script PATH. It was added to lksh, which uses more POSIX-like arithmetics but lacks interactive command line editing features (dash does so, too). For this reason it’s recommended to use lksh instead of mksh or mksh-static as /bin/sh (unless you don’t install udev) and keep mksh around for interactive tasks (initrd should still use mksh-static exclusively and just provide printf(1) in /bin instead); lksh is statically linked on platforms providing a libc that supports this use case well and is not glibc/eglibc. $ sudo ln -sf lksh /bin/sh is the correct command to use for applying this change. -- Thorsten Glaser Wed, 22 May 2013 19:25:38 +0000 mksh (40.4-1~bpo50+1) lenny-backports-sloppy; urgency=medium The debconf magic for automatically installing /bin/mksh as /bin/sh is gone. If you want to do that, set the symlink in /bin/sh and /usr/share/man/man1/sh.1.gz yourself, as root. Be aware that only the latest mksh versions can safely be used as /bin/sh since in the past after many uploads issues regarding bugs or assumptuous maintainer or init scripts of other packages have been found which need to be addressed by updates of the mksh package. -- Thorsten Glaser Sat, 17 Dec 2011 21:45:04 +0000