Fedora 17 Update: mksh-44-1.fc17

updates at fedoraproject.org updates at fedoraproject.org
Sun Apr 7 00:30:56 UTC 2013

Fedora Update Notification
2013-03-20 20:44:59

Name        : mksh
Product     : Fedora 17
Version     : 44
Release     : 1.fc17
URL         : http://www.mirbsd.de/mksh.htm
Summary     : MirBSD enhanced version of the Korn Shell
Description :
mksh is the MirBSD enhanced version of the Public Domain Korn shell (pdksh),
a bourne-compatible shell which is largely similar to the original AT&T Korn
shell. It includes bug fixes and feature improvements in order to produce a
modern, robust shell good for interactive and especially script use, being a
bourne shell replacement, pdksh successor and an alternative to the C shell.

Update Information:

R44 contains these bugfixes:

 - [tg] "$@" always generates words; bug spotted by engla in IRC
 - [tg] Optimise print_columns display to use the screen space better

Please upgrade to mksh R43 (or stick on R41c) because of…

 - [tg] Do not permit $'…' and $"…" in anything that looks like a string, as old scripts, like ncurses’, depend on behaviour not guaranteed by POSIX regarding unescaped dollar signs there
 - [dalias] Make detection of function prototypes more reliable
 - [tg] Quote setenv arguments for eval properly in dot.mkshrc
 - [tg] Validate parameter names for typeset, export, etc.
 - [tg] Provide a classic BSD echo builtin for /bin/sh on MidnightBSD
 - [tg] When generating Makefrag.inc put list of check_categories inside
 - [tg] Actually test all echo(1) flavours and MidnightBSD /bin/sh hacks

