-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA384 Format: 1.8 Date: Sun, 28 Feb 2010 14:09:39 +0000 Source: mksh Binary: mksh Architecture: source i386 Version: 39.3-1 Distribution: unstable Urgency: low Maintainer: Thorsten Glaser <tg@mirbsd.de> Changed-By: Thorsten Glaser <tg@mirbsd.de> Description: mksh - MirBSD Korn Shell Closes: 550717 Changes: mksh (39.3-1) unstable; urgency=low . * New upstream version R39c; shortened ChangeLog since R39: - [tg] Build system, code, docs and testsuite cleanup, also style(9) - [tg] Parse and evaluate ${parameter op word} correctly - [tg] 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! - [tg] 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 - [smultron] Tweak the manual page: point out the word “colour” - [tg] 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* ]]” - [tg] Build.sh portability fixes: missing prerequisite headers; ensure $CC is never called without $CFLAGS; fix test.sh, et al. - [tg] 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 - [tg] Fix type errors in the source code (int → bool, size_t, mksh_uari_t) - [tg] Fix “${foo:bar:$baz}” not working (missing substitute() call) - [tg] Implement “typeset ±a” as nop - [tg] Support ksh93-like “${!foo[@]}” listing the keys (indicēs) of all set array elements - [tg] Support bash/ksh93-like “array=([key]=value …)” and (additionally) “set ±A array -- [key]=value …” to directly specify indicēs to use - [tg] Document the optional, unsupported, printf(1) builtin in TFM - [tg] Replace realpath(3) dependency and internally used get_phys_path() pdksh code with own implementation; always offer the realpath builtin - [tg] 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 - [tg] Add “chdir” builtin doing the same as “cd” special builtin - [tg, David Korn] Document more differences between mksh (and pdksh) and AT&T ksh (or, more specific, ksh88, ksh93) in the manual page - [tg] Support “'a'” as an alternative to “1#a”, like ksh93 does - [tg] 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) - [tg] Support “$'…'” backslash-expanding single-quoted strings, as requested by David Korn, with almost the same syntax and semantics - [tg] Unify backslash expansion code (C style vs. print builtin) - [tg] Support “function stop () {” bashism - [tg] For several items in the source code that require order to be kept, provide from multiply-included header files; sort correctly - [tg] Get rid of unneeded FMONITOR (-m) for shells without job control; sync list of flags, comments and manpage with reality - [tg] If MKSH_SMALL, reduce size by removing editor functionality - [tg] Support VT100 emulator style {Ctrl,Alt}-CurLeft/Right keycode sequences with new vt100-hack emacs bind function (LP: #355883) - [cnuke, tg] Remove more, like GNU bash extensions, from MKSH_SMALL - [tg] Remove more functionality, such as Emacs command line editing mode bind key macros, and other extensions, from MKSH_SMALL to help floppies - [tg] Make forking and subshells less expensive wrt. random state - [tg] Build and source code fixes for / caught by SUNWcc, HP aCC, pcc, DEC ucode cc (MIPS), GCC, LLVM clang - [tg] Make undef/def MKSH_NOVI into 0/1 MKSH_S_NOVI build flag - [tg] Get rid of "U getenv" in nm output, we already import environ - [tg] 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 - [tg] Document mksh does not exactly use OPTU-8/OPTU-16 in the manpage, as well as when characters, octets, or screen columns are used - [tg] Fix exit 127 on "mksh /tmp/horsies" ipv of 1 on ENOENT, #548744 - [Clint Adams] Fix typos in the testsuite - [tg, Clint Adams] Begin a shared testsuite for mksh and posh - [tg] Make 「((foo) || bar)」 and 「((foo) | (bar))」 work - [tg] Fix lazy evaluation of assignments by ternary operator, #445651 - [tg] Work around Cygwin bugs (quirks) hindering the testsuite - [tg] In FSH mode, “echo [-n] 'foo\x40bar'” shall not be expanded - [tg] Let set -- $(false); echo $? return 0 (POSIXly correct) in FSH mode, 1 (needed for getopt(1) support) otherwise - [tg] Changes of variables inside Bourne style POSIX functions indeed affect the current execution environment (of the function caller) - [tg] Fix getopts behaviour (sync with AT&T ksh93 not ksh88) - [tg] “eval $(false)” shall return 0 (Debian Closes: #550717) - [tg] Ensure that /* apo'strophes in comments */ work - [tg] Overhaul and simplify handling of (special) variables - [tg] Further reduce memory (code/data) and import footprint - [tg] Use functions without PATH_MAX limit on GNU/Hurd - [tg] Fix tab completing pathnames containing ‘:’, ‘=’, ‘$’ or ‘`’ - [tg] Support ‘-T <tty>’ even if MKSH_SMALL and fix it - [tg] Remove "which" alias "whence -p" to allow "which -a" in dot.mkshrc and add more examples, some commented out - [tg] 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 - [tg] Beautify the manpage in both AT&T nroff and GNU groff - [tg] Fix null-expansion of “${x%?}” if $x is unset - [tg] 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 - [tg] New ${%foo} returning width of $foo in screen columns, or -1 if $foo contains an ASCII/latin1/Unicode C0/C1 control character - [tg] Fix subtle possible portability problem wrt. CHILD_MAX - [tg] Honour ±U on command line of an interactive shell - [tg] Fix dead stores and other bugs pointed out by the Clang static analyser; put assertions in places it has false positives - [tg] 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 - [tg] Rework __attribute__ compiler capability check - [tg] Apply errno save/restore related fix from (sync with) oksh - [tg] 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); ... - [tg] Allow “unset foo[*]” (keep attributes) and “typeset foo[*]” (for forward-compatibility; R39b it’s the same as “typeset foo”) - [tg] 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ß) - [tg] 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) - [tg] Document some more shortcomings in the mksh(1) manual page - Contributed printf.c fixes: + [tg] Make printf(1) builtin use “$'…'” mode, like ksh93 + [tg] Fix const-cleanliness * Remove patches now integrated in upstream or no longer needed * Bump Standards-Version, no relevant change * Apply patches inside the top-level directory * debian/source/format: Enforce "1.0" manually, for now * debian/README.source: New, by zack's suggestion, to document some particulars of the source package and why I'm not using 3.0 yet * debian/README.Debian, debian/mksh.docs: New, document dash bug * debian/control: I'm sure we don't need to B-D on locales-all [m68k] * debian/control: tweak package short description to well-known text and sync long description with upstream's * debian/copyright: Update, sync with upstream * Rename build/ into builddir/ to avoid phony target vs pathname conflict in Makefile (debian/rules) * debian/rules: Ensure we use the C locale during build (especially for patch application collation order) * debian/mksh.examples, debian/rules: Split out dh_installexamples args * debian/rules: Update for R39c, printf.c.1.14 particulars * debian/rules: When building, try with -combine first but retry if it fails, like my OpenSuSE Buildservice packages do (cf. LP: #375604) * debian/control: Remove DMUA, I'm a DD now * debian/diffs/backport-fixes.diff: New, fixes not yet in R39c Checksums-Sha1: c64ed6de9a4a54405d327ce1ddc2003db1152466 1856 mksh_39.3-1.dsc f1a2d90041ba081f8790ae38584d3119d5403ccc 301719 mksh_39.3.orig.tar.gz 5883e8e372752c6061f58241e20825a9fcc87444 53553 mksh_39.3-1.diff.gz 6ebff0d7b15de6b79965c03ea9d807d28a63501c 309364 mksh_39.3-1_i386.deb Checksums-Sha256: 96a5a0406753117b70ba242c26a5912e5aaadbe93ce5f64bea6888abe082a054 1856 mksh_39.3-1.dsc 017ff64c41ae8c756869dae821e47c46b8dcc806719c04a3ded28b375e188e32 301719 mksh_39.3.orig.tar.gz b97752e8bced0feb633911f7813b486b74ec8591288460b7100ab76a9f1d92e6 53553 mksh_39.3-1.diff.gz a79467dec4a5e3043b17731379970f08edf5fe305e0a835cb91d7751f22a2179 309364 mksh_39.3-1_i386.deb Files: 596294601edbe69d02ce28e39c7f2f58 1856 shells optional mksh_39.3-1.dsc 3a705fc3ef3b9d0323ef8b6a7a3b5ec7 301719 shells optional mksh_39.3.orig.tar.gz 3cd33cc165b730345d09fef087b49d89 53553 shells optional mksh_39.3-1.diff.gz 2c8f83912c752b7384ee22adff66e673 309364 shells optional mksh_39.3-1_i386.deb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (MirBSD) iQIVAwUBS4qBQHa1NLLpkAfgAQlmsg/9E6EOq5XP5EL3a11jvoZWl3zJ8TIlYwOh ZY7Tc1NGogsmcs+C75IEeSgx2rIvkHmVORJ//jP997h4kbzyDEr+8hqQ97/SOqlp F1Wfeipl0pvCd736AEIO726b1pymomf7POl5sehIeOiB833XQ/93PoPhKRKtoUOj w2v4As/RqRl25efxWAhhUTRVViWxP9E7Ib88KH8RiS3ntdTOYk89QdqpdEZkRLB4 hw13Mak/kuIBdJdBXzKl3EnbzZthTihnoCuXpotJBMhlOTsxFp9/eRayWCSWyLm+ 8RWRa5mnrar+IrVMMJDsA5Z02vpD/w4KWuyD7xLX9u3NyZaTJ3hZ4iwAez/K8x5F wvOs1pvJI05nCq0M4a0KFP7Hm0oNilnpbmG3ZsmylixyfTaCmPRFAfpXYHz8i1ND 4Tnv78BmFI60SXqd2t5v5B9zyf/Q3iJxoPN7yfTU5rU00eGnPZJ7l2W3PWmKxUml mOVzJoE2NyLDkQ8oJO3bJzyHd066YvNs9gHaydWtem2WTqIONVcWriwlsOw+fYB8 SE5HQgVbR6hLenF0ChdVYK0zwwt+u9+7wzBl4nBnKJg+qs5m0ZCpR2HJm6WQG7Sv U2EqmFXdmQ8U8WafVnMrNA/+qWZnB5RHedV2X17Ob5oz0zwRSUNex6R9PGSiM4cf t97fdgYBj/A= =Dps+ -----END PGP SIGNATURE----- Accepted: mksh_39.3-1.diff.gz to main/m/mksh/mksh_39.3-1.diff.gz mksh_39.3-1.dsc to main/m/mksh/mksh_39.3-1.dsc mksh_39.3-1_i386.deb to main/m/mksh/mksh_39.3-1_i386.deb mksh_39.3.orig.tar.gz to main/m/mksh/mksh_39.3.orig.tar.gz