2009
mksh (39.1-4) unstable; urgency=low
* Update danish translation, Tak tazz
* debian/diffs/backport-echo-noescapes.diff: new, backport fix
for "echo [-n] 'foo\x40bar'" expanding even in sh mode
* debian/diffs/*: refresh and bump version number
* debian/control: Update and correct package description
-- Thorsten Glaser <tg@mirbsd.de> Sat, 10 Oct 2009 22:00:37 +0000
mksh (39.1-3) unstable; urgency=low
* Add support for using pax instead of cpio for extraction * Backport fix for return code bug (Closes: #548744)
-- Thorsten Glaser <tg@mirbsd.de> Tue, 29 Sep 2009 12:46:07 +0000
mksh (39.1-2) unstable; urgency=low
* debian/rules: build mksh-small without floating point support
also, because it’s ⓐ huge and ⓑ buggy in dietlibc
* debian/diffs/backport-function-parens.diff: new, support the
"function stop () {" bashism sometimes popular in sh scripts
* debian/diffs/zz-version.diff: fix an oversight and use the
actual 39.1-* version number instead of 38.9.yyyymmdd-* from
when this patch was first being created in an experimental
version; refresh diff against original files; use -U1 instead
of -up for sh.h diff to not get fuzz at the RCS ID
-- Thorsten Glaser <tg@mirbsd.de> Sat, 26 Sep 2009 21:18:54 +0000
mksh (39.1-1) unstable; urgency=low
* New upstream version R39 (despite #540512, I got fed up waiting for
Guillem/Gerrit to contact me), Closes: #541617; complete ChangeLog:
- [tg] Shut up a bogus gcc warning during configuration process
- [tg] Spell AT&T consistently in the source code
- [tg] Tweak mksh(1) manual page, from wbx@ and «lewellyn:#ksh»
- [tg] dot.mkshrc: fix $@ vs. $* mix-up
- [tg] dot.mkshrc: add DJB cdb hash function
- [tg] Sync with oksh: fix Vi editing mode word erase handling, again
- [tg] Skip whitespace between POSIX style shell function name and
its definition parenthesēs during detection if an alias of the same
name already exists to be more robust (Debian Closes: #535970)
- [tg] Build system improvements for ACK and nwcc, both on Debian sid
- [tg] Fix spelling error in changelog discovered by Lintian
- [tg] Aligh “set -o nounset” / “set -u” behaviour with future POSIX
standard, as discussed with GNU bash maintainers, David Korn from
AT&T ksh93, and The Open Group; prompted by use in Debian;
Closes: #539538
- [tg] add an unsupported way to make printf(1) a builtin
- [tg] Build system and regression test code and comment improvements:
better and more comments matching reality better; more reliability
w.r.t. passed CPPFLAGS; more of the MKSH_SMALL changes may be
overridden, all of them are now enumerated on the webpage; fixed
some breakage; portability
- [tg] MKSH_NOPWNAM and MKSH_SMALL will now both disable the ~fac/
(homedir) expansion code wholly if defined, not just getpwnam(3)
calls
- [tg] shells without job control no longer define the standard
“stop” and “suspend” aliases (they are pointless anyway);
regression tests know
- [tg] use system RCS ID macros on MirBSD if decent enough
- [tg] shut up bogus gcc 4.5/trunk warnings caused by
over-optimisation
- [tg] restore ANSI C compilability broken in R38 (speed up, even)
- [tg] use memcpy(3) ipv strlcpy(3) if possible and safe and secure
* Integrate czech translation update, Dêkuji; Closes: #534788
* Switch to debhelper 5, by suggestion of Patrick “aptituz” Schönfeld
* Add (commented out) framework for building with klibc, pending
bugfixes and enhancements I submitted to the Debian BTS; can be
customised for with/without MKSH_SMALL and dynamic/static linkage
* debian/copyright: remove setmode.c remark, it is never used:
mksh-full has it provided by libbsd; mksh-diet, mksh-small, and
mksh-klibc have the mknod builtin disabled and do not need it;
strlcpy.c is provided by libbsd, dietlibc and klibc, so neither
mksh-full nor mksh-diet (nor mksh-klibc) need it, only mksh-small
in the glibc version (on platforms where dietlibc is unavailable)
* debian/rules: Append -e to sub-make command line, to force it to
use the correct build environment (mostly CFLAGS)
* Apply policy compliance (-o posix if run as sh) to mksh-small
* Disable duplication of -Wall on the compiler command line
* debian/rules: improve comments
* mksh-klibc: debian/rules can now build an MKSH_SMALL flavour
* Let mksh have all builtins dash has; Closes: #532343
‣ New diffs/add-builtin-chdir.diff: add “chdir” builtin (= “cd”)
‣ New diffs/add-builtin-printf.diff: add “printf” builtin (manpage)
‣ debian/copyright, debian/rules: new source file printf.c (code),
install and use it; make sure klibc has strtod(3) disabled
‣ New diffs/add-builtin_common.diff: common part of the diff
* New diffs/zz-version.diff: use Debian specific ksh version number
* debian/rules: reorder some assignments to make it better readable
and add and improve comments
* debian/watch: add RCS ID and comments
* debian/mksh.menu: don’t create an entry for Diet mksh any more
* debian/mksh.menu, debian/mksh*.xpm: add icons, long description
* Update spanish translation; from asarch via IRC, ¡gracias!
* Fix a spelling error and repetitiveness in the German translation
* Use portuguese debconf translation for the missing parts of the
brasilian-portuguese translations and mark them fuzzy
* Translate the missing dutch parts myself (as good as I can)
* Convert all debconf translation files to UTF-8
* Remove VCS-CVS field override; the Lintian maintainers have
agreed to adjust it so that anoncvs-over-ssh is not criticised
* Switch to Debian Policy 3.8.3, no relevant changes
-- Thorsten Glaser <tg@mirbsd.de> Wed, 16 Sep 2009 11:08:08 +0000
mksh (38.3-1) unstable; urgency=low
* New upstream version R38c; complete ChangeLog:
- [tg] Fix regression tests on OSes insisting on a shebang (Cygwin)
- [Sean Boudreau] QNX 6.4.2 ed(1) is said to have the bugs fixed
- [tg] Build.sh bugfixes: -DMKSH_BINSHREDUCED can also be given
without -DMKSH_SMALL; allow HAVE_REALPATH=x and HAVE_REVOKE=x in
the environment to re-enable these even if -DMKSH_SMALL disables
them by default, like mknod already did
- [tg] -DMKSH_ASSUME_UTF8=0 skips the environment checks, like
-DMKSH_ASSUME_UTF8=1, but disables the utf8-mode
- [tg] Apply some more KNF – style(9) – to the source; clean it up
and further optimise for small size
- [OpenBSD] Fix segfaults caused by missing check for end of input
in the tokeniser on “let --” and other input
- [OpenBSD] Make Vi editing mode ^W behave like Emacs mode’s
- [tg] If no killpg(3) is available, use kill(2) and hope it works
- [tg] -DMKSH_NO_LIMITS skips trying to build the ulimit code
* debian/rules: use DEB_BUILD_ARCH, not DEB_HOST_ARCH, to determine
if dietlibc should be excluded on certain architectures where it
is known to fail
-- Thorsten Glaser <tg@mirbsd.de> Wed, 10 Jun 2009 19:45:10 +0000
mksh (38.2-1) unstable; urgency=low
* debian/rules: fix typo in buildd admin instructions for openpty()
* New upstream version R38b; complete ChangeLog:
- [André Wösten] Add __NO_EXT_QNX to avoid picking up the wrong
waitfor() from <libutil.h> in (while porting to) QNX 6.4
- [tg] Plug memory corruption issue introduced in R38
- [tg] Amend dot.mkshrc with a base64 en-/decoder in shell
- [tg] Import a manpage fix via OpenBSD from Alan R. S. Bueno
-- Thorsten Glaser <tg@mirbsd.de> Sun, 31 May 2009 17:45:42 +0000
mksh (38.1-1) unstable; urgency=low
* debian/control: depend on locales-all on m68k because its
locales and glibc packages are not up to date / installable
* debian/rules: ignore localedef failure (uncritical to build)
* New upstream version R38; complete ChangeLog:
- [tg] Improve regression test output debugging
- [tg] Fix <libutil.h> prerequisites on MidnightBSD in mirtoconf
- [tg] Mention that RedHat BZ#496791 cannot currently be fixed in
the manpage by discouraging use of apostrophes in comments in
comsubs; add appropriate (expected-fail) regression tests
- [tg] Sync with OpenBSD ksh (mostly a no-op)
- [James Butler] Add search-history-up and search-history-down
keybindings (tcsh-like) to the Emacs command line editing mode
- [tg] Bind new search-history-{up,down} to ANSI PgUp and PgDn keys
- [tg] Document ANSI default keybindings (↑↓←→ Home End Del
PgUp PgDn) in the mksh(1) manual page as well
- [tg] Optimise internal UTF-8 handling code for size and reusability
- [tg] Incompatible change: ${foo:1:2} and ${#foo} now operate on
characters, not on bytes. Characters are octets (set +U) or
(utf8-mode) MirOS OPTU-8 multibyte characters (set -U)
- [tg] Improve regression tests relating to ${foo:1:2} and ${#foo} and
let wc=1#x and utf8-mode
- [tg] Use per-file copyright notices, move global text to manpage
- [tg] Expose new MKSH_MIDNIGHTBSD01ASH_COMPAT ifdef; change it to only
trigger if FPOSIX (or MKSH_BINSHREDUCED and /bin/sh)
- [tg] Remove already-dead “#if 0” style debugging code
- [tg] Change some code into a more portable fashion, optimise
- [tg] Allow [[ $foo ]] (ksh93 extension) mentioned by pgas
- [tg] Clean up mksh and the contributed arc4random.c for some
conversion, enum and other warnings for gcc-snapshot trunk r147610
- [tg] Ensure no function uses more than 768 bytes of stack either
- [tg, wbx] Add extension to make “!string” lines work like in GNU bash
* debian/rules, debian/copyright: adjust to upstream changes,
provide separate copyright file for Debian
* Remove package-uses-deprecated-debhelper-compat-version
lintian override to show up in statistics, we want to
retain the old debhelper version to facilitate backports
-- Thorsten Glaser <tg@mirbsd.de> Wed, 27 May 2009 21:27:50 +0000
mksh (37.3-2) unstable; urgency=low
* Provide a way to not use dietlibc for /bin/mksh-static
on certain architectures; use it for s390 (Closes: #523088)
* debian/control: run ispell over it
-- Thorsten Glaser <tg@mirbsd.de> Wed, 08 Apr 2009 18:07:55 +0000
mksh (37.3-1) unstable; urgency=low
* New upstream version R37c; complete ChangeLog:
- [tg] Improve præprocessor detection/work in Build.sh
- [tg] Decouple MKSH_CONSERVATIVE_FDS from MKSH_SMALL
- [tg] Enable MKSH_CONSERVATIVE_FDS by default on Minix 3
- [tg] Work around the (in-)famous ACK "const" bug
- [tg] Optimise structure alignment and padding; Closes: #522778
- [tg] Retain LOCPATH (for glibc locale) in check.pl
- [tg] Document, simplify and clean up the code better
- [tg] Use mirbsd.org eMail addresses consistently
* debian/rules: try to at least execute the built binaries in !nocheck
cases, to prevent totally unusable packages from being published;
Closes: #522779
* Use LOCPATH and a temporarily generated UTF-8 locale for the regres-
sion test suite (from Steve “vorlon” Langasek); depend on localedef
Closes: #522777
* debian/control: add comment where the dietlibc list comes from
* Sync package description, etc. with R37c release and upstream
* debian/control: mention VCS-CVS syntax and place of upstream source
-- Thorsten Glaser <tg@mirbsd.de> Tue, 07 Apr 2009 23:24:48 +0200
mksh (37.2-1) unstable; urgency=low
* New upstream version R37b; complete ChangeLog:
- [tg] Clean up build system and dot.mkshrc some more
- [tg] Add getrusage(2) implementation using times(3) if none found
- [tg] Add jobless mode (for Minix 3, Plan 9, …)
- [tg] Detect the Amsterdam Compiler Kit in the build system
- [tg] If no RLIM_INFINITY don’t try to do ulimit
- [tg] Work around gcc4 strict warnings vs. broken system headers
- [tg] Work around systems with mmap(2) but no munmap(2)
- [tg] Fix (disallow) bind key macro recursion (instead of beeping
and going into an endless loop), allow multi-line bind key macros
(mostly from Alexander Hall), remove dead code (the beeping) and
optimise
- [tg] Add (commented out, undesired, standards compliance breaking)
compatibility code to MidnightBSD 0.1 /bin/sh for ctriv
- [tg] Clarify the mksh(1) manual page even more
- [tg] Port to Minix 3 + GCC
* New upstream version R37; complete ChangeLog:
- [tg] Rename -o utf8-hack to -o utf8-mode
- [tg] Fix spacing mode error (pasto) in the mdoc(7) format manpage
- [tg] Implement $((#…)) unsigned arithmetic calculation, needed for
arc4random_uniform(3)-in-korn-shell implementation
- [tg] Really preserve LD_LIBRARY_PATH in check.pl
- [tg] New Build.sh option ‘-combine’ for building mksh(1) at once
with “-fwhole-program --combine” (gcc4, llvm-gcc4) if available
- [tg] Always set COLUMNS and LINES trying as hard as we can, using
TIOCGWINSZ even if used without FTALKING, and with the sane 80x24
default if the ioctl(2) fails
- [tg] Handle _POSIX_VDISABLE being undefined (e.g. Linux/klibc)
- [tg] <sys/file.h> is only required for flock(2)
- [tg] Fix multi-column output routine for the corner case if the
screen is less wide than one output column; 10x Gábor Gergely
- [tg] Fix ${foo/@(%)/\\x} in UTF-8 mode (utf_widthadj for control
characters U+0080‥U+009F is slightly broken; this fix shifts the
brokenness into the command line editing mode only)
- [tg] Introduce mksh_ari_t and mksh_uari_t internal types to limit
arithmetics to 32 bit on all systems; currently depending on the
already-used standard int32_t and uint32_t types. Future expansion
to 64 bit possible. Document that shell integer variables use this
type.
- [tg] The variables PGRP, PPID, RANDOM and USER_ID are now unsigned
- [tg] Fix two off-by-ones breaking PS1 ending with a newline; bug
reported by Matthias Diener
- [tg] Just pass through C1 control characters for now
- [tg] Code and internal interfaces cleanup
- [tg] Regression test fixes for Cygwin env(1) being unsorted
- [tg] Replace the memory allocator by something equally simple and
homegrown but optimised for use with mksh and free checking
- [tg] Import a couple of minor fixes (e.g. spelling) from oksh
- [tg] Fix problems with "set -e" for real; from oksh,
Closes: #518359
- [tg] In "set -o posix" mode, have limited echo(1) to improve
standards compliance; the exact feature set is open for discussion,
e.g. with pkgsrc® people; for now, only -n as first arg
- [tg] Make test builtin operator precedence consistent; from oksh
- [tg] Revamp and fold and enhance the regression tests
- [tg] Document somewhat surprising behaviour in mksh(1) better;
here: [ x -eq y ]; for gps23 from #ksh
- [tg] Reduce memory consumption by allocator simplification
- [tg] Fix bugs spotted by DEC ucode cc (ULTRIX) and gcc 1.42 (BSD/OS)
- [laffer1] Make mksh the default /bin/sh in MidnightBSD
* debian/rules: add support for applying patches to the source code
* debian/rules: build with new ‘-combine’ option for better optimisation
* Fix debconf checks if dash is uninstalled; Closes: #518355
* Use 「--package mksh」 consistently with dpkg-divert
* debian/control: update package description
* Upgrade Standards-Version to 3.8.1
- debian/rules: support nocheck in DEB_BUILD_OPTIONS
- debian/control: add RCS Id as comment field
* debian/source.lintian-overrides: add (things not deemed fixable)
- package-uses-deprecated-debhelper-compat-version (who cares)
- vcs-field-uses-not-recommended-uri-format (source is available
via AnonCVS, but pserver must die!)
* debian/control: prepend :ext: anoncvs protocol to VCS-CVS field
-- Thorsten Glaser <tg@mirbsd.de> Sun, 05 Apr 2009 15:48:16 +0000
2008
mksh (36.2-1) unstable; urgency=low
* Reword package description, avoid things not of interest to
a Debian user; Closes: #505882
* Switch from patching copyright to merely prepending information
* Remove all patches, as they have been integrated upstream; add
‘-DMKSH_BINSHREDUCED’ to CPPFLAGS to enable the functionality
* New upstream version; complete ChangeLog:
- [tg] Add check for naming the output file “scn” instead of “a.out”
or “a.exe” when compiling scn.c, for Haiku, from Adam “replaced” Hoka
- [tg] Rewrite utf_backch macro and x_bs2 function into a combined
x_bs3 function for the Emacs editing mode, to optimise them and get
rid of the use of __typeof__ (suggested by Anders “ragge” Magnusson
after the problem was spot by replaced) and one of the uses of the
statements-as-expressions feature
- [ahoka] Add mirtoconf check for nice(3), missing on Haiku
- [tg] Remove all uses of the statements-as-expressions feature by
rewriting the source code accordingly and optimising some parts
- [tg] Recognise nwcc (Nils Weller’s C compiler) in Build.sh
- [tg] If <strings.h> exists, pull it in for strcasecmp(3)
- [tg] Welcome QNX/Neutrino; work around broken /bin/ed
- [tg] Simplify, shorten, speed up PS1 in dot.mkshrc
- [tg] Remove some dead code courtesy of scan-build native runs
- [tg] Add some casts to prevent LLVM+Clang warnings
- [tg] Work around llvm-gcc-4.2.1 -Wformat pickyness
- [tg] Add new Build.sh option ‘-llvm’ (clang, llvm-gcc)
- [tg] Speed up mirtoconf if ‘-DMKSH_ASSUME_UTF8’ is set
- [tg] Add the workaround for Debian #492377 into the main mirtoconf
function (hiding gcc errors during the configure phase) because
Gentoo has similar scanner issues; reported by Hanno Böck
- [tg] If an MKSH_SMALL has arc4random(3), skip the rand(3)/srand(3)
fall-back altogether to shrink size, also removed need for time(3)
- [tg] Fix alias expansion recursion check if the word to be expanded
is immediately followed by end of input, add test case; spotted by
Michael Hlavinka in pdksh and mksh; RedHat #474115
- [tg] Fix string/wdstring confusion preventing bashiop (&>foo) to
work inside a function, add regression test, limit to 99 fds
- [tg] change regression tests to ‘set -U’ or ‘set +U̲ instead of
‘set -o utf8-hack’, as well as query using ‘$-’ ipv ‘$(set +o)’
(easier and more reliable)
- [tg] Add comment to regression tests which can fail on slow machines
or Cygwin environments due to timing issues
- [tg] Remove a lot of superfluous casts, improve type cleanliness
- [tg] Insert a couple of /* CONSTCOND */ for lint
* New source package and build structure:
- distfile is now packaged inside the orig tarball instead of repak-
kaged, similar to PostgreSQL
- debian/rules “patch” target takes care of it, as per Policy Manual
- debian-specific things (debian/ directory and all patches) are kept
in a publically accessible CVS repository
- VCS-CVS and VCS-Browser fields have been added to debian/control
- source is extracted to ./mksh and built, using relative paths to the
source code, in ./build/full and ./build/small; both are .cvsignore’d
- most files now carry an RCS ID
- paths in mksh.install, mksh.manpages, rules have been adjusted
* word-wrap debian/control lines to 80c
* add build dependency on cpio (for distfile extraction)
* for non-pbuilder testsuite runs (needed on gnubber), rename the ./manual
file tested for to ./attended to clarify its purpose
* debian/rules: share code instead of duplicating it
* debian/rules: fix testsuite use of $? and $x (gmake wants $$? and $$x)
* debian/rules: use sensible stamp files and new paths, coming along with
the new “patch” target
* remove the ‘-Q’ option from Build.sh invocation, which is gone
-- Thorsten Glaser <tg@mirbsd.de> Sun, 14 Dec 2008 20:38:42 +0000
mksh (35.2-3) unstable; urgency=low
* Apply upstream changeset 10048D15ABE2EA76C75:
- Bring back automatic -o posix setting if the shell is invoked
as “sh” or “-sh” (unless compiled with MKSH_SMALL), add
regression test
- If -o posix is set, do not keep file descriptors created via
I/O redirection, as Korn Shells do, private; add regression
test; Debian Closes: #499139; reported by Markus Schaber and
Agustin Martin Domingo
* Change mksh-internal version number to document aberration from
pristine source
* Add DM-Upload-Allowed control field to prepare for future updates
* Add workaround to “posix-mode-2” regression test to cope for GNU
getopt idiocy to not stop argument parsing upon encountering the
first non-flag argument: “ln -s mksh -sh” tries to parse -s and -h
-- Thorsten Glaser <tg@mirbsd.de> Fri, 19 Sep 2008 10:12:59 +0000
mksh (35.2-2) unstable; urgency=low
* Workaround for false positives on IA64, Closes: #492377 (by circumventing the regex matcher for code not actually used) * The mksh-static binary on non-dietlibc arches was not statically linked * MKSH_STATIC implies MKSH_NO_PWNAM, remove duplicate definition * Add build dependency on en_US.UTF-8 locale data for the regression tests * Fix lintian -vIi warning debian-copyright-line-too-long by wrapping
-- Thorsten Glaser <tg@mirbsd.de> Mon, 28 Jul 2008 20:54:17 +0000
mksh (35.2-1) unstable; urgency=low
* Update to BSD-advertising-clause-free new upstream release; changelog:
- Simplify and refactor the ulimit builtin, partially from oksh
- Some style cleanup; use appropriate integer types
- Fix a bug in table (e.g. kill -l, tab completion) display: the width
of non-ASCII characters is now honoured in the utf8-hack mode
- Improve handling of invalid UTF-8 in certain areas, and multibyte
(UTF-8 / CESU-8) in general
- When using “typeset -Z«n»” on an integer variable with a base other
than ten, zero-pad the value instead of the base – pdksh, oksh, zsh,
and AT&T ksh93 are wrong here; GNU bash doesn’t even have typeset
- Improve parsing of “set +o” output where done (dot.mkshrc, check.t)
- Improve regression tests
- Support for base-1 numbers: in non-utf8-hack mode, ‘1#x’ means the
same as the ASCII code for ‘x’ (e.g. 78hex), where ‘x’ is any single
octet (byte); in utf8-hack mode, ‘x’ is either a valid and minimali-
stically encoded UTF-8 multibyte character in the range 0000‥FFFD,
or a single octet with no trailing octets (bytes), which will then be
converted as if it were an ASCII value, or, if bit7 is set, be mapped
into the PUA range of EF80‥EFFF assigned by CSUR for this purpose;
this mapping is, in both cases, bidirectional; the planned base-0
number support is not possible with the code, so use base-1 (with
utf8-hack disabled, or & 0xFF) instead (while it is recommended to
parse only single octets, there is a regression test showing correct
and safe multibyte parsing, which however is error-prone to implement
and thusly not recommended) – “genial” replaced@TNG, “this sounds
fun” ggergely, agreed bsiegert@ and others
- Pull in more current versions of supplied files; use Unicode 5.0
- Clean up unused definitions in build system; document MKSH_CLS_STRING
- Remove advertising clause from copyright file; while we’d be pleased
to be mentioned if something contains our code, tg@ will no longer
enforce the requirement to advertise with that specific formula, and
we’d prefer if people remember the OpenHAL vs ath5k incident and that
they cannot simply change licencing of existing code; patches sent to
the MirOS Project for inclusion shall be accepted if they’re agreed
to match this licence
- Simplify dot.mkshrc sample file: licence is merged into the main
copyright file; AT&T ksh93 compatibility was improved
- Fix a display problem regarding fullwidth characters (e.g. CJK)
- Set the “C” locale in Build.sh for tool execution; otherwise, cer-
tain OEs behave strange; thanks to Adam “replaced” Hoka for spotting
- Use en_US.utf8 as UTF-8 locale for the testsuite for now
- If setlocale(LC_CTYPE, "") is not available, look at the environment
variables ourselves – brings UTF-8 support to poor OSes
- Remove some now-dead code; speed up configuration process; shrink
- Default to no setlocale(3) due to stubbed or missing locale support
on GNU/Cygwin, OpenBSD, OSF/1 in Build.sh; a few more that are quite
unlikely to have a UTF-8 locale: BSD/OS, Interix, Minix, PW32,
Ultrix, AT&T UWIN; default to always UTF-8 on Plan 9
- Fix for testsuite unexpected failure if running as root in one case
- Initialise all shell integer variables (OPTIND, PPID, RANDOM,
SECONDS, TMOUT) to base 10
- Reintroduce from mksh pre-R24 shell integer variable PGRP set to
the PID of the process group leader via getpgrp(2)
- New shell integer variable USER_ID set to the geteuid(2) and used
by dot.mkshrc to speed up logins, saves a spawn of id(1), mentioned
by and realisation planned with Andreas "gecko2" Gockel
- Fix dot.mkshrc tilde replacement in both $PS1 and the pushd/popd/dirs
implementation when the home directory is empty, the root directory,
or ends with a slash (disable replacement in that case)
- Support dietlibc, force it into providing a BSDish caddr_t
- Do not use LDFLAGS and LIBS while compiling with -c
- Add realpath(3) builtin, to further speed up logins and chdirs
- Optimise the code somewhat by making use of possible assumptions
- Set the “C” locale in test.sh as well to quell warnings
- Split the regression tests that use locale between en_US.utf8 and
en_US.UTF-8, since not all OSes support either one, and make only
HP-UX and GNU use the latter
- Fix kill, mknod(8) builtin usage msg, from Igor Sobrado via oksh
- Use proper ptrdiff_t casts for pointer arithmetics, inspired by an
oksh commit from Federico Schwindt
- Remove check category “pdksh” from check.t and test script
- Improve Darwin, OSF/1, HP aCC, SUNpro version reporting
- Support GNU bash “&>” extension, even better than they do, suggested
by Lukas “smultron” from MidnightBSD
- Basic support for LLVM+clang in the build system with experimental
“ccc” compiler driver; llvm-gcc worked as-is before already
- Better support for contributed arc4random.c file
- Do not spin if unlink(2) fails on $HISTFILE, from Decklin Foster
- Dump the perl(1) $^O variable in test.sh to logs
- Pull in latest changes from oksh
- Allow white space between a here string indicator and the string,
accidentally discovered by twkm (#ksh, freenode)
- Allow fd specifications outside the 0‥9 range for I/O redirections,
and bounds check them to be lower than the FDBASE definition,
currently still 10 if MKSH_SMALL, 24 otherwise (unportable)
- Improve the regression test suite: for one test, we had a bizarre
constraint telling it won’t work on UWIN, which was based upon false
assumptions, but Tru64 would fail it since its cat(1) unexpectedly
outputs some error messages (fix by closing stderr for cat); another
test would unexpectedly print no error message on Solaris (fix by
making the error message optional in the perlre(1) used)
- Switch back to en_US.UTF-8 for glibc, Debian can do both, Mandriva
fails on en_US.utf8 (XXX no libc5 auto-detection to disable it)
- IRIX also has no UTF-8 locale at all, confirmed by Elias Pipping
- Fix regression test suite for MKSH_SMALL
- Bring in latest changes from oksh (OpenBSD ksh, not DeliLinux crap)
- Fix abuse and unsafe use of str_save() and str_nsave()
- Optimise the implementations of str_save() and str_nsave()
- If MKSH_AFREE_DEBUG is defined, guard against afree()ing a pointer
which has not been allocated from the given pool, from Todd C. Miller
- Fix attempt to free a pointer to stack (function-local) storage when
redefining a function containing a call to the “time” built-in,
discovered by Elias Pipping, patch by Jared Yanovich, help from
Todd C. Miller
- Protect a little against people not running “./test.sh -v” but
calling it with, for instance, GNU bash (as homsn did…)
- Honour $PERL environment variable in test.sh, improve scanning for
Perl, do not use potentially undefined $^O, print Perl version
- Add <sys/types.h> as <ulimit.h> requirement (dietlibc)
- Work around bug in BSD/OS 3.1 /bin/ksh (PD KSH v5.2.8 96/08/19)
- Add regression tests from OpenBSD’s <bsd.regress.mk> suite
- Use better CPPFLAGS for AIX, Minix 3 (from pdksh)
- Expose the “s ≠ NULL” str_[n]save_() API and use it where the string
can never be NULL (local stack storage), from gcc-4.2 warnings
- Clean up pointer-to-integer-cast warnings in the mirtoconf process
* New debian-policy version: 3.8.0.1
- DEB_BUILD_OPTIONS: add -Wall to default CFLAGS, fix “noopt” handling,
add “nostrip” handling, ignore “parallel=«n»” as we cannot specify a
maximum value to Build.sh
- Convenience copies: switch from a contributed arc4random.c file to
using the new libbsd Debian package, 10x Hector, Guillem et Aurelien!
* debian/control: sync Description field with upstream suggestion
* Rename menu entry from "MirBSD ksh" to "MirBSD Korn Shell" for clarity
* Add a mksh-static binary, for initrd, initramfs, installer, rescue
* Integrate translation updates, ありがとう; Closes: #483506
* Integrate translation updates, tack; Closes: #491950
-- Thorsten Glaser <tg@mirbsd.de> Tue, 22 Jul 2008 20:42:23 +0000
mksh (33.4-1) unstable; urgency=low
* New upstream release; changelog:
- Move a portability define from sh.h to the setmode.c helper, as it’s
only needed there, and we want to use the latter from MirMake as well
- SECURITY: when spawning mksh on a new terminal, for example with
“sudo mksh -lT/dev/ttyC7”, flush all of that tty’s I/O first
- dot.mkshrc: ensure “ls” is no alias, don’t hardcode its path
* As dash won’t be the default /bin/sh without the current alternative
handling / debconf mechanism in lenny (as per the mail from Martin
Zobel-Helas), there is no need to act regarding our debconf scripts
and /bin/sh ability, so I think this Closes: #469675
-- Thorsten Glaser <tg@mirbsd.de> Fri, 11 Apr 2008 17:38:02 +0000
mksh (33.3-1) unstable; urgency=low
* New upstream release; changelog:
- Handle Ultrix mmap(2) having a different prototype (returning a caddr_t
instead of a void * and not defining MAP_FAILED; making Ultrix 4.5 a
fully supported platform
- Decrease code size and optimise (using puts-style functions instead of
printf-style functions for fixed strings; bool instead of int)
- Correct behaviour of “export”, “export -p”, “readonly”, “readonly -p”,
“typeset”, “typeset -p”, “typeset” and their respective descriptions in
the manual page; problem reported by Danijel Tasov
- Work around dup2(2) problem (preserving the close-on-exec flag) on
Ultrix using code from mirbsdksh-1.11, lost in oksh
- Clean up Build.sh a little more
- Correct quotes and some other stuff in the regression tests; fix for
running with old Perl (5.002 or so, Linux 2.0, BSD/OS)
- Export the new “__progname” and “__perlname” environment variables to
the suite run from check.t in check.pl
- Do not mistake IBM xlC and VisualAge for different things, thanks to
Pascal “loki” Bleser from OpenSuSE for information on them
-- Thorsten Glaser <tg@mirbsd.de> Wed, 02 Apr 2008 21:45:54 +0200
mksh (33.2-1) unstable; urgency=low
* New upstream release; changelog:
- Fix some minor code issues remarked by MIPSpro
- Port to SGI IRIX 6.5 (uname: IRIX64) using gcc and MIPSpro
- Scan for a lot more compilers; add support for MIPSpro
- Ignore if the OS doesn’t define MAP_FILE for mmap(2)
- Use sys/types.h as sys/mkdev.h dependency
- Enable OSF/1 V2.0 /bin/sh to run Build.sh
- Add strcasecmp(3) proto for Ultrix 4.5 only (imake style)
- Add S_ISLNK if the OS doesn’t define it
- Use tempnam(3) if mkstemp(3) not found – not recommended
- Reduce dependency on certain OE facilities: printf(1), fgrep(1) being
able to scan for two patterns at the same time, perl5 being named perl
- New -T- option for dæmonisation, cf. man page
- Port to BSDi BSD/OS 3.1 (gcc 1.42 and gcc 2.7.2.1 supported)
- Simplify the dot.mkshrc file and make it more robust
- Report OE and $CC version in Build.sh, for logs
- Fix look’n’feel of the mksh(1) manual page, so that it still looks best
in AT&T nroff(1), looks much better in GNU groff (the PDF version we
place on the website), and looks some better and gains the ability to
copy’n’paste from it for GNU gnroff -Tutf8, originally prompted by
Patrick “aptituz” Schoenfeld and “lintian -viI mksh*.changes”, but then
improved (and nroff hacked) by tg@ a lot
- Shut up some gcc warnings (explicit braces; cast MAP_FAILED)
- Try to get rid of the test “if the compiler fails correctly” by using
the errorlevel of the $CC process (except with Microsoft Visual C++
which returns non-zero even on success sometimes), thus supporting
DEC C on OSF/1 (and, quite possibly, gcc3 on Mac OSX Leopard)
- If revoke(2) and flock(2) are found, check if they’re declared
- Promote Tru64 to a fully supported operating environment, even though
it needs a plethora of _*_SOURCE defines and has SIGMAX instead of NSIG;
OSF/1 V4.0 and Tru64 (OSF/1 V5.1) are supported with both gcc and
HP/Compaq/DEC C in various versions
- Generalise the workaround for incompatible sig_t across the platforms
that need it (currently, OSF/1 and PW32)
- Shut up annoying warning about gcc 2.7.2.3, 2.8.1, 2.95.x not knowing
the “-std=gnu99” and “-std=c99” options without setting proper errorlevel
* Remove debdiffs for things included in upstream:
- manpage diff
- displaying of OS and compiler versions before build
* Update arc4random.c file from MirBSD contrib repository for now, until we
have libbsd in Debian !kfreebsd sid (coming soon I hope)
- fixes “warning: ignoring return value of ‘read’, declared with attribute
warn_unused_result” occuring on e.g. Fedora GNU/Linux
* Integrate translation updates, merci; Closes: #471009
-- Thorsten Glaser <tg@mirbsd.de> Fri, 28 Mar 2008 20:34:00 +0000
mksh (33.1-2) unstable; urgency=low
* Help backporters by specifying explicitly versioned debconf/cdebconf
dependencies, thanks Patrick “aptituz” Schoenfeld for mentioning
* Integrate manpage diffs from mksh-current to fix “lintian -viI”, also
from aptituz, and a couple of other issues (' vs ’ vs ´, ' vs ‘ vs `,
- vs ‐ vs − vs – vs —, ^ and ~ in the Postscript version)
* Add a debian/watch file, idea from aptituz too, hints from uscan(1)
-- Thorsten Glaser <tg@mirbsd.de> Tue, 04 Mar 2008 00:31:08 +0000
mksh (33.1-1) unstable; urgency=low
* New upstream release; summary of changes:
- Sync with OpenBSD ksh (no real functional changes)
- Enhance the print builtin with two new escape sequences: \xAB
parses the next up to two hexadecimal digits AB and outputs a
raw octet (byte) whose ordinary value is AB; \uABCD parses up
to four hexadecimal digits and outputs the UTF-8 (CESU-8) re-
presentation of the unicode codepoint U+ABCD from the BMP
(Basic Multilingual Plane), not depending on the locale
- The . (“dot”) command (and its counterpart source) needs an
argument (the script to source); from Debian pdksh package
- In the lexer, do not expand aliases if there is an opening
parenthesis just after the token (from Debian pdksh). This
fixes the namespace issue that caused a POSIX function de-
finition stop() { … } to fail due to “stop” being a built-
in Korn shell alias. Now, aliases are removed when a POSIX
function with the same name is defined; Korn functions are
still different: their definition does not fail, but the
alias retains its precendence (unchanged behaviour)
- Accordingly, do not disable built-in aliases in POSIX mode any more
- Since POSIX mode now only turns off braceexpand mode (which
can then be turned back on), do not handle being called as -sh
or sh specially any longer
- Clean up the source code: make some constants private to the
only file using it; optimise; comment some code; improve
portability with regards to stupid tools in /usr/bin (or
/usr/xpg4/bin) and foreign compilers
- Implement “here strings” (like ksh93 or zsh; GNU bash col-
lapses white space if the string is not double-quoted): you
can now replace “print -r -- "$foo" | command” with
“command <<<"$foo"” with the very same semantics as
“command <<EOF
$foo
EOF” (stripping initial tabs is not possible)
- Implement string replacement ${var/pattern/string} (where
pattern is an extended glob pattern), like GNU bash; like
with the substring accessor (${var: x: y}) mksh implements
almost all corner cases (and double slash), but do not
handle trimming arrays yet
- Side note: You can now, as a consequence of the two items
above, write, for instance, x=${x//foo*bar/baz} instead of
the more complicated x=$(sed -e 's/foo.*bar/baz/g' <<<"$x")
or the mksh R32 and before idiom x=$(print -r -- "$x" | sed
-e 's/foo.*bar/baz/g') – be sure to check $KSH_VERSION first
though
- Use the new Mdocdate RCS keyword in the manual page mksh(1)
as well; since this is not portable in tmac.doc especially to
GNU groff, prepend a seven-liner implementing it to the .Dd macro
- Fix a mistake in using the .Nm macro in the manual page
- Make Build.sh and the generated test.sh more chatty about what
they’re doing and what versions (aids debugging build logs)
- Update the dot.mkshrc sample and make it more portable; it requi-
res mksh R33 or above now though due to use of special functions
- Enhance the website, especially the section about official
testing: now, the tests are split into tests done by us via
Makefile (MirOS only), Build.sh (portably), porting frameworks,
with arc4random.c added, tests by others via Build.sh, via
packaging frameworks, failed tests; more links
- Note: the “vi” editing mode is code of historical value and, at
the moment, unmaintained. It does not benefit from the fixes to
the “emacs” editing mode (horizontal scrolling) or new features
(bind keys that end their sequence with a tilde; UTF-8 support).
Neither is it supported in either editing mode to bind keys that
generate a sequence consisting of more than just a prefix (ESC,
^X, or ESC [), another octet and (“emacs” only) an optional tilde
(but this might come in the future). This is explicitly mentioned
here due to a user inquiry.
‣ This means that pdksh bugs #190566, #246530, #297234 specifically
do not apply to mksh and users might want to switch
* Have the OS and compiler version appear in the build logs (debugging)
* Bump Standards-Version and double-check that the menu category is OK
* Integrate translation updates, Хорошо; Closes: #467182
-- Thorsten Glaser <tg@mirbsd.de> Sun, 02 Mar 2008 16:12:59 +0000
2007
mksh (32.1-1) unstable; urgency=low
* New upstream release; summary of changes:
- Checks for symbol declarations are compile time checks, not link
time checks; fixes (optional) arc4random on AIX
- Widen the range for array indicēs to the entire unsigned 32-bit
integer range (enough for ino_t on BSD); wrap numbers outside of
that range into it for simplicity (e.g. foo[-1] = foo[4294967295])
- Fix an internal error when using a pipeline as co-process
- Relax requirement on compilation environment to provide certain types
- Optimise some more for size (struct padding; functions → macros, …)
* Integrate galician translation, Closes: #447947
-- Thorsten Glaser <tg@mirbsd.de> Thu, 25 Oct 2007 18:36:27 +0000
mksh (31.4-1) unstable; urgency=low
* New upstream release; summary of changes:
- Support pcc (the ragge version of the Portable C Compiler)
- Add pushd/popd/dirs functions (csh) and precmd/chpwd hooks (zsh)
to dot.mkshrc which now requires readlink(1) with -f; requested
by many (e.g. some Gentoo users; XTaran of symlink.ch)
- Enable colour escapes in dot.mkshrc since almost nobody groks how
to do it right from the manual
- Remove -DMKSH_NEED_MKNOD checks from Build.sh, people should use
the HAVE_MKNOD environment variable
- Implement parallel make in Build.sh (not used by Debian)
- Fix another busy-loop spinning problem introduced by an icc warning,
thanks to spaetzle@freewrt.org for keeping to bug me to look for it,
as it affected GNU/Linux most, followed by Solaris, rarely BSD
- Improve standard integer type detection in Build.sh
- Cleanups in code, build script and manual page
- Clean up Build.sh and “test … -o …” doesn’t exist in Bourne
- Detect if the non-standard u_int32_t type, which was unfortunately
used by the OpenBSD project in designing the standard arc4random(3)
API, is present (which it isn’t on Solaris), and, if not, emulate
it using the standard uint32_t (ISO C99) from <stdint.h>, which we
fake as needed (if the standard integer types are not present, e.g.
on PW32 and OSF/1); change mksh as well as the arc4random.c
contribution to not use these non-standard types
- Remove unused types from the faked <stdint.h> file
* Integrate updated translation into portugués, Closes: #444218
* debian/rules: wait for script(1) to return, in case it runs
asynchronously; we have seen weird results on Debian and Fedora
-- Thorsten Glaser <tg@mirbsd.de> Mon, 15 Oct 2007 18:23:01 +0000
mksh (31.2-1) unstable; urgency=low
* New upstream minor release (R31b); summary of changes:
- Fix a syntax error in Build.sh checking for TenDRA
- Fix typo (blsk → bksl) in check.t test naming
- Autoscan for uint32_t, u_int etc. presence
- Fix some memory leaks, mostly by NetBSD® via OpenBSD
- The “unset” builtin always returns zero, even if the variable was
already unset, as per SUSv3 (reported by Arkadiusz Miskiewicz via
pld-linux and oksh)
- In tab-completion, escape the question mark, reminded by cbiere@tnf
- Fix a busy-loop problem, Debian #296446 via oksh
- Fix a few display output problems in the build script
- Shut up some gcc warnings on Fedora; beautify some code
- Support OSF/1 with gcc2.8, thanks to Jupp Schugt
- Fix gcc4 detection of __attribute__() on non-SSP targets
* debian/control: sync description with that of packages for other OSes
* debian/menu: Apps → Applications, as per Lintian
* debian/rules: do not run the testsuite with script on Debian GNU/HURD,
because some translators seem to be unable to cope with the chroot
* arc4random.c: use uint<n>_t consistently, helps compiling on OSF/1
-- Thorsten Glaser <tg@mirbsd.de> Tue, 11 Sep 2007 14:00:20 +0000
mksh (31.1-1) unstable; urgency=low
* New upstream release (R31); summary of changes:
- Support the TenDRA compiler (possibly also Ten15, not tried)
- Begin supporting Fabrice Bellard’s Tiny C Compiler (tcc on Debian
cannot link due to duplicate symbols in GNU libc, thus unfinished)
- Improve some mirtoconf checks (most notably, mknod(2) and macros)
- Add new emacs editing command “clear-screen” (ESC ^L) as requested
by D. Adam Karim <archite@midnightbsd.org>
- Support building for MidnightBSD
- Add new shell alias “source”, semantics like the GNU bash builtin
- Add new shell option “set -o arc4random”, controlling whether
rand(3) or arc4random(3) is used for the $RANDOM value, use
arc4random_pushb(3) if it exists
- Add new builtin “rename” (just calls rename(2) on its arguments),
for rescue purposes (like renaming ld.so)
- Fix the inofficial OpenBSD port, from D. Adam “Archite” Karim, 10x
- Disable the less(1) history file by default (privacy issues) in the
sample dot.mkshrc file; mention other things in etc_profile (the
additional sample mentioned on the mksh website)
* Put the arc4random.c file under version control
* Clean up the copyright file (rm commented stuff from Debian experimental)
* Mention /dev/tty is also needed in debian/rules pre-build echo
-- Thorsten Glaser <tg@mirbsd.de> Fri, 07 Sep 2007 19:34:25 +0000
mksh (30.1-1) unstable; urgency=low
* New upstream major release (R30); summary of changes:
- Build on and for Solaris, Linux and MirBSD with Sun's C compiler
- No longer build a statically linked shell by default; do not try,
do not provide any means; user has to use LDFLAGS instead.
- Remove some probably dead mirtoconf checks
- Remove commented out -fwhole-program --combine check and still
active -fno-tree-vrp bug workaround thing, the latter because the
bug seems to only appear for functions that also exist as a builtin
(which was declared with the nonnull attribute)
- Fix a long-standing typo, 10x moritz@obsd
- Prefer more common signal names (SIGCHLD) over uncommon ones (SIGCLD)
- Quieten gcc and support SUNpro 5.8 on Solaris 10 on sparc64
- Optimise signal handling and detection; enable compilers whose
præprocessor doesn't have -dD to generate list of signals
- Optimise mirtoconf meta-checks for persistent history etc.
- Fix a bug preventing manual page generation on Solaris
- Add support for the Intel® C Compiler and quieten it a little;
fix a few minor buglets (mostly type conversion) its too verbose
warnings show, as well as some errno ab-/mis-use
- Remove support for honouring the CPP environment variable;
$CC -E - is simply used instead in the places where $CPP was used
previously, because that was used in other places already, and
to prevent it from behaving differently from the $CC used
- If a file called arc4random.c is lying around in the source directory
at mirtoconf time, scan for <sys/sysctl.h> and use the file if
arc4random(3) isn't found otherwise. From Debian GNU/kFreeBSD.
- If the basename of argv[0] starts with “sh”, activate FPOSIX early,
preventing some typical ksh aliases from being defined
- If FPOSIX, don't pre-define aliases (except integer and local) to
benefit operating environments that never heard of the great Korn Shell…
- #if defined(MKSH_SMALL) || defined(MKSH_NOVI) disable the vi editing mode
- Don't try to execute ELF, a.out, COFF, gzip or MZ binaries
- Can be built on HP-UX (PA-RISC and IA64) with gcc or HP C/aC++
- Support x=(a b c) bash-like array initialisation
- Support ${foo:2:3} bash-like substring expansion
- Many mirtoconf improvements, fixes; speed-up; better portability
- Enable compilation using Microsoft C/C++ Standard Compiler
- Add UWIN build target using various compilers with the cc wrapper
- Fix struct padding mistakes uncovered by the Microsoft compiler
- Fix double initialisation / unused value assignment errors
unveiled by Borland C++ Builder 5.5
- Fix superfluous code detected by gcc 4.2
- Fix large file support for OSes that require CPPFLAGS contains
-D_FILE_OFFSET_BITS=64 – it was detected but not actually used
in the build; thanks to hondza for the problem report!
- Give the lexer a bigger state stack if !MKSH_SMALL
- Prepare for addition of make(1)-style search/replace operations;
correct the code for other substitution expansion operations
- Default $CC to cc not gcc, this is no non-unix-ware ☺
- Support AIX with gcc and xlC; clean up code to warning-free
- Prefer well-known signal names to alphabetically earlier ones
- Fix a bug delivering ERR and EXIT pseudo-signals to traps combined
with “set -e”, thanks Clint Pachl and Otto Moerbeek for the hint
* Update German translation, Closes: #428590 (still pending resolution
of the dash-as-/bin/sh and debconf common field issue described in
http://thread.gmane.org/gmane.linux.debian.devel.release/17423 so
please do not submit new translations until that issue is resolved)
* Reflect changes in the description in debian/control
-- Thorsten Glaser <tg@mirbsd.de> Thu, 26 Jul 2007 20:25:02 +0000
mksh (29.6-2) unstable; urgency=low
* Re-run debconf-updatepo which was missed after we changed note into error
* Fix arc4random on HURD by integrating it into the Build.sh script and
scanning for prerequisite headers
-- Thorsten Glaser <tg@mirbsd.de> Sun, 10 Jun 2007 07:51:06 +0000
mksh (29.6-1) unstable; urgency=low
* New upstream formal release; summary of relevant changes:
- Remove some redundant or unused functions
- Fix several horizontal scrolling, display, scrollbar, etc. bugs
unveiled by David Ramsey
- Fix a few bugs found by Coverity Scan
- Optimise dot.mkshrc sample file; add a speed alias
- Fix a few shortcomings in the build system
* Pull in arc4random support
* Make it possible to install mksh as /bin/sh the same way as
dash does, copy the necessary files from dash (my apologies to
the translators, I simply search'n'replaced the term dash by mksh)
* Install dot.mkshrc as /etc/skel/.mkshrc conffile
-- Thorsten Glaser <tg@mirbsd.de> Mon, 28 May 2007 18:12:23 +0000
mksh (29.3-1) unstable; urgency=low
* New upstream formal release; summary of changes:
- portability fixes (darwin, hp-ux, solaris, new port to aix)
- size optimisation if utf-8 mode is assumed by default (not in Debian)
- small manual page fixes
- Do not scan for and use "-fwhole-program --combine" because it's the
cause of at least http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=408850
and breakage with FORTIFY_SOURCE on SuSE; thanks to Pascal Bleser (yaloki),
Marcus Rueckert (darix), Martin Zobel-Helas, Steve Langasek (vorlon) for
tracking this bug down in two different places; Closes: #421518
* remove the possible workaround mentioned in the changes for 28.9.20070309
because the problem has been solved upstream
-- Thorsten Glaser <tg@mirbsd.de> Mon, 30 Apr 2007 21:53:12 +0000
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)
-- Thorsten Glaser <tg@mirbsd.de> Wed, 25 Apr 2007 11:36:42 +0000
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
-- Thorsten Glaser <tg@mirbsd.de> Sat, 10 Mar 2007 01:12:20 +0000
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}
-- Thorsten Glaser <tg@mirbsd.de> Tue, 6 Mar 2007 03:44:58 +0000
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
-- Thorsten Glaser <tg@mirbsd.de> Sun, 18 Feb 2007 20:34:48 +0000
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)
-- Thorsten Glaser <tg@mirbsd.de> Fri, 16 Feb 2007 20:32:52 +0000
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).
-- Thorsten Glaser <tg@mirbsd.de> Thu, 18 Jan 2007 20:57:40 +0000
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.
-- Thorsten Glaser <tg@mirbsd.de> Sat, 17 Jan 2007 09:32:11 +0000
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.
-- Thorsten Glaser <tg@mirbsd.de> Sat, 06 Jan 2007 18:55:09 +0000
2006
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.
-- Thorsten Glaser <tg@mirbsd.de> Mon, 11 Dec 2006 21:53:42 +0000
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.
-- Thorsten Glaser <tg@mirbsd.de> Tue, 21 Nov 2006 21:49:44 +0000
mksh (28.0-2) unstable; urgency=low
* Fix unaligned memory access on IA-64 (same fix was applied
upstream for the next full release)
-- Thorsten Glaser <tg@mirbsd.de> Sat, 30 Sep 2006 19:59:10 +0000
mksh (28.0-1) unstable; urgency=low
* sample file (dot.mkshrc) is now in upstream
* New upstream release; summary of (Debian user relevant) changes:
- Fix some more -Wchar-subscripts
- Adjust manual page to the fact that mksh can be used as
/bin/sh although it's not specifically designed to
- Correct and enhance book citation list in the manual page
- Bring back the "version" editing command in both emacs and
vi modes, at ESC ^V like AT&T ksh93r+
- Fix typo which resulted in the wrong names for signals being
printed (error codes were used instead) on GNU/Linux, Solaris
and GNU/Cygwin. Ease changing signame/siglist sources.
- Some more code, manual page, build system and regression test
changes, cleanup and redundancy removal
- Merge a few OpenBSD changes, yielding better multiline prompt
support and textual improvements in the manual page
- Adjust $PS1 sizing, printing, and redrawal routines
for mksh behaviour and single- and multiline prompts
- For the AT&T $PS1 hack (second char = CR), do not
output the delimiting characters any more, even if they
are printable - fixes platforms without non-printable
characters (Interix, Cygwin) and prompt size calculation
- Calculate length of prompt in lines and columns-of-last-line
instead of using some tricks to skip the beginning of the prompt,
resulting in correct redrawing of prompts with ANSI colour codes
- Correct displaying of prompts spanning more than one line
and/or with embedded newlines or carriage returns; correct
documentation of $PS1 and the redraw editing command
- Change one of the testsuite "expected failure" tests from bug
to feature - it might actually be required by BSD make
- Enable to bind key sequences which consist of the usual optional
one or two praefices and the control character, as well as an
optional trailing tilde (if the trailing character is not a tilde,
it's processed as usual, but processing of the editing command is
postponed until after the trailing character has been read)
- Bind the NetBSD(R) wscons (vt220 / wsvt25), GNU screen and
XFree86(R) (xterm-xfree86) "home", "end"
and "delete" keys to ^A, ^E and ^D, respectively, except
that "delete" does not act as logoff switch
- Make sure ^T is bound to 'transpose' as documented
(bug spotted by hondza)
- Remove the 'stuff' and 'stuff-reset' editing commands
- Correct the manual page regarding the 'abort' command, its
interaction with 'search-history' and how to exit the latter
- Bring back "set -o posix" turning off 'braceexpand'
- Mention IRC support channel and mailing list in manual page
- Make the "last command of a pipeline is executed in a
subshell" issue a dependable mksh feature
- Improve regression test comments and a few tests
- If $RANDOM is generated from arc4random(3), display at
most 31 bits of it like nbsh(1), instead of only 15 bits.
-- Thorsten Glaser <tg@mirbsd.de> Sat, 9 Sep 2006 11:49:07 +0000
mksh (27.4-2) unstable; urgency=low
* Fix build if zsh is used as build shell by forcing /bin/sh
-- Thorsten Glaser <tg@mirbsd.de> Fri, 7 Jul 2006 19:25:32 +0000
mksh (27.4-1) unstable; urgency=low
* New upstream release; summary of changes:
- build system fixes (honour CPPFLAGS, ...)
- documentation fixes (manual page date/version)
- only source ${ENV:-~/.mkshrc} for interactive (FTALKING) shells
(change in behaviour towards principle of least surprise)
- fix "char subscripts" warnings
* Be more verbose on build, to aid debugging the buildd logs
* Install a sample ~/.mkshrc file showing how flexible mksh is and
providing a bash-like $PS1 to the user
* Add persistent (official) homepage to package description
-- Thorsten Glaser <tg@mirbsd.de> Tue, 4 Jul 2006 15:42:23 +0000
mksh (27.2-1) unstable; urgency=low
* New Debian Standards-Version, no changes for us
* New upstream release; summary of changes:
- emacs-usemeta now behaves like vi-show8 to facilitate
e.g. japanese UTF-8 input on the command line (such as
filenames); be careful with 0x80-0x9F
- portability cleanup and speed-up
- GNU groff compatible manual page
- add ~/.mkshrc processing, requested by Jari Aalto for
the Debian-based Stem Desktop; see manual page for details
- illustrate a few tricks (e.g. setting $PS1) in manual page
- enhance testsuite
- incorporate some more code cleanup by OpenBSD
- reference the O'Reilly books in the manual page
* As a result, remove some patches now in upstream
* Add ed(1) as build dependency, needed for regression tests
-- Thorsten Glaser <tg@mirbsd.de> Wed, 31 May 2006 18:58:16 +0000
mksh (26.2-2) unstable; urgency=low
* There was another .St -susv3 in the manual page;
replace it by the expanded version.
* No comma in front of "which" in English (copyright file)
-- Thorsten Glaser <tg@mirbsd.de> Thu, 2 Feb 2006 18:08:34 +0000
mksh (26.2-1) unstable; urgency=low
* New upstream release; summary of relevant changes:
- Change quoting policy (regarding backslash-doublequote) in
here documents to conform to SUSv3 (to migrate, change all
occurences of backslash-doublequote to just doublequote)
- Update documentation
- Clean up code
- Fix some more GCC 4 warnings
* Remove no longer needed workaround
-- Thorsten Glaser <tg@mirbsd.de> Mon, 30 Jan 2006 12:03:02 +0000
2005
mksh (25.0-1) unstable; urgency=low
* New upstream release; summary of changes:
- add a builtin: mknod (can do pipes and devices)
- remove 'version' editor binding and remap emacs ^V to
quote-meta ('literal')
- fix redraw and window resize problems; COLUMNS and LINES
are now updated as soon as the new size is set
- allow < and > for test and [, not only [[
- if an array index is out of bounds, tell which one
- document quoting policy in here documents
- correct some mistakes in the manual page
- fixes for GCC 4 warnings
- code and build system simplifications
* As a result, simplify debian/rules accordingly
* Copy all "non-standard" licences into the copyright file
* Work around GNU groff not having .St -susv3
-- Thorsten Glaser <tg@MirBSD.org> Wed, 26 Oct 2005 09:27:39 +0000
mksh (24.0-1) unstable; urgency=low
* New upstream release; relevant changes are:
- no longer look at argv[0] to determine if restricted shell
- changes to $EDITOR and $VISUAL no longer affect
the current editing mode
- emacs on, emacs-usemeta off is now the default editing mode
- the special "posix" and "sh" modes are gone
- code, test suites and documentation have been cleaned up a little
- Korn's bizarre /dev/fd hack is now no longer supported
- undo fix for Debian PR #71256 which turned to be bogus
and break BSD make
- fix compilation and invocation of test suite with whitespace
in the pathnames for real, this time
* Fix typo in description; Closes: #317785
* Note that this is no superset of pdksh any more in description
* New debian-policy version
-- Thorsten Glaser <tg@MirBSD.org> Tue, 12 Jul 2005 12:25:11 +0000
mksh (23.0-1) unstable; urgency=low
* New upstream version * Clarify licence
-- Thorsten Glaser <tg@MirBSD.org> Wed, 22 Jun 2005 14:40:56 +0000
mksh (22.3-1) unstable; urgency=low
* Update upstream source to mksh R22d * Remove some superfluous whitespace
-- Thorsten Glaser <tg@MirBSD.org> Sun, 5 Jun 2005 16:45:42 +0000
mksh (22.2-2) unstable; urgency=low
* Rename postinst, prerm, menu to mksh.{postinst,prerm,menu}
* Always run testsuite
* Install the binary with 755 permissions
* Remove superfluous grep in rules
(All of the above based upon suggestions by sponsor Bastian Blank)
* Use dh_install instead of homegrown calls (patch by Bastian Blank)
* Regenerate .orig.tar.gz with MirBSD cpio since GNU cpio generates
invalid ustar archives (broken mtime)
-- Thorsten Glaser <tg@MirBSD.org> Thu, 2 Jun 2005 07:47:33 +0000
mksh (22.2-1) unstable; urgency=low
* Initial Release
-- Thorsten Glaser <tg@MirBSD.org> Sat, 28 May 2005 22:02:17 +0000