Changelog
mksh (29.2-1) unstable; urgency=low
* New upstream formal release; summary of changes:
+ a plethora of UTF-8 fixes:
- display control characters U+0080..U+009F the same as U+0000..U+001F,
i.e. a caret followed by the character corresponding to the control
character XOR 0x0040, treat their width as 2 subsequently
- fix crash (cpu hog in spinning loop) on meta-tab + backspace
- strip off UTF-8 byte order mark at beginning of input
- if a BOM is encountered, switch on utf-8 command line editing mode
+ in utf-8 command line editing mode, handle invalid input more strictly:
- if in x_literal(), i.e. the ^V mode (bind to quote), allow it as before
- if it's the start of an invalid multibyte sequence, reject with a beep
(e.g. if trying to input latin1 chars)
- if it's an invalid or partial multibyte sequence, reject silently
-> this makes command line editing much more robust
+ other bug fixes:
- in a rare condition (error path), the wrong function was used to copy
a string that could contain embedded NULs (encoded format), leading to
memory access past malloc'd area
- in the same path, fix an out-of-bounds access inherited from openbsd ksh
-> discovered on Debian GNU/Linux experimental ia64, glibc 2.5-beta
+ new functionality:
- if execve() fails, before passing the file to $EXECSHELL, open it and
try to parse a shebang line; if we find one, do it ourselves
(the good part of this is that it even works when there is a UTF-8 BOM
before the shebang magic sequence)
- for shebang processing, not only NUL or LF but also CR terminate the line
- enhancements to the "dot.mkshrc" sample file (which is now regularily
used upstream as well)
- if the internal function exchild() fails, don't just tell the user that
it failed, tell him WHAT failed (unless -DMKSH_SMALL)
+ code cleanup changes:
- remove unused functions, macros
- fix typos, errors, etc.
- shut up gcc 4.1.2 warnings
- Build.sh cygwin vs unix cleanup/simplification
- shrink manual page to 39 DIN A4 pages when output as postscript
+ reliability changes:
- if $CC supports -fstack-protector-all, add it to $CFLAGS
- if $CC supports -fno-tree-vrp, add it to $CFLAGS if $CC is subject to
the bug http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30785
- add mirtoconf check for "large file support", requested by bsiegert@,
needed for some *nix, idea and implementation hints from GNU autoconf
- add zsh workaround to Build.sh, just in case (untested)
* disable the possible workaround mentioned in the changes for 28.9.20070309
because I was unable to verify/test it; maybe it only applies to the glibc
in experimental anyway, we'll see to that later
* add a comment about the regression test needing openpty() to debian/rules
* remove non-ASCII (i.e. high-bit7) characters from diff/changelog
* slightly enhance package description
* properly indent homepage link in description, thanks KiBi (kfreebsd team)
mksh (28.9.20070309) experimental; urgency=low
* Add possible workaround for #408850 by disabling -std=gnu99 (untested)
so that this package at least compiles on Alpha until the bug
can be fixed
* Restore Debian prefix in copyright file accidentally lost in 28.9.20070304
* Do not build-depends-on-essential-package-without-using-version, remove
explicit dependency on bsdutils
mksh (28.9.20070304) experimental; urgency=low
* Due to failures like this one:
``cat: /build/buildd/mksh-28.9.20070218/builddir/screenlog.0:
No such file or directory''
in http://experimental.ftbfs.de/fetch.php?&pkg=mksh&ver=28.9.20070218&arch=powerpc&stamp=1171913314&file=log&as=raw
- remove the use of GNU screen to run the testsuite again
- use 'script' from the Debian bsdutils package) to run the
regression test suite within a controlling tty
(this is experimental)
* New upstream release candidate; summary of changes:
- Work around Solaris /usr/ucb/tr, Solaris /usr/xpg4/bin/tr,
Minix 3 /usr/bin/tr, and SUSv3 deficiencies
- Fix compilation on more platforms (Interix, Cygwin, Linux 2.0 libc5,
Debian GNU/kFreeBSD, Debian GNU/HURD, ...)
- Use autoconfiguration for persistent history stuff
- Fix the code (add "const" in like 1001 places) to be able to
build without -Wno-cast-qual (hope it's safe now)
- Optionally use const-debugging versions of strchr(3), strstr(3),
to work around deficiencies in ANSI C
- The above directly led to our own strcasestr(3) implementation
for OSes which don't have it
- Optimise dot.mkshrc macros
- Remove shadowing warnings for more OSes
- Support old ash(1) versions in Build.sh
- Support use of _NSIG for NSIG
- Optimise ctags(1) generation
* Honour ${CC}
mksh (28.9.20070218) experimental; urgency=low
* New upstream development snapshot; summary of changes:
- fix 'hd' alias in dot.mkshrc example to not run off
an ANSI standard 80 column screen; simplify
- integrate MKSH_NEED_MKNOD and MKSH_ASSUME_UTF8 with Build.sh
mksh (28.9.20070216) experimental; urgency=low
* New upstream development snapshot; summary of changes:
- if MKSH_SMALL, don't include -T support and don't scan
for revoke() function
- new #ifdef MKSH_NEED_MKNOD to embed mknod(8) even if
MKSH_SMALL is enabled
- do not scan for revoke() on GNU/Linux since it always fails
- simplify GNU/Linux CPPFLAGS and use them for GNU/HURD and
GNU/kFreeBSD (tested on Debian experimental, thanks to the
ftbfs.de autobuilder and Michael "azeem" Banck)
- fix the 'bind' (no args) builtin output
- new #ifdef MKSH_ASSUME_UTF8 to not check setlocale() and
nl_langinfo(CODESET) if we want to always enable the utf-8
command line editing mode
- tabcomplete a newline to singlequote+newline+singlequote
instead of backslash+newline which is eaten; thanks to
Thomas E. "TGEN" Spanjaard for noticing
- remove shebang line from check.pl which isn't +x anyway
* control: add ed(1) as suggested package, for history editing
* control, rules: add GNU screen as build dependency; use it to
provide a tty to the regression test suite so it can succeed in
the Debian autobuilding mechanism; tested on i386-linux, i386-hurd
* control: only the emacs editing mode is utf-8 safe (fix description)
mksh (28.9.20070118) experimental; urgency=low
* New upstream development snapshot; summary of changes:
- autoconfify compiler flags, c preprocessor
- add option to avoid pulling in getpwnam(3) in !MKSH_SMALL
- scan for certain headers, types; improve portability
- speed up autoconfiguration process in failure case
- finally fix static vs dynamic linking issues
- fix manpage (.Nm macro) glitch with GNU nroff 1.15
- improve auto-detection of which regression tests are valid
- mention failure to revoke(2) is possibly insecure
* As a result of upstream changes, simplify debian/rules
* Testsuite failues are not fatal for Debian
* Please note: this is a development snapshot from CVS, but this
one is deemed "gamma stadium" (i.e. more stable than beta, and
ready for public consumption by a broad mass of testers).
mksh (28.9.20070117) experimental; urgency=low
* Add -fwrapv to Debian CFLAGS to prevent unexpected code behaviour
* New upstream development snapshot; summary of changes:
- Don't expand ~foo/ if MKSH_SMALL, spares getpwnam(3) call
- Fix and autoconfify signal list generation
- Build.sh now uses $TARGET_OS as "uname -s" output for cross builds
- Set flag for regression tests that can't succeed if MKSH_SMALL
- Don't even check for setlocale(3) if MKSH_SMALL, unless overridden
by user / build environment
- Scan for C Preprocessor, use $CPP if $CC -E fails
- Fix possible nil pointer dereferences and signal name mismatches
- Scan for __attribute__((...)) and -std=gnu99 (req'd on Solaris 10)
- Correct $LDSTATIC logic, unbreak -d, don't let the user override (or
need to) $SRCS, $sigseen
- Simplify TIOCGWINSZ handling, no need to catch SIGWINCH any more;
window size changes are processed after input line editing ends (i.e.
the lines are entered or ESC # (emacs mode) is pressed) and at
startup; ^L (redraw) can't change window size on the fly
- Add -fwrapv to standard CFLAGS, just to be safe, like with when I
added -fno-strict-aliasing; this is pending a bug fix in gcc, see
GCC PR#30477
* Please note: this is a development snapshot from CVS as well;
it may be included into Debian experimental, but is not recom-
mended for Debian testing.
mksh (28.9.20070106) experimental; urgency=low
* New upstream development snapshot; summary of changes:
- Fix UTF-8 locale detection and segfaults
- Use RLIMIT_AS if RLIMIT_VMEM is not available
* Please note: this is a development snapshot from CVS as well;
it may be included into Debian experimental, but is not recom-
mended for Debian testing.
mksh (28.9.20061211) experimental; urgency=low
* New upstream development snapshot; summary of changes:
- Spelling and wording fixes in the manual page and copyright file;
keep the latter in sync with the latest MirOS licence template
- One correct cast for the ulimit builtin
- Portability #warning for developers (not seen on BSD, but
yields a TODO for Debian)
* Please note: this is a development snapshot from CVS as well;
it may be included into Debian experimental, but is not recom-
mended for Debian testing. If you already have 28.9.20061121,
like the SuSE guru repository of loki, you do not need this
minor update.
mksh (28.9.20061121) experimental; urgency=low
* Add -fno-strict-aliasing to default CFLAGS, as per upstream suggestion
* New upstream development snapshot; summary of changes:
- Fix portability of regression tests using fgrep(1), twice
- Fix description of $RANDOM in manual page
- Fix build under OpenSolaris Build 47 (reported in IRC)
- Use easier __RCSID() stuff from MirOS #9-current
- Don't shebang with spaces in test.sh creation
- Remove -fno-strength-reduce from default CFLAGS, the compiler bug was
fixed between gcc 2.7.2 and gcc 2.7.2.1...
- Avoid unaligned memory access causing SIGBUS on IA-64 on Debian
- Convert to autoconf-style check for function and header file existence
of <sys/param.h>, arc4random(3), arc4random_push(3), setlocale(3) and
LC_CTYPE, nl_langinfo(3) and CODESET, getmode(3) and setmode(3),
strcasestr(3), and strlcpy(3)
- Add set -o utf8-hack aka mksh -U which changes the Emacs editing mode
to an experimental CESU-8 aware multibyte mode (not implemented using
wide chars unless internally needed; does not require OS support); check
setlocale(LC_CTYPE, "") and nl_langinfo(CODESET) if found to auto-enable
utf-8 mode in interactive shells
- Simplify and clean up code; try to remove or replace function calls by
smaller equivalents; spot a few non-fatal off-by-one errors
- If Build.sh is called with -DMKSH_SMALL in the CPPFLAGS environment
variable, the built-in mknod(8) will not be included, and other
functionality and verbose usage messages will be excluded; some macros
will be turned into functions to save space and to check if the
utf8-hack should be enabled, nl_langinfo(3) is not called. The -T
option to mksh(1) and persistent history are not supported.
- Hand-optimise the code to be small, even in the normal build
- Unbreak the -d option to Build.sh
- Check for cc options -Wno-error, -fwhole-program --combine, and (if
MKSH_SMALL) -fno-inline and use them if they don't fail
- The autoconf-style ("mirtoconf") checks have been enhanced,
improved and be made more verbose by default
- Rewrite a few functions both to save space and to simplify/unify the
code; also spotted a few bugs in existing (inherited) code
- Fix format string mistakes and wrong function and data prototypes
- Correct zero-padding for right-justified strings; add regression test
- EXECSHELL is now ${EXECSHELL:-/bin/sh} again
- Remove duplicate code if feasible; rewrite remaining code to solve all
use cases, or use standard library functions such as qsort(3); rework
the ctypes and chtypes stuff, get rid of libc/ctype.h
- Change the eaccess() code to not use setreuid(2) and friends, like
OpenBSD ksh and apparently pdksh. I'm not too sure about the
implications, except that they only affect setuid shell scripts.
- Use setresuid(2) and friends, and setgroups(3) and <grp.h> instead
of seteuid(2), setuid(2) etc. on operating systems that support them
- Work around (i.e. remove) all but two -Wcast-qual issues
- Work around a bug in the GNU implementation of the Berkeley mdoc macros
which comes with GNU groff (only visible in MirOS with groff -mgdoc, but
shows on other operating systems), discovered by crib in IRC
- $RANDOM is always an unsigned 15-bit decimal integer, for all Korn shell
derivates; idea from twkm in IRC
- Improve/correct description of typeset command in manpage, and
implementation of typeset -p in mksh
- Remove the non-standard emacs-usemeta and vi-show8 shell options, assume
the user either has a 7-bit environment, an 8-bit clean terminal, or a
UTF-8 environment (preferred), and the dummy sh option
- Build.sh fix for conservative (old) versions of gcc; help Debian
* Mention UTF-8 support in the Debian control file's Description field
* PLEASE NOTE: this is not intended to be uploaded into testing, because
it is based upon a CVS checkout of mksh-current, and not of a formal
release. The "mksh 28.9.yyyymmdd" series is based upon CVS snapshots of
mksh-current (mksh R29-beta), and subject to changes. This part of the
changelog might differ in the following mksh-29.0-1 upload to Debian.
This code is *not* well-tested and may have been broken on various other
operating systems and maybe architectures; it may have introduced further
memory leaks. It is recommended to only use it to evaluate mksh's recent
development and help finding bugs and fixing them. No warranty, as usual.
-- Ubuntu Archive Auto-Sync <email address hidden> Fri, 27 Apr 2007 00:41:54 +0100