mksh R42b and R41c fix regressions:

 - [tg] Correctly initialise memory (Debian #700604)
 - [tg] LP#1104543 fix was too strict (Debian #700526)

mksh R42 brings back the release\ {early,often} scheme:

 - [tg] Make -DMKSH_DISABLE_EXPERIMENTAL a nop again
 - [tg] Quell some LLVM+Clang warnings; overhaul scan-build assert(3)s
 - [tg, RT] Bunch of portability and build system fixes
 - [tg] Re-enable ${ precmd;} in dot.mkshrc and fix it to retain the errorlevel
 - [RT] Port to Minix-vmd, QNX 4, Watcom C; begin porting to SunOS 4.1.1, Xenix, ISC (Interactive) Unix
 - [tg] Prefer const-clean sys_errlist[] to strerror(3)
 - [tg] Permit $"…" and $'…' everywhere except in the body of here documents that are not here strings
 - [tg] Use full recursive parser for double-quoted here strings, and reuse code between here strings and here documents
 - [tg] #ifdef DEBUG_LEAKS free all fds and memory on exit (LP#1106116)
 - [tg] Don’t close stdout/stderr with redirections, dup /dev/null instead, always, both in dot.mkshrc and the testsuite, it does break!
 - [tg] Handle ${ …;} like functions in that local and return DWIW; use it for the big chunk in $PS1 to avoid fork(2)ing (at cost of tempfiles; dot.mkshrc is a sample, adjust to your needs)
 - [tg] Document invalid ${a/b/c} patterns in manpage (Debian #698678)

mksh R41b is a bugfix-only release off a stable branch:

 - [tg] Fix gettimeofday(2) detection at build time (warning)
 - [RT, tg] Build.sh: catch non-working dash printf builtin
 - [chris2, dalias, tg] Remove musl libc workaround and use _GNU_SOURCE which they kindly aliased to _ALL_SOURCE, which is implemented now
 - [tg] Fix getn and some cases of possible array bounds trespasses
 - [chris2, dalias, tg] Use -fno-asynchronous-unwind-tables with GCC
 - [tg] Fix a few warnings from libFirm/cparser (mostly -Wsign-compare)
 - [tg] Correct mistake when doing hashtable lookup collision resolution
 - [tg] Fix running the ERR and EXIT traps in situations with set -e and/or eval (also closes Debian #696823)
 - [tg] Fix “command shift”, reported by «ormaaj:#!/bin/mksh»
 - [Torsten Sillke] Unbreak linking on AIX (remove -qextchk)
 - [tg] Fix regression wrt lists in functions and “set -e” (LP#1104543)

mksh R41 brings a number of bugfixes and new features:

 - [tg] Drop “set ±o arc4random” (deprecated in R40)
 - [tg] Drop old Build.sh -long-options (deprecated in R40)
 - [tg] Change the internal hash algorithm from Bob Jenkins’ one-at-a-time to its NUL-counting, always-changing, better-avalanching MirOS variant NZAAT (with feedback from ciruZ; 75% fill level is reasonable; names tbd in Mirkev/MirJSON)
 - [tg] Use $'…' for non-ASCII parameters for re-entry printing
 - [tg] Use sane spelling of “read-only” consistently
 - [tg] Improve tree -DDEBUG functions (internal/developer use)
 - [tg] Reduce stack usage a bit; speed up hash tables at size cost
 - [tg] MKSH_SMALL no longer implies -fno-inline
 - [tg] Support optional seed in ${parameter@#seed} for security
 - [tg] New Build.sh environment configurable: LDSTATIC (empty)
 - [tg] Improve LTO effect by always adding our copies of distributed utility function sources when linking statically (i.e. LDSTATIC is not empty)
 - [tg] Drop deprecated hack for lines beginning with an exclamation mark
 - [tg] No longer interpret numbers beginning with a 0 digit as octal
 - [tg] Attempt to use -fwrapv on more compilers
 - [tg, RT] Better portability to 386BSD, Debian 0.91, ancient Unicēs
 - [tg] No longer use mkstemp(3) or tempnam(3) functions, do our own
 - [tg] Fix some bugs in the manual page and Build.sh
 - [RT] Port to Coherent UNIX
 - [tg] Enable some options by default for some ports, for instance, since BeOS can never have a controlling tty, the option disabling that warning
 - [tg] Some bugfixes, prompted by RT and Valgrind
 - [RT] Disable sigsuspend(2) on Syllable Desktop
 - [tg] Fix several issues with typeset -p (LP: #993847)
 - [RT] Detect lcc and apply inline fix, e.g. for use with libc5
 - [tg] If klibc, set -DMKSH_NO_LIMITS and check for sigsuspend fix
 - [tg] Fix some issues found by Coverity and some found while fixing
 - [tg] Build.sh options: -t target-filename (instead of mksh); -L to build a legacy mksh, current changes: different $KSH_VERSION “LEGACY KSH” instead of “MIRBSD KSH”; purely for running ksh88 and pdksh scripts; no command line editing; use traditional “set -- $(getopt …); echo $?” mode always; do not keep file descriptors private; parse leading-zero-digit numbers as octal; no mksh extension -T; use “long”, not “int32_t”, for arithmetics
 - [tg] fix trimming with positional parameters (Debian #48453)
 - [tg] ensure that case end tokens are not mixed up (Debian #220272)
 - [tg] make alias definitions in mksh -c work (Debian #517009), hack
 - [tg] Apply speed improvements and add MKSH_SMALL_BUT_FAST
 - [tg] Fix CONSERVATIVE_FDS use-before-definition bug
 - [tg] Correct two regressions when tab-completing (LP: #1025843) and fix bugs in the same code wrt. completion display and other expansions
 - [tg] Make quoted output of “typeset -p” AT&T ksh93 compatible
 - [tg] Implement ${foo at Q} like ${foo:Q} in make(1)
 - [tg] Remove some unused code; more int → bool conversion
 - [tg] Fix using here documents in COMSUB etc. (LP: #1030581)
 - [tg] Fix ulimit builtin usage to match what limits we actually know
 - [tg] Allow overriding /etc location, experts only (LP: #1039713)
 - [tg] Update to Unicode 6.1.0
 - [tg, Todd Miller] Avoid changing ps(1) output by accident
 - [tg, ft, Christian Neukirchen] Detect zsh 2.5.02/NeXTstep for Build.sh
 - [tg] Detect musl-gcc wrapper, define _BSD_SOURCE there, which is totally bogus, but musl, just like dietlibc, gets it wrong
 - [tg] Improve compile-time assertions
 - [tg] Repair select builtin without any choices given
 - [tg] Add -DMKSH_GCC55009 hack to avoid some compile-time assertions and introduce arith-mandatory in check.t to substitute for missing that compile-time check; will change
 - [tg] Rewrite lots of code to not rely on -fwrapv so much
 - [tg] Build.sh: Fix flock(2) detection on GNU/Linux
 - [Andrew Kudryashov] Manpage: fix default for HISTSIZE
 - [tg] Add debugging aid (split-screen mechanism using GNU screen)
 - [Andrew Kudryashov] Manpage, Website: point out correct mailing list
 - [tg, Andrew Kudryashov] Fix ~/nonexistant tab completion
 - [tg] Optimise sh -c “[^]\t\n"-$&-*;-?[\\`|]*” to exec, inspired by Jilles Tjoelker (-DMKSH_DISABLE_EXPERIMENTAL to ostracise)
 - [tg] Fix $? inside eval (RedHat BZ#865121)
 - [tg] Implement ksh93 feature ${ foo;} (using tempfiles this time; exclude with -DMKSH_DISABLE_EXPERIMENTAL in R41)
 - [tg] Run SIGINT check more reliably in the cat builtin (LP#1058815)
 - [tg] Handle ^C in here documents, COMSUB, arithmetics (LP#1069428)
 - [tg] Make dot.mkshrc usable with “set -o nounset” / “set -u”
 - [tg, Clint Adams] Clean up and optimise the error handling code
 - [tg] Fix and add some checks in the testsuite
 - [tg] Sort list of variables in the source code when possible
 - [tg] Add $BASHPID (for ormaaj) and $EPOCHREALTIME
 - [tg] Improve documentation, #ksh IRC channel homepage
 - [tg, RT] Minix 2 also doesn’t have gettimeofday(2) ⇒ check for it
 - [tg] Fix an input command line editing display redrawing issue
 - [tg] Track the tty to keep $COLUMNS and $LINES up-to-date after a SIGWINCH even in scripts

mksh R40f fixes a critical bug as well as this:

 - [tg, RT] Implement fcntl(2)-based advisory locking as an alternative iff flock(2) is not found (LP: #912691); keep trying in the face of EINTR
 - [tg] Fix severe regression wrt. initialising tty(4) states
 - [tg] Improve testsuite, build-time checks and debugging output
 - [tg, RT, winstonw] Improve portability to BeOS (works), Cygwin (good), Dell UNIX (works somewhat, but not with gcc), LynxOS (works somewhat), NeXTstep (works but not OpenStep 4.2), USL C compiler, SCO OpenServer (good), SCO UnixWare (good), Plan 9 (still broken), Syllable Desktop (broken?)
 - [tg] rlim_t is supposed to be unsigned
 - [tg] Some code, warning and spelling cleanup
 - [tg] New Build.sh environment configurable: AWK (= awk)
 - [tg, DONG-DONG YANG] Add safety net in the Emacs line editing code
 - [tg] No longer rely on env(1), id(1), printf(1) in the testsuite, and strcasecmp(3), strcasestr(3), strncasecmp(3) in the code
 - [tg, stsc, RT] Reduce system requirements of check.pl further

mksh R40e is another must-have bugfix update:

 - [tg, Jilles Tjoelker] skip readonly check in unevaluated ternary twig
 - [tg, anonymous] fix all remaining ifs.sh testcases
 - [tg] No longer try to build with GCC and C99 extensions
 - [tg, Jilles Tjoelker] Do not expand aliases in COMSUB twice
 - [tg] Honour UTF-8 multi-byte character boundaries when doing partial tab-completion insertions (LP: #909025) to fix RedHat BZ#745702
 - [tg] Fix R40 (BZ#496791) regression with IOACT in TIF (LP: #907224)
 - [tg, ft] Darn persistent history code worst offenders (LP: #906914)
 - [tg] Fix some gc-sections, GCC and Clang/scan-build warnings/issues
 - [tg, 28C3] dot.mkshrc hash functions: partially address LP: #909818
 - [tg] Only compile divmod(0x80000000, -1) code in when not unneeded
 - [tg, RT] Move mirtoconf checks and INCLUDES_ONLY parts of sh.h around to ensure prerequisites are always available
 - [tg, RT, ir0nh34d] Pass mksh.exe to testsuite, if such thing is generated, and deal with Cygwin passing just “mksh” in argv[0] in such cases
 - [tg] Imply -DMKSH_ASSUME_UTF8=0 on MSYS; optimise checks
 - [tg, Jb_boin] Fix regression introduced in R35b by jaredy’s security patch where TTIME trashed a non-TCOM string argument (e.g. in TFOR)
 - [tg] Better support for tcc; fix GCCism that accidentally crept in
 - [tg] Deal with UTF-8 when reporting jobs’ commands
 - [RT] Add SkyOS to known OS list
 - [tg, RT] Support Minix in its variants Minix 3 and Ninix 3 better
 - [tg] Drop some Android-specific unused code (lsmod builtin)
 - [tg, RT, lewellyn] Support QNX and various versions of BSD/OS better
 - [tg] More code cleanup and new developer-only debugging functions
 - [tg, Andrew Kudryashov] Fix some tab completion related escaping bugs
 - [tg, draenog] Honour COLUMNS and LINES from the environment in scripts
 - [tg, winstonw] The sleep built-in utility now blocks more signals
 - [tg] Warn when using another deprecated function that will be removed

* Mon Mar 18 2013 Robert Scheck <robert at fedoraproject.org> 44-1
- Upgrade to 44 and work around bug in GCC 4.8 (#922974)
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 41-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Mon Dec  3 2012 Michal Hlavinka <mhlavink at redhat.com> - 41-1
- Upgrade to 41
* Fri Jul 20 2012 Michal Hlavinka <mhlavink at redhat.com> - 40i-0.20120630
- Upgrade to pre-release of 40i
- includes new legacy shell lksh for old scripts requiring pdksh or similar old
  ksh-88 shell, see man lksh for differences
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 40d-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

This update can be installed with the "yum" update program.  Use 
su -c 'yum update mksh' at the command line.
For more information, refer to "Managing Software with yum",
available at http://docs.fedoraproject.org/yum/.

All packages are signed with the Fedora Project GPG key.  More details on the
GPG keys used by the Fedora Project can be found at

More information about the package-announce mailing list