Fedora 13 Update: mksh-39c-1.fc13

updates at fedoraproject.org updates at fedoraproject.org
Sun Mar 14 13:45:24 UTC 2010


--------------------------------------------------------------------------------
Fedora Update Notification
FEDORA-2010-3122
2010-02-27 12:56:37
--------------------------------------------------------------------------------

Name        : mksh
Product     : Fedora 13
Version     : 39c
Release     : 1.fc13
URL         : http://www.mirbsd.de/mksh/
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:

mksh R39c is an important minor bugfix release:  - Build system, code, docs and
testsuite cleanup, also style(9)  - Build.sh now requires people to whitelist
conftest*.c  - AIX builds no longer pull in libcrypt uselessly by default  -
Parse and evaluate ${parameter op word} correctly  - Fix possible SIGSEGV in
interactive mode bind builtin due to mis-optimisation of gcc combined with a
bogus prototype; discovered by Grml.org's Frank Terbeck (ft), thanks!  - Prevent
Build.sh from accidentally removing mksh.1    mksh R39b is a major stability and
bugfix update:  - Clean up some more strict *roff or compiler warnings: dashes,
undefined macros; casting errors (constness, signedness, type width/class) and
catch possibly unaligned pointer dereferences early; remove code/rodata
redundancies, plug memory leaks  - Tweak the manual page: point out the word
"colour"  - Optimise dot.mkshrc DJB’s CDB hash implementations; add Bob Jenkins’
one-at-a-time hash (standard and leading-bit initialised); fix signedness in
expressions; let the hashes use stdin if "$*" is empty, like Lb64{en,de}code;
use "[[ -o utf8-mode ]]" ipv "[[ $- = *U* ]]"  - Build.sh portability fixes:
missing prerequisite headers; ensure $CC is never called without $CFLAGS; fix
test.sh, et al.  - Optimise internal variable representation; use one-at-a-time
hash; cache hash values for faster resizing at zero memory cost; clean up hash
table (keytab) code; switch hash table collision resolution algorithm to
Python’s; prepare for later changes (commented out)  - Fix type errors in the
source code (int → bool, size_t, mksh_uari_t)  - Fix "${foo:bar:$baz}" not
working (missing substitute() call)  - Implement "typeset ±a" as nop  - Support
ksh93-like "${!foo[@]}" listing the keys (indicēs) of all set array elements –
zsh does it too (${(k)foo}), bash4 can’t :þ  - Support bash/ksh93-like
"array=([key]=value …)" and (additionally) "set ±A array -- [key]=value …" to
directly specify indicēs to use  - Document the optional, unsupported, printf(1)
builtin in TFM  - Replace realpath(3) dependency and internally used
get_phys_path() pdksh code with own implementation; always offer the realpath
builtin  - Implement nameref='typeset -n' (bounded variables) like AT&T ksh93
but with mksh-style nested/dynamic scoping and on-use resolving; they cannot
currently be stored in an array though  - Add "chdir" builtin doing the same as
the "cd" special builtin  - Document more differences between mksh (and pdksh)
and AT&T ksh (or, more specific, ksh88, ksh93) in the manual page  - Support
"'a'" as an alternative to "1#a", like ksh93 does  - Add ksh’s "test -o ?foo":
true if "foo" is a valid shell option, where "foo" can be "xtrace" or "-x" or
"+x" (these three are equivalent)  - Support "$'…'" backslash-expanding single-
quoted strings, as requested by David G. Korn, with almost the same syntax and
semantics  - Unify backslash expansion code (C style vs. print builtin mode)  -
Support "function stop () {" bashism  - For several items in the source code
that require order to be kept, provide it from multiply-included header files;
sort correctly  - Get rid of unneeded FMONITOR (-m) for shells without job
control; sync list of flags, comments and manpage with reality  - If MKSH_SMALL,
reduce size by removing editor functionality  - Support VT100 emulator style
{Ctrl,Alt}-CurLeft/Right keycode sequences with new vt100-hack emacs bind
function (LP: #355883)  - Remove more, like GNU bash extensions, from MKSH_SMALL
- Remove more functionality, such as Emacs command line editing mode bind key
macros, and other extensions, from MKSH_SMALL to help floppies  - Make forking
and subshells less expensive wrt. random state  - Build and source code fixes
for / caught by SUNWcc, HP aCC, pcc, DEC ucode cc (MIPS), GCC, LLVM clang  -
Make undef/def MKSH_NOVI into 0/1 MKSH_S_NOVI build flag  - Get rid of "U
getenv" in nm(1) output, we already import environ  - Simplify $RANDOM handling:
reads are now either arc4random(3) (if available: set +o arc4random is no longer
possible) or an LCG; writes are arc4random_pushb(3) if available for explicit
writes, arc4random_addrandom(3) otherwise, or another one-at-a-time hash feeding
the LCG; furthermore, RANDOM is now always exported to and imported from
(implicit read: no push to kernel done) the environment vector on startup and
spawning  - Internal code cleanup, optimisation, moves to different files;
dead/commented out code removal; code beautification  - Document mksh does not
exactly use OPTU-8/OPTU-16 in the manpage, as well as when characters, octets,
or screen columns are used  - Fix exit 127 on "mksh /tmp/horsies" ipv of 1 on
ENOENT, #548744  - Fix typos in the testsuite  - Begin a shared testsuite for
mksh and posh  - Document (via check.t) another posh bug affecting mksh, #445651
- Make 「((foo) || bar)」 and 「((foo) | (bar))」 work  - Fix lazy evaluation of
assignments by ternary operator, #445651  - Work around Cygwin bugs (quirks)
hindering the testsuite  - In FSH mode, "echo [-n] 'foo\x40bar'" shall not be
expanded  - Let Build.sh run with AIX bsh (SVR3 Bourne Shell)  - Let set --
$(false); echo $? return 0 (POSIXly correct) in FSH mode, 1 (needed for
getopt(1) support) otherwise  - Changes of variables inside Bourne style POSIX
functions indeed affect the current execution environment (of the function
caller)  - Fix getopts behaviour (sync with AT&T ksh93 not ksh88)  - "eval
$(false)" shall return 0 (Debian Closes: #550717)  - Ensure that /* apo'strophes
in comments */ work  - New Build.sh flag -M to not compile but spit out a
Makefrag.inc file from the current build environment, such as the
(cross)compiler, CFLAGS, LDFLAGS, etc. which then can be sourced by e.g. the
Android NDK, or built with make(1) – BSD make and GNU make have been tested, but
almost all makes should work if the source and build directories are the same or
VPATH is supported at least (use of this option is discouraged)  - Overhaul and
simplify handling of (special) variables  - Further reduce memory (code/data)
and import footprint  - Use functions without PATH_MAX limit on GNU/Hurd  - Fix
tab completing pathnames containing ‘:’, ‘=’, ‘$’ or ‘`’  - Support ‘-T <tty>’
even if MKSH_SMALL and fix it  - Remove "which" alias "whence -p" to allow
"which -a" in dot.mkshrc and add more examples, some commented out  - Fix
print_columns() issue with displaying items where characters had differing
number of octets and columns, and the off-by-one which had hidden this problem
with 2-octet 1-column and 3-octet 2-column chars  - Beautify the manpage in both
AT&T nroff and GNU groff  - Fix null-expansion of "${x%?}" if $x is unset  -
Make some globbing (${x%?}) operate on characters instead of octets; update
manual page to reflect that others still do and remove wording that let people
think we’d ever support POSuX character classes  - New ${%foo} returning width
of $foo in screen columns, or -1 if $foo contains an ASCII/latin1/Unicode C0/C1
control character  - Fix subtle possible portability problem wrt. CHILD_MAX  -
Honour ±U on command line of an interactive shell  - Fix dead stores and other
bugs pointed out by the Clang static analyser; put assertions in places it has
false positives (-DDEBUG)  - Plug uninitialised memory access and possible out-
of-bounds read of a buffer caught by Valgrind; change one memcpy(3) to
memmove(3) where srcbuf and dstbuf overlap; place (-DDEBUG) workaround for false
positive  - HP aCC: change IA64 default from forced +DD64 to using the default;
support Bundled compiler; fix double-const warning  - Rework __attribute__
compiler capability check  - Apply errno save/restore related fix from (sync
with) oksh  - Build.sh: output message when switching from autoconfiguration to
building / output generation (requested by Matt "lewellyn" Lewandowsky); use
"conftest.c" ipv "scn.c" (to please ccache); check for "-xipo" with SUNWcc
(suggested by lewellyn as well)  - Allow "unset foo[*]" (keep attributes) and
"typeset foo[*]" (for forward-compatibility; in R39b it’s the same as "typeset
foo")  - When persistent history is enabled (but not MKSH_SMALL) and used,
intertwine the shells concurrently accessing $HISTFILE better ⇒ sync on empty or
duplicate line as well (requested by Maximilian "mxey" Gaß)  - Split off "set ±o
posix" and "set ±o sh" again, to be somewhat more compatible to various old or
vendor versions of pdksh and mksh:    - MKSH_BINSHREDUCED sets FSH but not
FPOSIX    - MKSH_MIDNIGHTBSD01ASH_COMPAT depends on FSH but not FPOSIX    - The
echo built-in behaves the same for FPOSIX and FSH    - File descriptors > 2 are
not closed for both FPOSIX and FSH    - Both "set -o posix" and "set -o sh" call
"set +o braceexpand"    - In contrast to R39 and below, the errorlevel of "set
-- $(getopt ab:c "$@")" is now the same in ksh and FPOSIX mode (0) and only FSH
will use the errorlevel of getopt (used to be the other way round)  - Document
some more shortcomings in the mksh(1) manual page  - Contributed printf.c fixes:
- Make printf(1) builtin use "$'…'" mode, like ksh93    - Fix const-cleanliness
- Contributed arc4random.c fixes:    - Fix buffer overflows in the Win32
codepath of the contributed arc4random.c file and limit the rate of expensive
CryptGenRandom calls if we have other (seed in registry key) entropy pools    -
Fix uninitialised memory access caught by Valgrind  - New Build.sh flag
-valgrind since I’m lazy
--------------------------------------------------------------------------------

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
https://fedoraproject.org/keys
--------------------------------------------------------------------------------


More information about the package-announce mailing list