--- mksh-39.3.20100721.orig/debian/changelog +++ mksh-39.3.20100721/debian/changelog @@ -0,0 +1,1674 @@ +mksh (39.3.20100721-1) unstable; urgency=high + + * The “WTF is up with all these bugs spotted?” release + * Another new CVS snapshot: + - [tg] Fix NULL pointer dereference during iteration loop + when checking for alias recursion; discovered by Michal + Hlavinka + * High urgency due to SIGSEGV crashes + + -- Thorsten Glaser Wed, 21 Jul 2010 11:48:24 +0000 + +mksh (39.3.20100719-1) unstable; urgency=high + + * New CVS snapshot; summary of changes relevant to Debian: + - [tg] Correct shf buffer I/O routines to avoid a memory + corruption bug discovered by Waldemar Brodkorb and other + bad effects (bug inherited from pdksh, anno 1999) + * High urgency due to memory corruption and “set -x” fix + + -- Thorsten Glaser Mon, 19 Jul 2010 22:51:03 +0000 + +mksh (39.3.20100717-1) unstable; urgency=low + + * The “「Don't drink and dupload ;-)」? I use dput anyway!” release + * debian/rules: revert change disabling -combined on dietlibc, + since it appears to be of no practical relevance + * debian/rules: disable dietlibc on sparc due to weird problems + * debian/rules: adapt build log scanner contraband to newer gcc + * Switch from patch system to applying patches directly to the + extracted source in “1.0” style (in the future, “3.0 (quilt)” + can ease this) by using repackaged orig.tar.gz + * Install upstream’s dot.mkshrc as /etc/mkshrc and source this + from a new, minimal, /etc/skel/.mkshrc (debian/.mkshrc); idea + by Michal Hlavinka (RHEL package maintainer) + * Use repackaged upstream snapshot; changelog: + - [tg] Remove arc4random(3) functionality; seed an LCG depending + on the OS doing Address Space Layout Randomisation; speed up + - [tg] Fix spelling in dot.mkshrc + - [tg] Implement “live” window resize for the Emacs editing mode + - [tg] More fixes for bugs found by Valgrind and LLVM+Clang scan-build + - [tg] For script compatibility support “set ±o arc4random” during a + transition period until R40 is out (but issue a warning to stderr) + - [oksh] Add (, ), (( to reserved words in the manual page and fix + some formatting errors with GNU groff’s mdoc + - [tg] Make printf.c.1.15 use mksh’s shf_* routines instead of stdio + - [tg] Fix -Wc++-compat except implicit casts from/to "void *" + * Update printf.c file added; the new version actually uses mksh’s + shf functions instead of libc stdio, saves about 11K in mksh-static + * Adapt debian/* to new versions + * Bump Standards-Version to 3.9.0.0 (no changes required) + * Remove experimental, commented-out, klibc support for readability + * Run debconf-updatepo; put something into Language: header lines + * Lintian P: mksh: maintainer-script-without-set-e config + + -- Thorsten Glaser Sat, 17 Jul 2010 23:27:41 +0000 + +mksh (39.3-4) unstable; urgency=low + + * debian/control, debian/rules, debian/mksh.install{,.in}: + improve klibc builds (still disabled) and, for testing + purposes, do full, dynamic, builds if klibc is enabled + * debian/diffs/backport-fixes.diff: replace with upstream CVS diff + between 39.3 and 20100522 and adjust manpage version number; changes: + - [tg] Make default temporary directory configurable at compile time + - [tg] Fix performance deficiencies in the built-in realpath function + - [tg] Deprecate Build.sh -longoptions in favour of short ones: + -valgrind becomes -g (like debug), -combine and -llvm become + -c {combine,llvm} and the LLVM optimiser flags are passed via + -O = -o -std-compile-opts + - [tg] New Build.sh options -c dragonegg (for using the LLVM plugin + to GCC 4.5 with inter-module optimisation), -v (version) + - [tg] Document another way to get a coloured PS1 in the manpage + - [tg] Disallow some more kinds to trim a vector; Closes: #581867 + - [oksh] Simplify some code; RCSID and comment sync with OpenBSD ksh + - [oksh] Apply diff from manuel giraud to keep track of LINENO in a trap + * Silence some build log checkers wrt. false positives triggered from + mirtoconf output (affects both Debian and Ubuntu, at least) + * Put upstream changes for 39.3-2 and 39.3-3 into debian/changelog + entries retroactively for proper documentation + * debian/rules (if Ubuntu): Exclude dietlibc on powerpc/ppc64 and sparc + * debian/rules: the “diet” wrapper also eats most of our CFLAGS when + passing them to cc, so disable combine mode there to avoid some of + the problems, such as strict aliasing violations that are none + * debian/control: prefer pax over cpio + + -- Thorsten Glaser Mon, 24 May 2010 15:09:22 +0000 + +mksh (39.3-3) unstable; urgency=medium + + * debian/diffs/backport-fixes.diff: replace with upstream CVS diff + between 39.3 and 20100420 and adjust manpage version number; + this fix unbreaks word splitting "${foo#a}" for foo="a b c", + which, for example, is used by kwalletcli + - [tg] Fix "${x#?}" expansion when quoted, for real this time + + -- Thorsten Glaser Tue, 20 Apr 2010 09:21:39 +0000 + +mksh (39.3-2) unstable; urgency=low + + * README.Debian: mention /etc/skel/.mkshrc + * debian/diffs/backport-fixes.diff: replace with upstream CVS diff + between 39.3 and 20100409 and adjust manpage version number; changes: + - [tg] Correct small mistakes in manpage and build script + - [ahoka, tg, stippi, bonefish] Port to Haiku (and probably, implicitly, + BeOS; this is not tested though) + - [tg, stippi] Add Haiku specific RLIMIT_NOVMON as ‘V’ to ulimit builtin + - [tg] Let Build.sh cope with dirname(1) unavailability + - [tg] In the Emacs editing mode, hi-bit7 octets are now considered + “motion characters” for word boundaries – Esc+b, Esc+f, ^W, … + - [tg] Make EXECSHELL default configurable at compile time (embedded) + - [tg] If MKSH_SMALL do not compile in “set -o bgnice” by default + - [tg] Rework how RLIMIT_{AS,RSS,VMEM} map to ‘m’ and ‘v’ ulimits + - [tg] Add some more OS specific limits seen in zsh + - [tg] SUSv4 ${v=a\ b} and "${v=a\ b}" and ${v-a\ b} compliance, tests + - [tg] Make "~/.mkshrc" path configurable at compile time (embedded) + - [tg] Fix SUNWcc 12.1 error message scan in build phase=u + - [tg, Johannes Sixt, Geoff Clare] Fix variable assignment scope during + command execution (expansion vs. assignment execution environment); + [Herbert Xu, Geoff Clare] Add more regression tests for this + - [tg] Fix single quotes in "${foo#bar}" (differs from "${foo-bar}") + - [oksh] Fix mknod(8) usage message: b|c are not optional + - [tg, oksh] Fix "${x#?}" expansion when quoted (quotes, space) + * debian/control: make locales optional on avr32 + * debian/rules: disable locale support on avr32 + + -- Thorsten Glaser Fri, 09 Apr 2010 20:08:16 +0000 + +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 ’ 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 + + -- Thorsten Glaser Sun, 28 Feb 2010 14:09:39 +0000 + +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 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 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 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 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 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 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 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 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 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 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 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] 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 Sun, 05 Apr 2009 15:48:16 +0000 + +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 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 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 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 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 as 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 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 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 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 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 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 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 < Sun, 02 Mar 2008 16:12:59 +0000 + +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 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 , 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 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 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_t consistently, helps compiling on OSF/1 + + -- Thorsten Glaser 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 + - 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Sat, 06 Jan 2007 18:55:09 +0000 + +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 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 , 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 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 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 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 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 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 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 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 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 Mon, 30 Jan 2006 12:03:02 +0000 + +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 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 Tue, 12 Jul 2005 12:25:11 +0000 + +mksh (23.0-1) unstable; urgency=low + + * New upstream version + * Clarify licence + + -- Thorsten Glaser 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 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 Thu, 2 Jun 2005 07:47:33 +0000 + +mksh (22.2-1) unstable; urgency=low + + * Initial Release + + -- Thorsten Glaser Sat, 28 May 2005 22:02:17 +0000 --- mksh-39.3.20100721.orig/debian/compat +++ mksh-39.3.20100721/debian/compat @@ -0,0 +1 @@ +5 --- mksh-39.3.20100721.orig/debian/control +++ mksh-39.3.20100721/debian/control @@ -0,0 +1,51 @@ +# $MirOS: contrib/hosted/tg/deb/mksh/debian/control,v 1.44 2010/07/17 23:06:30 tg Exp $ +# +Source: mksh +Section: shells +Priority: optional +Maintainer: Thorsten Glaser +Homepage: http://mirbsd.de/mksh +# The list of dietlibc-dev architectures is copied from its control file. +# On other architectures, mksh-static links against eglibc (yuck…) +# XXX removed s390 from dietlibc arches due to Debian #523110 +# XXX removed sparc from dietlibc arches due to problems with 0.32-5 +Build-Depends: debhelper (>= 5), ed, libbsd-dev, + locales [!avr32] | belocs-locales-bin [!avr32], po-debconf, + dietlibc-dev [alpha amd64 arm hppa i386 ia64 mips mipsel powerpc ppc64] +Standards-Version: 3.9.0 +# First word is the $CVSROOT (-d arg) string, second word the module. +# Upstream is on the same server, in the "mksh" module. +Vcs-CVS: :ext:_anoncvs@anoncvs.mirbsd.org:/cvs contrib/hosted/tg/deb/mksh +Vcs-Browser: http://cvs.mirbsd.de/contrib/hosted/tg/deb/mksh/ + +Package: mksh +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, + debconf (>= 1.4.69) | cdebconf (>= 0.39) +Suggests: ed +Description: MirBSD Korn Shell + mksh is the MirBSD enhanced version of the Public Domain Korn + shell (pdksh), a Bourne-compatible shell which is largely similar + to the original AT&T Korn shell; mksh is the only pdksh derivate + currently being actively developed. + It includes bug fixes and feature improvements, in order to produce a + modern, robust shell good for interactive and especially script use. + mksh has UTF-8 support (in substring operations and the Emacs editing + mode) and, while R39c corresponds to OpenBSD 4.6-current ksh (without + GNU bash-like PS1 and fancy character classes), adheres to SUSv4 and + is much more robust. + The code has been cleaned up and simplified, bugs fixed, standards + compliance added, and several enhancements (for extended + compatibility to other modern shells – as well as a couple of its + own) are available. + This shell is Debian Policy 10.4 compliant and may be used as /bin/sh + on Debian systems. + . + The mksh-static binary is a version of mksh, linked against dietlibc + (if dietlibc exists for that Debian architecture), and optimised for + small code size, for example for use on initrd or initramfs images, + installation or rescue systems. + . + A sample ~/.mkshrc is included in /usr/share/doc/mksh/examples and + provided as /etc/mkshrc conffile, which is sourced by another file + /etc/skel/.mkshrc users are recommended to copy into their home. --- mksh-39.3.20100721.orig/debian/copyright +++ mksh-39.3.20100721/debian/copyright @@ -0,0 +1,110 @@ +This package was debianised by Thorsten Glaser on +Sat, 28 May 2005 22:02:17 +0000. + +$MirOS: contrib/hosted/tg/deb/mksh/debian/copyright,v 1.18 2010/07/21 11:50:50 tg Exp $ + +It was downloaded from: +• Anonymous CVS (_anoncvs@anoncvs.mirbsd.org:/cvs mksh) on + 2010/07/21 13:45 CEST +• https://www.mirbsd.org/MirOS/dist/hosted/other/printf.c.1.15 + +The repacked upstream tarball (mksh_*.orig.tar.gz) contains the +CVS export; the printf.c file is placed under extra/ instead. + +The debconf templates were taken from the dash source package; +updated translations were contributed via the Debian BTS and +other means. + + +Licence: + +The MirBSD Korn Shell is covered by the MirOS Licence, which +is OSI approved, as reproduced below. + +The mksh-static binary on architectures with no working dietlibc +available will additionally contain a strlcpy implementation under +the ISC Licence, which is OSI approved and reproduced below also; +this is not needed for the other binaries because both libbsd and +dietlibc provide this functionality. + +All Debian binaries of mksh R39 and up also pull in the UCB code +SLOB printf.c to have a printf(1) builtin (also OSI approved). + +mksh16.xpm is hand-drawn; mksh16lg.xpm and mksh32.xpm are exports +of https://www.mirbsd.org/pics/mksh.svg (the mksh logo). + + +The MirBSD Korn Shell (mksh) is +Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + Thorsten "mirabilos" Glaser +All rights reserved. + +The mksh logo is +Copyright © 2008, 2009 + Lukas U. +Copyright © 2008, 2009 + Thorsten "mirabilos" Glaser + +Provided that these terms and disclaimer and all copyright notices +are retained or reproduced in an accompanying document, permission +is granted to deal in this work without restriction, including un‐ +limited rights to use, publicly perform, distribute, sell, modify, +merge, give away, or sublicence. + +This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to +the utmost extent permitted by applicable law, neither express nor +implied; without malicious intent or gross negligence. In no event +may a licensor, author or contributor be held liable for indirect, +direct, other damage, loss, or other issues arising in any way out +of dealing in the work, even if advised of the possibility of such +damage or existence of a defect, except proven that it results out +of said person’s immediate fault when using the work as intended. + + +strlcpy.c is +Copyright (c) 2006, 2008, 2009 + Thorsten Glaser +Copyright (c) 1998 + Todd C. Miller + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +printf.c is +Copyright (c) 1989 + The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. --- mksh-39.3.20100721.orig/debian/mksh.config +++ mksh-39.3.20100721/debian/mksh.config @@ -0,0 +1,18 @@ +#!/bin/sh +# $MirOS: contrib/hosted/tg/deb/mksh/debian/mksh.config,v 1.4 2010/07/17 23:28:52 tg Exp $ + +set -e + +. /usr/share/debconf/confmodule + +db_input low mksh/sh || true +db_go + +db_get mksh/sh +if [ "$RET" = "true" ]; then + db_get dash/sh || RET=dontcare + if [ "$RET" = "true" ]; then + db_input low mksh/cannot || true + db_go + fi +fi --- mksh-39.3.20100721.orig/debian/mksh.install +++ mksh-39.3.20100721/debian/mksh.install @@ -0,0 +1,6 @@ +# $MirOS: contrib/hosted/tg/deb/mksh/debian/mksh.install,v 1.11 2010/07/17 23:06:31 tg Exp $ +#- +builddir/full/mksh bin +builddir/small/mksh-static bin +debian/.mkshrc etc/skel +debian/mksh*.xpm usr/share/pixmaps --- mksh-39.3.20100721.orig/debian/mksh.manpages +++ mksh-39.3.20100721/debian/mksh.manpages @@ -0,0 +1,3 @@ +# $MirOS: contrib/hosted/tg/deb/mksh/debian/mksh.manpages,v 1.4 2010/07/17 23:08:59 tg Exp $ +#- +mksh.1 --- mksh-39.3.20100721.orig/debian/mksh.menu +++ mksh-39.3.20100721/debian/mksh.menu @@ -0,0 +1,12 @@ +# $MirOS: contrib/hosted/tg/deb/mksh/debian/mksh.menu,v 1.4 2009/08/01 17:51:01 tg Exp $ +#- +# mksh16lg.xpm provides an alternative icon based on the mksh logo +# mksh16.xpm is a bitmap creation especially for this size +# mksh32.xpm is the mksh logo tweaked and scaled down to be useful +# +?package(mksh):needs="text" \ + section="Applications/Shells" \ + title="mksh" longtitle="MirBSD Korn Shell" \ + icon16x16="/usr/share/pixmaps/mksh16.xpm" \ + icon32x32="/usr/share/pixmaps/mksh32.xpm" \ + command="/bin/mksh -l" --- mksh-39.3.20100721.orig/debian/mksh.postinst +++ mksh-39.3.20100721/debian/mksh.postinst @@ -0,0 +1,64 @@ +#! /bin/sh +# $MirOS: contrib/hosted/tg/deb/mksh/debian/mksh.postinst,v 1.5 2009/04/07 20:55:54 tg Exp $ +#- +# postinst script for mksh +# +# see: dh_installdeb(1) + +set -e + +check_divert() { + div=$(dpkg-divert --list $2) + distrib=${4:-$2.distrib} + case $1 in + true) + if [ -z "$div" ]; then + dpkg-divert --package mksh --divert $distrib --add $2 + cp -dp $2 $distrib + ln -sf $3 $2 + fi + ;; + false) + if [ -n "$div" ] && [ -z "${div%%*by mksh}" ]; then + mv $distrib $2 + dpkg-divert --package mksh --remove $2 + fi + ;; + esac +} + +. /usr/share/debconf/confmodule +db_get mksh/sh +check_divert "$RET" /bin/sh mksh +check_divert "$RET" /usr/share/man/man1/sh.1.gz mksh.1.gz \ + /usr/share/man/man1/sh.distrib.1.gz + +case $1 in +configure) + update-alternatives --install /bin/ksh ksh /bin/mksh 12 \ + --slave /usr/bin/ksh usr.bin.ksh /bin/mksh \ + --slave /usr/share/man/man1/ksh.1.gz ksh.1.gz \ + /usr/share/man/man1/mksh.1.gz + update-alternatives --install /bin/ksh ksh /bin/mksh-static 11 \ + --slave /usr/bin/ksh usr.bin.ksh /bin/mksh-static \ + --slave /usr/share/man/man1/ksh.1.gz ksh.1.gz \ + /usr/share/man/man1/mksh.1.gz + add-shell /bin/mksh + add-shell /bin/mksh-static + ;; + +abort-upgrade|abort-remove|abort-deconfigure) + ;; + +*) + echo "postinst called with unknown argument '$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- mksh-39.3.20100721.orig/debian/mksh.prerm +++ mksh-39.3.20100721/debian/mksh.prerm @@ -0,0 +1,47 @@ +#! /bin/sh +# $MirOS: contrib/hosted/tg/deb/mksh/debian/mksh.prerm,v 1.5 2009/04/07 20:55:53 tg Exp $ +#- +# prerm script for mksh +# +# see: dh_installdeb(1) + +set -e + +remove_divert() { + div=$(dpkg-divert --list $1) + if [ -n "$div" ] && [ -z "${div%%*by mksh}" ]; then + distrib=${div% by mksh} + distrib=${distrib##* to } + mv $distrib $1 + dpkg-divert --package mksh --remove $1 + fi +} + +if [ "$1" = remove ] || [ "$1" = deconfigure ]; then + remove_divert /bin/sh + remove_divert /usr/share/man/man1/sh.1.gz +fi + +case $1 in +remove|upgrade|deconfigure) + update-alternatives --remove ksh /bin/mksh + update-alternatives --remove ksh /bin/mksh-static + remove-shell /bin/mksh + remove-shell /bin/mksh-static + ;; + +failed-upgrade) + ;; + +*) + echo "prerm called with unknown argument '$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- mksh-39.3.20100721.orig/debian/mksh.templates +++ mksh-39.3.20100721/debian/mksh.templates @@ -0,0 +1,16 @@ +Template: mksh/sh +Type: boolean +Default: false +_Description: Install mksh as /bin/sh? + Bash is the default /bin/sh on a Debian system. However, since the Debian + policy requires all shell scripts using /bin/sh to be POSIX compliant, any + shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX + compliant, it can be used as /bin/sh. You may wish to do this because + mksh is faster and smaller than bash. + +Template: mksh/cannot +Type: error +_Description: Cannot install mksh as /bin/sh! + Because dash has already been configured to be installed as /bin/sh, mksh + cannot be installed as /bin/sh. Use "dpkg-reconfigure dash" to change dash + to not install as /bin/sh, then "dpkg-reconfigure mksh" to install mksh there. --- mksh-39.3.20100721.orig/debian/mksh16.xpm +++ mksh-39.3.20100721/debian/mksh16.xpm @@ -0,0 +1,26 @@ +/* XPM */ +static char *mksh16[] = { +/* $MirOS: contrib/hosted/tg/deb/mksh/debian/mksh16.xpm,v 1.2 2009/08/01 16:45:41 tg Exp $ */ +"16 16 3 1", +/* colours */ +"# c #F9A74B", +"* c #990000", +" c None", +/* pixels */ +" ", +" ** ** ", +" ********** ", +" *** ** ** ", +" ** ** ** ", +" ** ** ** ", +" ** ** ** ", +" ", +" # # ## # # ", +" # # # # # # ", +" # # # # # ", +" ## ## #### ", +" # # # # # ", +" # # # # # # ", +" # # ## # # ", +" " +}; --- mksh-39.3.20100721.orig/debian/mksh16lg.xpm +++ mksh-39.3.20100721/debian/mksh16lg.xpm @@ -0,0 +1,191 @@ +/* XPM */ +static char *mksh16lg[] = { +/* $MirOS: contrib/hosted/tg/deb/mksh/debian/mksh16lg.xpm,v 1.1 2009/08/01 17:49:01 smultron Exp $ */ +"16 16 169 2", +/* colours */ +" c None", +" . c #2A221C", +" X c #615448", +" o c #636261", +" O c #A5A5A5", +" + c #654E38", +" @ c #5D5C5B", +" # c #2D2622", +" $ c #2B2420", +" % c #1A120C", +" & c #201815", +" * c #858382", +" = c #1F1814", +" - c #1D1612", +" ; c #C08545", +" : c #131312", +" > c #8D8D8D", +" , c #17100C", +" < c #8B8B8B", +" 1 c #150E0A", +" 2 c #140E09", +" 3 c #686562", +" 4 c #858585", +" 5 c #65615F", +" 6 c #A97742", +" 7 c #836341", +" 8 c #1D1815", +" 9 c #818181", +" 0 c #130E0B", +" q c #777777", +" w c #666563", +" e c #737373", +" r c #A37849", +" t c #4C3D2F", +" y c #A6A6A5", +" u c #6F6F6F", +" i c #6C5A4B", +" p c #5D472F", +" a c #9C9C9B", +" s c #332D2A", +" d c #CD8D47", +" f c #616161", +" g c #959494", +" h c #A47543", +" j c #171615", +" k c #A37342", +" l c #161414", +" z c #151413", +" x c #1B130F", +" c c #7B5D3F", +" v c #131211", +" b c #7E7C7A", +" n c #11100F", +" m c #170F0B", +" M c #7A7876", +" N c #898888", +" B c #535353", +" V c #757271", +" C c #593E24", +" Z c #838282", +" A c #BA854B", +" S c #5A4A3C", +" D c #644C32", +" F c #7B7A7A", +" G c #75593C", +" H c #946C40", +" J c #B47F45", +" K c #B27D43", +" L c #433C39", +" P c #413A37", +" I c #6F6E6E", +" U c #3F3835", +" Y c #181512", +" T c #1D140D", +" R c #6B6A6A", +" E c #665544", +" W c #483A2D", +" Q c #131110", +" ! c #CD8E49", +" ~ c #201A16", +" ^ c #16100C", +" / c #140E0A", +" ( c #130C09", +" ) c #1B1614", +" _ c #B4B4B4", +" ` c #181411", +" ' c #684724", +" ] c #A2A2A2", +" [ c #2C2521", +" { c #261F1B", +" } c #1D1C1C", +" | c #211916", +". c #969696", +".. c #1F1714", +".X c #1E1713", +".o c #171616", +".O c #1C1511", +".+ c #8E8E8E", +".@ c #150F0A", +".# c #0F0E0E", +".$ c #140F09", +".% c #140D09", +".& c #868686", +".* c #767473", +".= c #462F19", +".- c #534C4A", +".; c #735C45", +".: c #262321", +".> c #7A7A7A", +"., c #C68947", +".< c #BE8649", +".1 c #785D43", +".2 c #6C6C6C", +".3 c #161311", +".4 c #5B5A58", +".5 c #B5834A", +".6 c #9A6F40", +".7 c #686868", +".8 c #312011", +".9 c #916A41", +".0 c #261E1A", +".q c #646464", +".w c #241C18", +".e c #231C17", +".r c #221A16", +".t c #7C634A", +".y c #181716", +".u c #5C5C5C", +".i c #1C1410", +".p c #2B2622", +".a c #908F8F", +".s c #5A5A5A", +".d c #1A120E", +".f c #986D41", +".g c #17100B", +".h c #100F0E", +".j c #140E08", +".k c #9E754A", +".l c #664D34", +".z c #5F5B58", +".x c #DF984B", +".c c #5D5956", +".v c #946B40", +".b c #211E1B", +".n c #110C08", +".m c #443D3A", +".M c #7A6044", +".N c #2F2722", +".B c #1E150E", +".V c #646363", +".C c #2E2924", +".Z c #171614", +".A c #7D5F40", +".S c #1C150F", +".D c #141211", +".F c #131210", +".G c #19110C", +".H c #878685", +".J c #CBCBCB", +".K c #C28848", +".L c #716E6C", +".P c #865F38", +".I c #C08646", +".U c #6D6A68", +".Y c #140D0A", +".T c #7F6348", +".R c #20160F", +".E c #6F6E6D", +".W c #3B3430", +/* pixels */ +" ", +" _.+ 9 q.2.q.u B B.s f.7 u q < _", +".& j.# n v z.Z.y.o.Z l :.F.h } >", +" e Q.: P P.m.v P P P.m.v P.b.D 4", +" R.3 W.f.9 E.I c S.6.1., H.C.3.>", +".V Y D K J.k.x.5.T.< i d k p ` I", +" @ ).l 6 6 r !.K X.A A ;.P C 0 o", +".4 8 t G G.t 7.;.M h + '.=.8.n o", +" w ~ s P L.-.W U #.w $.w.O ( 2.E", +".*.e.p [.0 = -.r x.O.O x.r.Y.g F", +" Z.S.$ m { &.i.i.X | |.. m 1 % N", +" g T , ^.d 2.%.j.Y /.Y 1.@.G.B. ", +" O ..R.R.R.R.R.R.R.R.R.R.R.R.N ]", +".J a.H b V.U 5.c.z 3.L M *.a y.J", +" ", +" "}; --- mksh-39.3.20100721.orig/debian/mksh32.xpm +++ mksh-39.3.20100721/debian/mksh32.xpm @@ -0,0 +1,294 @@ +/* XPM */ +static char *mksh32[] = { +/* $MirOS: contrib/hosted/tg/deb/mksh/debian/mksh32.xpm,v 1.1 2009/08/01 17:43:00 smultron Exp $ */ +"32 32 256 2", +/* colours */ +" c None", +". c #0E0705", +"+ c #0F0907", +"@ c #100A08", +"# c #110B0A", +"$ c #120D0B", +"% c #150E05", +"& c #130E0C", +"* c #160F06", +"= c #140F0E", +"- c #171008", +"; c #15100F", +"> c #181109", +", c #161110", +"' c #111310", +") c #18120A", +"! c #161211", +"~ c #1D110C", +"{ c #171312", +"] c #1D120D", +"^ c #141513", +"/ c #1A140D", +"( c #1E130E", +"_ c #191514", +": c #1F140F", +"< c #151714", +"[ c #191615", +"} c #1F1510", +"| c #1C1610", +"1 c #1E170B", +"2 c #1D1711", +"3 c #22160D", +"4 c #211612", +"5 c #1B1817", +"6 c #1D1812", +"7 c #181917", +"8 c #221713", +"9 c #20190F", +"0 c #1D1918", +"a c #1F1914", +"b c #1D1A19", +"c c #201A15", +"d c #201B16", +"e c #241A16", +"f c #1F1C1B", +"g c #1C1D1B", +"h c #211C17", +"i c #221C17", +"j c #231D18", +"k c #1E1F1D", +"l c #221E1D", +"m c #241E19", +"n c #261F15", +"o c #231F1E", +"p c #20211F", +"q c #24201F", +"r c #26211B", +"s c #252120", +"t c #252120", +"u c #28221D", +"v c #222421", +"w c #232422", +"x c #2B241A", +"y c #282423", +"z c #2A241E", +"A c #2A241F", +"B c #292524", +"C c #2B2520", +"D c #252724", +"E c #2C2621", +"F c #272826", +"G c #2B2726", +"H c #2D2722", +"I c #2F281E", +"J c #2E2822", +"K c #2F2924", +"L c #352820", +"M c #302A25", +"N c #2F2A29", +"O c #2A2C29", +"P c #2F2B2A", +"Q c #332D28", +"R c #2E2F2D", +"S c #322E2D", +"T c #332F2E", +"U c #352F2A", +"V c #34302F", +"W c #30322F", +"X c #37312B", +"Y c #363231", +"Z c #38322C", +"` c #383433", +" . c #3A342E", +".. c #3B342F", +"+. c #343633", +"@. c #353734", +"#. c #3B3736", +"$. c #3D3731", +"%. c #373936", +"&. c #383937", +"*. c #3C3837", +"=. c #3F3933", +"-. c #3E3A39", +";. c #403A34", +">. c #413A35", +",. c #403B3A", +"'. c #423B36", +"). c #3B3D3A", +"!. c #413C3B", +"~. c #433C36", +"{. c #3D3E3C", +"]. c #4A3D39", +"^. c #433F3E", +"/. c #453F39", +"(. c #40413F", +"_. c #484035", +":. c #4D3F36", +"<. c #454140", +"[. c #414341", +"}. c #48423C", +"|. c #474241", +"1. c #504239", +"2. c #434542", +"3. c #494443", +"4. c #4B443E", +"5. c #51433A", +"6. c #52433A", +"7. c #544436", +"8. c #53453C", +"9. c #4C4746", +"0. c #4E4741", +"a. c #484947", +"b. c #4E4948", +"c. c #59493B", +"d. c #4A4C4A", +"e. c #4F4B4A", +"f. c #514B45", +"g. c #584A41", +"h. c #504C4A", +"i. c #524D4C", +"j. c #5E4C39", +"k. c #534E4D", +"l. c #4E504D", +"m. c #5F4D3A", +"n. c #4F514E", +"o. c #614F3B", +"p. c #58514B", +"q. c #515350", +"r. c #64523E", +"s. c #635244", +"t. c #545553", +"u. c #5D5449", +"v. c #6D533C", +"w. c #5B5756", +"x. c #705438", +"y. c #6F543E", +"z. c #695743", +"A. c #5D5957", +"B. c #69584A", +"C. c #5B5D5A", +"D. c #6B5A4C", +"E. c #5D5F5C", +"F. c #795C3A", +"G. c #65605F", +"H. c #7B5E3C", +"I. c #7D5F3E", +"J. c #686362", +"K. c #7C614A", +"L. c #666765", +"M. c #7E634B", +"N. c #88623D", +"O. c #816448", +"P. c #686967", +"Q. c #8A643F", +"R. c #696B68", +"S. c #856745", +"T. c #8C6641", +"U. c #85684B", +"V. c #8E6842", +"W. c #6C6E6B", +"X. c #896A48", +"Y. c #936C40", +"Z. c #717370", +"`. c #966E3C", +" + c #787372", +".+ c #956F49", +"++ c #976F44", +"@+ c #98703E", +"#+ c #A07141", +"$+ c #9B7347", +"%+ c #777976", +"&+ c #A4743E", +"*+ c #797B78", +"=+ c #9E764A", +"-+ c #7A7C79", +";+ c #817C7B", +">+ c #A77747", +",+ c #A37948", +"'+ c #A87848", +")+ c #AC7A45", +"!+ c #AE7B3F", +"~+ c #858784", +"{+ c #B97F45", +"]+ c #B58145", +"^+ c #B4814B", +"/+ c #8B8D8A", +"(+ c #C28646", +"_+ c #C98C45", +":+ c #CC8E47", +"<+ c #D18D48", +"[+ c #989A97", +"}+ c #D1934C", +"|+ c #D79246", +"1+ c #D99348", +"2+ c #9D9F9C", +"3+ c #DB954A", +"4+ c #9EA09D", +"5+ c #DF9745", +"6+ c #A1A3A0", +"7+ c #E19947", +"8+ c #E29A48", +"9+ c #A3A5A1", +"0+ c #E39C49", +"a+ c #A4A6A3", +"b+ c #EA9B4B", +"c+ c #E69E4B", +"d+ c #A6A8A5", +"e+ c #ED9D46", +"f+ c #A7A9A6", +"g+ c #E9A046", +"h+ c #A9ABA8", +"i+ c #F0A048", +"j+ c #EBA248", +"k+ c #AAACA9", +"l+ c #ACAEAB", +"m+ c #F5A445", +"n+ c #F4A44C", +"o+ c #AEB0AD", +"p+ c #F6A546", +"q+ c #F8A647", +"r+ c #B0B2AE", +"s+ c #B1B3AF", +"t+ c #B2B4B1", +"u+ c #B4B6B3", +"v+ c #B6B8B4", +"w+ c #B7B9B6", +"x+ c #B8BAB7", +"y+ c #B9BBB8", +"z+ c #BCBEBB", +"A+ c #C0C2BE", +"B+ c #C1C3BF", +"C+ c #C2C4C1", +"D+ c #C4C6C3", +"E+ c #C6C8C5", +"F+ c #C7C9C6", +"G+ c #CACCC9", +/* pixels */ +" ", +" ", +" ", +" t+t+t+t+t+t+o+h+a+6+6+d+k+r+t+t+t+t+t+t+t+ ", +" f+-+P.E.t.d.2.).+.R F w p k 7 7 g k v D O W @.{.[.a.q.C.-+9+ ", +" Z.0 $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ F %+ ", +" A.& & & ' _ 0 0 f l q s y B G B y y s q o l f f 0 , & & _ W. ", +"v+n.= = = ` >.N.>.>.>.~.>.>.>.]+].>.>.>.~.!.7.!+>.>.S = = , L. ", +"w+3., , , ~.@+7+#+>.0.!.>.>.>.m+:.>.>.>.~.4.m.b+>.>.` = , , C. ", +"y+{., , _ F._+{+F.c.7+b+_+1+>.m+o.3+o.)+5+1+z.j+1+(+*., , , l.y+", +"x+%., , 0 j.g+1+y.g.c+=+'+1+8.q+7+I.~.j+.+u.B.m+6.q+_.^ , , 3.x+", +"s++._ _ f >.1.:+e+z.8+=+,+1+D.q+}+>+0.U.}+8+r.b+>.n+6.< _ _ (.o+", +"k+V _ _ o H.&+<+e+j.8+=+,+1+s.q+B.e+s.$+O.e+v.b+>.n+6.0 _ , &.f+", +"d+T _ _ q 1.T.:+m.:.++K.M.V.1.,+p.S.x.++^+X.6.Y.>.`.L = , @ ` 6+", +"6+N 2 2 q >.>.Q.>.>.b.i.b.>.~.i.i.|.>.4.i.f.>.$.z > > + @ @ T 2+", +"4+N 2 2 q >.>.>.>.>.i.i.4.>.^.i.i.~.>.0.h.#.i > > > > . # # V 6+", +"9+Y a a q >.>.>.>.!.i.i.}.>.|.i.i.$.K U J i > > > > > + $ $ ` a+", +"h+#.c c l >.>.>.>./.i.i.^.$.,.=.Q > > H H z E z j > > @ % % *.h+", +"r+,.i i m >.>.>.;.~.,.K | > u u 4 > > H E m ( > j 8 > @ * * ,.o+", +"w+|.i i c Q z e > > > > / | 8 / > > > ( > > > > r 2 > @ > > !.u+", +"A+9.i e , > > > / / j z r j j r z z u r j i i z i > > # > > |.y+", +"D+h.~ ~ $ = > > z C 8 > > > > > > > > ( | 4 4 > > > = $ ~ ~ 3.C+", +"E+C.~ ~ > & > 4 r 8 > > > > > > > > > > > > > > > > # > ~ ~ w.E+", +" Z.: : : $ $ # # # # # @ # # # # # # # # # # $ # # = : : : R.F+", +" ~+9 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 n *+ ", +" [+M 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 $./+ ", +" B+;+G.w.k.9.|.>.$. .X Q M I x z H M Q U Z ..>.|.b.w.J. +/+z+ ", +" G+G+G+G+G+E+A+y+v+s+l+h+h+o+u+y+B+F+G+G+G+G+G+G+ ", +" ", +" ", +" ", +" "}; --- mksh-39.3.20100721.orig/debian/rules +++ mksh-39.3.20100721/debian/rules @@ -0,0 +1,237 @@ +#!/usr/bin/make -f +# $MirOS: contrib/hosted/tg/deb/mksh/debian/rules,v 1.56 2010/07/17 23:08:59 tg Exp $ +#- +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +PRINTF_C= extra/printf.c.1.15 + + +LC_ALL:= C +export LC_ALL + +CC?= gcc +CFLAGS= -Wall -g + +ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) +CFLAGS+= -O0 +else +CFLAGS+= -O2 +endif + +# nostrip: we use dh_strip, no action needed +# parallel=n: we cannot guarantee to honour ‘n’, thus building sequentially + + +# CPPFLAGS for /bin/mksh (glibc; full) +CPPFLAGS_f+= -include /usr/include/bsd/bsd.h + +# CPPFLAGS for /bin/mksh-static (dietlibc or glibc; small) +CPPFLAGS_s+= -DMKSH_SMALL + +# Debian #499139 +CPPFLAGS_f+= -DMKSH_BINSHREDUCED +CPPFLAGS_s+= -DMKSH_BINSHREDUCED + + +BUILD_ENV:= CC='${CC}' +BUILD_ENV+= CFLAGS='${CFLAGS}' +BUILD_ENV+= CPPFLAGS='${CPPFLAGS} ${CPPFLAGS_f}' +BUILD_ENV+= LIBS='-lbsd' + + +ifeq ($(shell which diet),) +USE_DIETLIBC= 0 +else +USE_DIETLIBC= 1 +endif + +DEB_BUILD_ARCH?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) + +# Debian #523088 +ifeq (${DEB_BUILD_ARCH},s390) +USE_DIETLIBC= 0 +endif + +ifneq (,$(filter Ubuntu,$(shell dpkg-vendor --query vendor 2>/dev/null || echo unknown))) +# LP #381332 +ifeq (${DEB_BUILD_ARCH},powerpc) +USE_DIETLIBC= 0 +endif +ifeq (${DEB_BUILD_ARCH},ppc64) +USE_DIETLIBC= 0 +endif +endif + +# both Ubuntu (weird versions) and Debian (weird trouble) +ifeq (${DEB_BUILD_ARCH},sparc) +USE_DIETLIBC= 0 +endif + + +ifeq (${USE_DIETLIBC},1) +# mksh-static ← dietlibc – diet(1) optimises OK +STATIC_ENV:= CC='diet -v -Os ${CC}' +STATIC_ENV+= CFLAGS='-Wall' +else +# mksh-static ← eglibc – try to optimise as good as we can ourselves +STATIC_ENV:= CC='${CC}' +STATIC_ENV+= CFLAGS='-Os -Wall' +STATIC_ENV+= LDFLAGS='${LDFLAGS} -static' +endif +STATIC_ENV+= CPPFLAGS='${CPPFLAGS} ${CPPFLAGS_s}' +STATIC_ENV+= HAVE_SETLOCALE_CTYPE=0 # no locale for it, either +#STATIC_ENV+= HAVE_CAN_COMBINE=0 # diet eats most of our CFLAGS + + +# This is already a part of CFLAGS +BUILD_ENV+= HAVE_CAN_WALL=0 +STATIC_ENV+= HAVE_CAN_WALL=0 + +# Debian #532343, #539158 +BUILD_ENV+= USE_PRINTF_BUILTIN=1 +STATIC_ENV+= USE_PRINTF_BUILTIN=1 + +# avr32 currently has no locales +ifeq (${DEB_BUILD_ARCH},avr32) +BUILD_ENV+= HAVE_SETLOCALE_CTYPE=0 +endif + +# shut up build log checkers that don’t know what they are doing +# Debian #492377, #572252, Ubuntu too +_shutup:= | sed \ + -e 's!conftest.c:\([0-9]*\(:[0-9]*\)*\): error:!cE(\1) -!g' \ + -e 's!conftest.c:\([0-9]*\(:[0-9]*\)*\): warning:!cW(\1) -!g' + + +build: debian/.build_stamp + +do-build: + # Copy extra code implementing printf(1) as a builtin. + cp ../../${PRINTF_C} printf.c +ifeq (0,${HAVE_CAN_COMBINE}) + # Try to build mksh. No -combine supported by compiler driver. + @sh ../../Build.sh -r +else + # Try to build mksh. If -combine fails, retry without. + @echo '=== trying to build with -fwhole-program --combine ===' + @if sh ../../Build.sh -r -c combine && test -f mksh; then \ + echo '=== done, wonderful ==='; \ + else \ + echo '=== FAILED because your gcc is broken ==='; \ + echo; \ + echo '=== trying to build withOUT -fwhole-program' \ + '--combine ==='; \ + sh ../../Build.sh -r || exit 1; \ + echo '=== note: for better optimisation, fix your gcc! ==='; \ + fi +endif + # We have a binary! +ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + ./mksh -c true + # + # Dear buildd administrators, + # + # if this fails, please install /dev/ptmx et al. in your + # chroot, i.e. the devices needed by openpty(). Thanks! + # Note: /dev/tty is required by the regression test too. + # +# script(1) fails on Debian GNU/Hurd in pbuilder; this gets us 30 failures + if test '!' -e ../../attended && test x"$$(uname -s)" = x"GNU"; then \ + ./test.sh -v; \ + else \ + echo >test.wait; \ + script -qc './test.sh -v; x=$$?; rm -f test.wait; exit $$x'; \ + maxwait=0; \ + while test -e test.wait; do \ + sleep 1; \ + maxwait=$$(expr $$maxwait + 1); \ + test $$maxwait -lt 900 || break; \ + done; \ + fi + # end of regression test suite +endif + +debian/.build_stamp: + dh_testdir + -rm -rf builddir + mkdir builddir builddir/full builddir/small +ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + # failure here may lead to testsuite failures + mkdir builddir/tloc + # cf. Debian #522776 + -localedef -i en_US -c -f UTF-8 builddir/tloc/en_US.UTF-8 +endif + # + # build mksh-full + # + _topdir=$$(pwd); cd builddir/full && env ${BUILD_ENV} \ + LC_ALL=C LOCPATH=$$_topdir/builddir/tloc \ + $$_topdir/debian/rules -e do-build ${_shutup} + # + # build mksh-diet (if dietlibc), mksh-small (otherwise) + # + _topdir=$$(pwd); cd builddir/small && env ${STATIC_ENV} \ + LC_ALL=C LOCPATH=$$_topdir/builddir/tloc \ + $$_topdir/debian/rules -e do-build ${_shutup} + ln builddir/small/mksh builddir/small/mksh-static + # + # finished building + # + touch $@ + +clean: + dh_testdir + -rm -f debian/.*_stamp + -rm -rf builddir + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples + dh_install + dh_installmenu + dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + install -m 644 dot.mkshrc debian/mksh/etc/mkshrc + dh_link + dh_strip + dh_compress + cd debian/mksh/usr/share/man/man1 && ln -sf mksh.1.gz mksh-static.1.gz + dh_fixperms +# dh_perl +# dh_python +# dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install check --- mksh-39.3.20100721.orig/debian/watch +++ mksh-39.3.20100721/debian/watch @@ -0,0 +1,6 @@ +# $MirOS: contrib/hosted/tg/deb/mksh/debian/watch,v 1.2 2009/08/01 15:33:42 tg Exp $ + +version=3 +# convert upstream versioning to Debian version numbers +opts="uversionmangle=s/^([0-9]+)$/$1.1/;s/^([0-9]+)b$/$1.2/;s/^([0-9]+)c$/$1.3/;s/^([0-9]+)d$/$1.4/;s/^([0-9]+)e$/$1.5/;s/^([0-9]+)f$/$1.6/;s/^([0-9]+)g$/$1.7/;s/^([0-9]+)h$/$1.8/;s/^([0-9]+)i$/$1.9/" \ +http://www.mirbsd.org/MirOS/dist/mir/mksh/ mksh-R([0-9]+[b-i]?)\.cpio\.gz --- mksh-39.3.20100721.orig/debian/README.Debian +++ mksh-39.3.20100721/debian/README.Debian @@ -0,0 +1,30 @@ +Notes for the mksh binary package +================================= + +* After installation, it is strongly recommended to copy the file + /etc/skel/.mkshrc into your home directory to get a nicer prompt, + pushd/popd/dirs functionality, some aliases, etc. (you can then + customise it; reading the manual page also often helps). + Note that /etc/skel/.mkshrc sources /etc/mkshrc (which is the + upstream-provided file) by default. + +* Due to a bug in dash (Debian #540512), mksh cannot (at this time) + be installed as /bin/sh by automated means. It will however work, + either if done manually (change the symlink as root), for squeeze + or sid, or if using an older dash version (such as lenny's). + +* /bin/mksh is built with the following options: + - eglibc (dynamically linked) + - libbsd (dynamically linked) + - the printf builtin + - calling as sh or -sh invokes "set -o sh" + +* /bin/mksh-static is built with the following options: + - dietlibc, if available, eglibc otherwise (statically linked) + - the printf builtin + - calling as sh or -sh invokes "set -o sh" + - -DMKSH_SMALL + - no locale support; uses getenv on LANG/LC_CTYPE/LC_ALL + +__________________________________________________________________________________________ +$MirOS: contrib/hosted/tg/deb/mksh/debian/README.Debian,v 1.5 2010/07/17 22:47:59 tg Exp $ --- mksh-39.3.20100721.orig/debian/mksh.docs +++ mksh-39.3.20100721/debian/mksh.docs @@ -0,0 +1,3 @@ +# $MirOS: contrib/hosted/tg/deb/mksh/debian/mksh.docs,v 1.1 2010/02/28 13:37:27 tg Exp $ +#- +debian/README.Debian --- mksh-39.3.20100721.orig/debian/mksh.examples +++ mksh-39.3.20100721/debian/mksh.examples @@ -0,0 +1,3 @@ +# $MirOS: contrib/hosted/tg/deb/mksh/debian/mksh.examples,v 1.2 2010/07/17 23:08:59 tg Exp $ +#- +dot.mkshrc --- mksh-39.3.20100721.orig/debian/.mkshrc +++ mksh-39.3.20100721/debian/.mkshrc @@ -0,0 +1,17 @@ +# $MirOS: contrib/hosted/tg/deb/mksh/debian/.mkshrc,v 1.1 2010/07/03 17:28:16 tg Exp $ +#- +# Skeleton ~/.mkshrc file adding a level of indirection + +# check if this is really mksh # {(( +case $KSH_VERSION in +*MIRBSD\ KSH*) ;; +*) return 0 ;; +esac # } + +# source the system-wide mkshrc file +[[ -s /etc/mkshrc ]] && . /etc/mkshrc + +# put your local alias/function definitions, patches, etc. here + + +: make sure this is the last line, to ensure a good return code --- mksh-39.3.20100721.orig/debian/po/POTFILES.in +++ mksh-39.3.20100721/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] mksh.templates --- mksh-39.3.20100721.orig/debian/po/cs.po +++ mksh-39.3.20100721/debian/po/cs.po @@ -0,0 +1,57 @@ +# Czech translation of mksh templates +# +msgid "" +msgstr "" +"Project-Id-Version: mksh 39.1-1\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2009-06-27 10:06+0200\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "Nainstalovat mksh jako /bin/sh?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"V Debianu je jako výchozí /bin/sh nastaven bash. Protože však naše politika " +"vyžaduje, aby byly všechny shellové skripty využívající /bin/sh kompatibilní " +"s POSIXem, můžete jako /bin/sh použít jakýkoliv shell splňující normu POSIX. " +"Protože mksh tuto normu splňuje, může být použit jako /bin/sh, což stojí za " +"vyzkoušení, protože mksh je rychlejší a menší než bash." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "Nelze nainstalovat mksh jako /bin/sh!" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" +"Protože již byl jako /bin/sh nainstalován dash, nelze stejným způsobem " +"nainstalovat i mksh. Chcete-li mksh nainstalovat jako /bin/sh, musíte " +"nejprve příkazem „dpkg-reconfigure dash“ upravit dash, aby se neinstaloval " +"jako /bin/sh a poté příkazem „dpkg-reconfigure mksh“ do /bin/sh nasměrovat " +"mksh." --- mksh-39.3.20100721.orig/debian/po/da.po +++ mksh-39.3.20100721/debian/po/da.po @@ -0,0 +1,58 @@ +# Danish translation of mksh templates +# +# Claus Hindsgaul , 2004. +# Claus Hindsgaul , 2006. +# Michael Kristensen , 2009. +msgid "" +msgstr "" +"Project-Id-Version: mksh\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2006-11-15 15:01+0100\n" +"Last-Translator: Michael Kristensen \n" +"Language-Team: Danish\n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "Installér mksh som /bin/sh?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"Bash er som udgangspunkt /bin/sh på et Debiansystem. Men da det er Debians " +"politik, at skalskripter, der benytter /bin/sh skal overholde POSIX-" +"standarden, vil enhver skal, der overholder POSIX kunne fungere som /bin/sh. " +"Da mksh overholder POSIX, kan den benyttes som /bin/sh. Det kan være en " +"fordel at gøre dette, fordi mksh er hurtigere og mindre end bash." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "Kan ikke installere mksh som /bin/sh!" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" +"Fordi dash allerede er sat til at være /bin/sh, kan mksh ikke også benyttes " +"som /bin/sh. Brug \"dpkg-reconfigure dash\" for at fjerne dash som /bin/sh " +"og derefter \"dpkg-reconfigure mksh\" for at sætte mksh som /bin/sh i stedet." --- mksh-39.3.20100721.orig/debian/po/de.po +++ mksh-39.3.20100721/debian/po/de.po @@ -0,0 +1,68 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: mksh 39.1-1\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2006-11-09 21:26+0100\n" +"Last-Translator: Thorsten Glaser \n" +"Language-Team: de \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "mksh als /bin/sh installieren?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"Bash ist die Standard-Shell (/bin/sh) auf einem Debian-System. Da die Debian-" +"Richtlinien allerdings von allen Shellskripten, die /bin/sh benutzen, POSIX-" +"Kompatibilität verlangt, kann für /bin/sh jede POSIX-kompatible Shell " +"benutzt werden. Da mksh POSIX-kompatibel ist, kann sie als /bin/sh verwendet " +"werden. Weil mksh schneller und kompakter als bash ist, möchten Sie sie " +"vielleicht verwenden." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "Kann mksh nicht als /bin/sh installieren!" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" +"Weil dash schon konfiguriert wurde, sich als /bin/sh zu installieren, kann " +"mksh nicht als /bin/sh installiert werden. Bitte benutzen Sie \"dpkg-" +"reconfigure dash\", um dash einzustellen, sich nicht als /bin/sh zu " +"installieren, dann \"dpkg-reconfigure mksh\", um mksh dort zu plazieren." --- mksh-39.3.20100721.orig/debian/po/es.po +++ mksh-39.3.20100721/debian/po/es.po @@ -0,0 +1,55 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: mksh 39.1-1\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2006-12-08 23:49+0100\n" +"Last-Translator: Alef Sheridan Ariel Ramírez Chiñas \n" +"Language-Team: Debian L10n Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "¿Instalar mksh como /bin/sh?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"Bash es el intérprete de órdenes /bin/sh predeterminado de los sistemas " +"Debian. Sin embargo, dado que nuestras normas obligan a que todos los " +"scripts para el intérprete de órdenes se atengan a las normas POSIX, " +"cualquier intérprete compatible con POSIX puede servir como /bin/sh. Puesto " +"que mksh lo es, puede usarse como /bin/sh, con la ventaja de ser más rápido " +"y pequeño que bash." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "¡No se puede instalar mksh como /bin/sh!" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" +"Debido a que dash cuando se instala se configura como /bin/sh, mksh no puede " +"ser instalado de esta manera. Use \"dpkg-reconfigure dash\" para quitar a " +"dash de /bin/sh y luego use \"dpkg-reconfigure mksh\" para definirlo." --- mksh-39.3.20100721.orig/debian/po/fr.po +++ mksh-39.3.20100721/debian/po/fr.po @@ -0,0 +1,63 @@ +# Translation of mksh debconf templates to French +# Copyright (C) 2007 Christian Perrier +# This file is distributed under the same license as the mksh package. +# +# Cyril Brulebois , 2007. +# Denis Barbier , 2003-2006. +# Christian Perrier , 2008. +msgid "" +msgstr "" +"Project-Id-Version: mksh 33.2-1\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2008-03-06 19:31+0100\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "Faut-il mettre en place un lien de /bin/sh vers mksh ?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"Par défaut, sur un système Debian, /bin/sh est un lien vers bash. Cependant, " +"comme la charte Debian impose que tous les scripts utilisant /bin/sh soient " +"conformes à la norme POSIX, /bin/sh peut être n'importe quel interpréteur de " +"commandes (« shell ») conforme à cette norme, tel que mksh. Vous pouvez " +"vouloir choisir cette option puisque mksh est plus rapide et plus petit que " +"bash." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "Échec de la mise en place d'un lien de /bin/sh vers mksh" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" +"Comme dash est déjà configuré pour s'installer en tant que /bin/sh, mksh ne " +"peut l'être également. Veuillez utiliser « dpkg-reconfigure dash » pour " +"changer votre choix puis « dpkg-reconfigure mksh » pour établir mksh en tant " +"qu'interpréteur de commandes par défaut." --- mksh-39.3.20100721.orig/debian/po/gl.po +++ mksh-39.3.20100721/debian/po/gl.po @@ -0,0 +1,58 @@ +# Galician translation of mksh's debconf templates +# This file is distributed under the same license as the dash package. +# Jacobo Tarrio , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: mksh 32.1-1\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2007-10-24 22:34+0100\n" +"Last-Translator: Jacobo Tarrio \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "¿Instalar mksh coma /bin/sh?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"Bash é o /bin/sh por defecto nos sistemas Debian. Nembargantes, como a " +"normativa de Debian require que tódolos scripts que empreguen /bin/sh sexan " +"compatibles con POSIX, calquera shell que siga POSIX pode servir coma /bin/" +"sh. Xa que mksh cumpre con POSIX, pódese empregar coma /bin/sh. Pode ser " +"unha boa idea facelo, xa que mksh é máis rápido e máis pequeno que bash." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "Non se pode instalar mksh coma /bin/sh" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" +"Xa que dash xa está configurado para se instalar coma /bin/sh, non se pode " +"instalar mksh coma /bin/sh. Empregue \"dpkg-reconfigure dash\" para " +"configurar dash para non se instalar coma /bin/sh, e despois execute \"dpkg-" +"reconfigure mksh\" para instalar mksh aí." --- mksh-39.3.20100721.orig/debian/po/it.po +++ mksh-39.3.20100721/debian/po/it.po @@ -0,0 +1,55 @@ +# mksh -- Italian debconf messages +# This file is distributed under the same license as the dash package. +# Andrea Bolognani , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: mksh\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2006-03-01 14:28+0200\n" +"Last-Translator: Andrea Bolognani \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "Installare mksh come /bin/sh?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +#, fuzzy +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"Bash è la shell di default in un sistema Debian. Tuttavia, dal momento che " +"la nostra policy richiede che gli script della shell che usano /bin/sh siano " +"conformi a POSIX, ogni shell che sia conforme a POSIX può essere usata come /" +"bin/sh. Siccome mksh è conforme a POSIX, può essere usata come /bin/sh. " +"Potresti volerla usare perchè è più piccola e veloce di bash." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" --- mksh-39.3.20100721.orig/debian/po/ja.po +++ mksh-39.3.20100721/debian/po/ja.po @@ -0,0 +1,67 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: mksh 35.2-1\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2008-05-29 14:04+0900\n" +"Last-Translator: Kenshi Muto \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "mksh を /bin/sh としてインストールしますか?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"Debian システムでは bash がデフォルトの /bin/sh です。しかし、Debian のポリ" +"シーによって、/bin/sh を用いる全てのシェルスクリプトは POSIX 準拠でなければな" +"らないため、POSIX を満たすシェルはどれでも /bin/sh となることができます。" +"mksh は POSIX 準拠ですので、/bin/sh として使うことができます。mksh は bash よ" +"り速くて小さいので、そうしたいと思うかもしれません。" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "mksh を /bin/sh としてインストールできません!" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" +"dash がすでに /bin/sh としてインストールするよう設定されているため、mksh を /" +"bin/sh としてインストールすることができませんでした。dash を /bin/sh としてイ" +"ンストールしないよう \"dpkg-reconfigure dash\" を実行し、それから mksh をそこ" +"にインストールするよう \"dpkg-reconfigure mksh\" を実行してください。" --- mksh-39.3.20100721.orig/debian/po/nl.po +++ mksh-39.3.20100721/debian/po/nl.po @@ -0,0 +1,68 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: mksh 39.1-1\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2007-01-29 22:12+0100\n" +"Last-Translator: Thorsten Glaser \n" +"Language-Team: Debian Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "mksh als /bin/sh installeren?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"Bash is de standaard /bin/sh op een Debian-systeem. Debian-beleid eist " +"echter dat alle shell-scripts die /bin/sh gebruiken moeten voldoen aan de " +"POSIX-standaard, dus elke shell die zich conformeert aan POSIX kan dienst " +"doen als /bin/sh. Omdat mksh zich conformeert aan POSIX, kan het dus " +"gebruikt worden als /bin/sh. Een reden om dat inderdaad te doen is dat mksh " +"sneller en kleiner is dan bash." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "Kan mksh niet als /bin/sh installeren!" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" +"Als dash al ingestelt is zich als /bin/sh te instaleren kan mksh dat niet " +"doen. Gebruik A.U.B. \"dpkg-reconfigure dash\" om dash niet meer als /bin/sh " +"te gebruiken, dan \"dpkg-reconfigure mksh\" om mksh opnieuw te configureren, " +"zich als /bin/sh te plaatsen." --- mksh-39.3.20100721.orig/debian/po/pt.po +++ mksh-39.3.20100721/debian/po/pt.po @@ -0,0 +1,61 @@ +# translation of mksh to Portuguese +# +# Bruno Rodrigues , 2003-2007. +# Américo Monteiro , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: mksh 30.1-1\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2007-09-26 22:38+0100\n" +"Last-Translator: Américo Monteiro \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "Instalar o mksh como /bin/sh?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"O bash é o /bin/sh por omissão num sistema Debian. No entanto, como a " +"política Debian requer que todos os scripts shell que usam /bin/sh sejam " +"compatíveis com POSIX, qualquer shell que seja conforme o POSIX pode servir " +"como /bin/sh. Como o mksh é compatível com POSIX, pode ser usado como /bin/" +"sh. Você pode desejar fazer isto porque o mksh é mais rápido e menor que o " +"bash." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "Não se pode instalar mksh como /bin/sh!" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" +"Porque o dash já foi configurado para ser instalado como /bin/sh, o mksh não " +"pode ser instalado como /bin/sh. Use \"dpkg-reconfigure dash\" para alterar " +"o dash a não se instalar como /bin/sh, depois \"dpkg-reconfigure mksh\" para " +"instalar o mksh lá." --- mksh-39.3.20100721.orig/debian/po/pt_BR.po +++ mksh-39.3.20100721/debian/po/pt_BR.po @@ -0,0 +1,70 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: mksh\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2006-12-19 21:23-0200\n" +"Last-Translator: André Luís Lopes \n" +"Language-Team: Debian-BR Project \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "Instalar mksh como /bin/sh?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"O bash é o /bin/sh padrão em um sistema Debian. Porém, uma vez que nossa " +"política requer que todos os scripts shell usando /bin/sh sejam compatíveis " +"com o padrão POSIX, qualquer shell que esteja em conformidade com o padrão " +"POSIX pode servir como /bin/sh. Uma vez que o mksh é compatível com o padrão " +"POSIX, o mesmo pode ser usado como /bin/sh. Você pode desejar usar o mksh " +"devido ao mesmo ser mais rápido e menor que o bash." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +#, fuzzy +msgid "Cannot install mksh as /bin/sh!" +msgstr "Não se pode instalar mksh como /bin/sh!" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +#, fuzzy +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" +"Porque o dash já foi configurado para ser instalado como /bin/sh, o mksh não " +"pode ser instalado como /bin/sh. Use \"dpkg-reconfigure dash\" para alterar " +"o dash a não se instalar como /bin/sh, depois \"dpkg-reconfigure mksh\" para " +"instalar o mksh lá." --- mksh-39.3.20100721.orig/debian/po/ru.po +++ mksh-39.3.20100721/debian/po/ru.po @@ -0,0 +1,72 @@ +# translation of mksh_32.1-1_ru.po to Russian +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Ilgiz Kalmetev , 2003. +# Yuri Kozlov , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: mksh 32.1-1\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2008-02-23 18:25+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "Настроить символическую ссылку /bin/sh на mksh?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"В системе Debian по умолчанию символическая ссылка /bin/sh указывает на " +"bash. Однако, так как политика Debian требует, чтобы все сценарии оболочки, " +"использующие /bin/sh, были совместимы с POSIX, то /bin/sh может указывать на " +"любую оболочку, совместимую с POSIX. Так как mksh совместим с POSIX, то /bin/" +"sh может указывать на него. Если сравнивать c bash, то основными " +"преимуществами mksh являются скорость и размер." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "Невозможно установить mksh как /bin/sh!" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" +"mksh невозможно установить как /bin/sh, так как для этого уже используется " +"dash. Запустите команду \"dpkg-reconfigure dash\", чтобы указать не " +"устанавливать dash как /bin/sh, а затем выполните \"dpkg-reconfigure mksh\" " +"для настройки mksh." --- mksh-39.3.20100721.orig/debian/po/sv.po +++ mksh-39.3.20100721/debian/po/sv.po @@ -0,0 +1,65 @@ +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# Developers do not need to manually edit POT or PO files. +# +# +msgid "" +msgstr "" +"Project-Id-Version: mksh 35.2-1\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2008-07-22 20:07+0100\n" +"Last-Translator: Martin Bagge \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "Installera mksh som /bin/sh?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"Bash är standard för /bin/sh på ett Debian-system. Eftersom vår policy " +"kräver att alla script som använder /bin/sh måste vara POSIX-kompatibla, kan " +"vilket POSIX-kompatibelt skal som helst vara /bin/sh. Då mksh är POSIX-" +"kompatibelt kan det användas som /bin/sh. Du kanske önskar detta eftersom " +"mksh är snabbare och mindre än bash." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "Kan inte installera mksh som /bin/sh!" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" +"Eftersom dash redan är inställd att agera som /bin/sh så kan mksh inte " +"ställas in att agera som /bin/sh. Använd \"dpkg-reconfigure dash\" för att " +"ändra dash till att inte agera som /bin/sh. När det är gjort kör du \"dkpg-" +"reconfigure mksh\" för att aktivera mksh i /bin/sh." --- mksh-39.3.20100721.orig/debian/po/templates.pot +++ mksh-39.3.20100721/debian/po/templates.pot @@ -0,0 +1,50 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" --- mksh-39.3.20100721.orig/debian/po/vi.po +++ mksh-39.3.20100721/debian/po/vi.po @@ -0,0 +1,56 @@ +# Vietnamese translation for mksh. +# Copyright © 2007 Free Software Foundation, Inc. +# Clytie Siddall , 2005-7. +# +msgid "" +msgstr "" +"Project-Id-Version: mksh\n" +"Report-Msgid-Bugs-To: tg@mirbsd.de\n" +"POT-Creation-Date: 2007-06-10 07:47+0000\n" +"PO-Revision-Date: 2007-01-30 18:27+1030\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "Install mksh as /bin/sh?" +msgstr "Cài đặt trình mksh chạy « /bin/sh » không?" + +#. Type: boolean +#. Description +#: ../mksh.templates:1001 +msgid "" +"Bash is the default /bin/sh on a Debian system. However, since the Debian " +"policy requires all shell scripts using /bin/sh to be POSIX compliant, any " +"shell that conforms to POSIX can serve as /bin/sh. Since mksh is POSIX " +"compliant, it can be used as /bin/sh. You may wish to do this because mksh " +"is faster and smaller than bash." +msgstr "" +"Trình bash là trình bao (« /bin/sh ») mặc định trong hệ thống Debian. Tuy " +"nhiên, vì chính sách Debian cần thiết mọi văn lệnh trình bao có dùng « /bin/" +"sh » chỉ tuân theo POSIX, bất cứ trình bao nào cũng tuân theo POSIX có thể " +"chạy « /bin/sh ». Vì trình mksh có phải tuân theo POSIX, bạn có thể sử dụng " +"nó là « /bin/sh ». Bạn có lẽ sẽ muốn làm như thế vì trình mksh chạy nhanh " +"hơn, là chương trình nhỏ hơn trình bash." + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "Cannot install mksh as /bin/sh!" +msgstr "" + +#. Type: error +#. Description +#: ../mksh.templates:2001 +msgid "" +"Because dash has already been configured to be installed as /bin/sh, mksh " +"cannot be installed as /bin/sh. Use \"dpkg-reconfigure dash\" to change dash " +"to not install as /bin/sh, then \"dpkg-reconfigure mksh\" to install mksh " +"there." +msgstr "" --- mksh-39.3.20100721.orig/debian/source/format +++ mksh-39.3.20100721/debian/source/format @@ -0,0 +1 @@ +1.0 --- mksh-39.3.20100721.orig/extra/printf.c.1.15 +++ mksh-39.3.20100721/extra/printf.c.1.15 @@ -0,0 +1,632 @@ +/* $OpenBSD: printf.c,v 1.17 2009/10/27 23:59:41 deraadt Exp $ */ + +/*- + * Copyright (c) 1989 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifdef MKSH_PRINTF_BUILTIN +/* MirBSD Korn Shell */ +#include "sh.h" +#else +/* stand-alone executable */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +__RCSID("$MirOS: src/usr.bin/printf/printf.c,v 1.15 2010/07/17 22:09:29 tg Exp $"); + +static int print_escape_str(const char *); +static int print_escape(const char *); + +static int getchr(void); +#ifndef MKSH_PRINTF_BUILTIN +static double getdouble(void); +#endif +static int getinteger(void); +static long getlong(void); +static unsigned long getulong(void); +static const char *getstr(void); +static char *mklong(const char *, int); +static void check_conversion(const char *, const char *); +static int usage(void); +static int real_main(char *, const char *[]); + +static int rval; +static const char **gargv; + +#ifdef MKSH_PRINTF_BUILTIN +static int s_get(void); +static void s_put(int); +static void s_prt(int); + +static const char *s_ptr; + +#define isxdigit(c) (((c) >= '0' && (c) <= '9') || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F')) +#endif + +#define isodigit(c) ((c) >= '0' && (c) <= '7') +#define octtobin(c) ((c) - '0') +#define hextobin(c) ((c) >= 'A' && (c) <= 'F' ? c - 'A' + 10 : (c) >= 'a' && (c) <= 'f' ? c - 'a' + 10 : c - '0') + +#define PF(f, func) do { \ + if (fieldwidth) \ + if (precision) \ + uprintf(f, fieldwidth, precision, func); \ + else \ + uprintf(f, fieldwidth, func); \ + else if (precision) \ + uprintf(f, precision, func); \ + else \ + uprintf(f, func); \ +} while (/* CONSTCOND */ 0) + +#ifndef vstrchr +#define vstrchr strchr +#endif + +#ifdef MKSH_PRINTF_BUILTIN +#define ufprintf shf_fprintf +#define uprintf shprintf +#define uputc(c) shf_putchar((c), shl_stdout) +#define ustderr shl_out +#define uwarnx warningf +#define UWARNX false, + +int +c_printf(const char **wp) +{ + int rv; + const char *old_kshname; + char *fmt; + + old_kshname = kshname; + kshname = wp[0]; + ++wp; + if (wp[0] && !strcmp(wp[0], "--")) + ++wp; + if (wp[0]) { + strdupx(fmt, wp[0], ATEMP); + rv = real_main(fmt, wp); + afree(fmt, ATEMP); + } else + rv = usage(); + kshname = old_kshname; + return (rv); +} +#else +#define ufprintf fprintf +#define uprintf printf +#define uputc putchar +#define ustderr stderr +#define uwarnx warnx +#define UWARNX /* nothing */ + +int +main(int argc, char *argv[]) +{ + setlocale(LC_ALL, ""); + + if (argc > 1 && !strcmp(argv[1], "--")) { + --argc; + ++argv; + } + + ++argv; + return (argc < 2 ? usage() : real_main(argv[0], (const char **)argv)); +} +#endif + +static int +real_main(char *format, const char *argv[]) +{ + char *fmt, *start; + int fieldwidth, precision; + char convch, nextch; + + gargv = ++argv; + +#define SKIP1 "#-+ 0" +#define SKIP2 "0123456789" + do { + /* + * Basic algorithm is to scan the format string for conversion + * specifications -- once one is found, find out if the field + * width or precision is a '*'; if it is, gather up value. + * Note, format strings are reused as necessary to use up the + * provided arguments, arguments of zero/null string are + * provided to use up the format string. + */ + + /* find next format specification */ + for (fmt = format; *fmt; fmt++) { + switch (*fmt) { + case '%': + start = fmt++; + + if (*fmt == '%') { + uputc('%'); + break; + } else if (*fmt == 'b') { + const char *p = getstr(); + if (print_escape_str(p)) { + return (rval); + } + break; + } + + /* skip to field width */ + for (; strchr(SKIP1, *fmt); ++fmt) + ; + if (*fmt == '*') { + ++fmt; + fieldwidth = getinteger(); + } else + fieldwidth = 0; + + /* skip to field precision */ + for (; strchr(SKIP2, *fmt); ++fmt) + ; + precision = 0; + if (*fmt == '.') { + ++fmt; + if (*fmt == '*') { + ++fmt; + precision = getinteger(); + } + for (; strchr(SKIP2, *fmt); ++fmt) + ; + } + + if (!*fmt) { + uwarnx(UWARNX "missing format character"); + return (1); + } + + convch = *fmt; + nextch = *(fmt + 1); + *(fmt + 1) = '\0'; + switch(convch) { + case 'c': { + char p = getchr(); + PF(start, p); + break; + } + case 's': { + const char *p = getstr(); + PF(start, p); + break; + } + case 'd': + case 'i': { + long p; + char *f = mklong(start, convch); + if (!f) { + uwarnx(UWARNX "out of memory"); + return (1); + } + p = getlong(); + PF(f, p); + break; + } + case 'o': + case 'u': + case 'x': + case 'X': { + unsigned long p; + char *f = mklong(start, convch); + if (!f) { + uwarnx(UWARNX "out of memory"); + return (1); + } + p = getulong(); + PF(f, p); + break; + } +#ifndef MKSH_PRINTF_BUILTIN +#if 0 + case 'a': + case 'A': +#endif + case 'e': + case 'E': + case 'f': + case 'F': + case 'g': + case 'G': { + double p = getdouble(); + PF(start, p); + break; + } +#endif + + default: + uwarnx(UWARNX "%s: invalid directive", start); + return (1); + } + *(fmt + 1) = nextch; + break; + + case '\\': + fmt += print_escape(fmt); + break; + + default: + uputc(*fmt); + break; + } + } + } while (gargv > argv && *gargv); + + return (rval); +} + + +/* + * Print SysV echo(1) style escape string + * Halts processing string and returns 1 if a \c escape is encountered. + */ +static int +print_escape_str(const char *str) +{ +#ifndef MKSH_PRINTF_BUILTIN + int value; +#endif + int c; + + while (*str) { + if (*str == '\\') { +#ifdef MKSH_PRINTF_BUILTIN + s_ptr = str + 1; + c = unbksl(false, s_get, s_put); + str = s_ptr; + if (c == -1) { + if ((c = *str++) == 'c') + return (1); + else if (!c) + --str; + uputc(c); + uwarnx(UWARNX + "unknown escape sequence `\\%c'", c); + rval = 1; + } else + s_prt(c); + continue; +#else + str++; + /* + * %b string octal constants are not like those in C. + * They start with a \0, and are followed by 0, 1, 2, + * or 3 octal digits. + */ + if (*str == '0') { + str++; + for (c = 3, value = 0; c-- && isodigit(*str); str++) { + value <<= 3; + value += octtobin(*str); + } + uputc(value); + str--; + } else if (*str == 'c') { + return (1); + } else { + str--; + str += print_escape(str); + } +#endif + } else { + uputc(*str); + } + str++; + } + + return (0); +} + +/* + * Print "standard" escape characters + */ +static int +print_escape(const char *str) +{ +#ifdef MKSH_PRINTF_BUILTIN + int c; + + s_ptr = str + 1; + c = unbksl(true, s_get, s_put); + if (c == -1) { + s_ptr = str + 1; + switch ((c = *s_ptr++)) { + case '\\': + case '\'': + case '"': + break; + case '\0': + --s_ptr; + /* FALLTHROUGH */ + default: + uwarnx(UWARNX "unknown escape sequence `\\%c'", c); + rval = 1; + } + } + s_prt(c); + return (s_ptr - str - 1); +#else + const char *start = str; + int value; + int c; + + str++; + + switch (*str) { + case '0': case '1': case '2': case '3': + case '4': case '5': case '6': case '7': + for (c = 3, value = 0; c-- && isodigit(*str); str++) { + value <<= 3; + value += octtobin(*str); + } + uputc(value); + return (str - start - 1); + /* NOTREACHED */ + + case 'x': + str++; + for (value = 0; isxdigit(*str); str++) { + value <<= 4; + value += hextobin(*str); + } + if (value > UCHAR_MAX) { + uwarnx(UWARNX "escape sequence out of range for character"); + rval = 1; + } + uputc(value); + return (str - start - 1); + /* NOTREACHED */ + + case '\\': /* backslash */ + uputc('\\'); + break; + + case '\'': /* single quote */ + uputc('\''); + break; + + case '"': /* double quote */ + uputc('"'); + break; + + case 'a': /* alert */ + uputc('\a'); + break; + + case 'b': /* backspace */ + uputc('\b'); + break; + + case 'e': /* escape */ + uputc(033); + break; + + case 'f': /* form-feed */ + uputc('\f'); + break; + + case 'n': /* newline */ + uputc('\n'); + break; + + case 'r': /* carriage-return */ + uputc('\r'); + break; + + case 't': /* tab */ + uputc('\t'); + break; + + case 'v': /* vertical-tab */ + uputc('\v'); + break; + + default: + uputc(*str); + uwarnx(UWARNX "unknown escape sequence `\\%c'", *str); + rval = 1; + } + + return (1); +#endif +} + +static char * +mklong(const char *str, int ch) +{ + static char *copy; + static int copysize; + int len; + + len = strlen(str) + 2; + if (copysize < len) { + char *newcopy; + copysize = len + 256; + + newcopy = realloc(copy, copysize); + if (newcopy == NULL) { + copysize = 0; + free(copy); + copy = NULL; + return (NULL); + } + copy = newcopy; + } + (void) memmove(copy, str, len - 3); + copy[len - 3] = 'l'; + copy[len - 2] = ch; + copy[len - 1] = '\0'; + return (copy); +} + +static int +getchr(void) +{ + if (!*gargv) + return ((int)'\0'); + return ((int)**gargv++); +} + +static const char * +getstr(void) +{ + if (!*gargv) + return (""); + return (*gargv++); +} + +static const char *number = "+-.0123456789"; +static int +getinteger(void) +{ + if (!*gargv) + return (0); + + if (vstrchr(number, **gargv)) + return (atoi(*gargv++)); + + return (0); +} + +static long +getlong(void) +{ + long val; + char *ep; + + if (!*gargv) + return (0L); + + if (**gargv == '\"' || **gargv == '\'') + return ((long)*((*gargv++)+1)); + + errno = 0; + val = strtol(*gargv, &ep, 0); + check_conversion(*gargv++, ep); + return (val); +} + +static unsigned long +getulong(void) +{ + unsigned long val; + char *ep; + + if (!*gargv) + return (0UL); + + if (**gargv == '\"' || **gargv == '\'') + return ((unsigned long) *((*gargv++)+1)); + + errno = 0; + val = strtoul(*gargv, &ep, 0); + check_conversion(*gargv++, ep); + return (val); +} + +#ifndef MKSH_PRINTF_BUILTIN +static double +getdouble(void) +{ + double val; + char *ep; + + if (!*gargv) + return (0.0); + + if (**gargv == '\"' || **gargv == '\'') + return ((double)*((*gargv++)+1)); + + errno = 0; + val = strtod(*gargv, &ep); + check_conversion(*gargv++, ep); + return (val); +} +#endif + +static void +check_conversion(const char *s, const char *ep) +{ + if (*ep) { + if (ep == s) + uwarnx(UWARNX "%s: expected numeric value", s); + else + uwarnx(UWARNX "%s: not completely converted", s); + rval = 1; + } else if (errno == ERANGE) { + uwarnx(UWARNX "%s: %s", s, strerror(ERANGE)); + rval = 1; + } +} + +static int +usage(void) +{ + ufprintf(ustderr, "usage: printf format [arg ...]\n"); + return (1); +} + +#ifdef MKSH_PRINTF_BUILTIN +static int +s_get(void) +{ + return (*s_ptr++); +} + +static void +s_put(int c MKSH_A_UNUSED) +{ + --s_ptr; +} + +static void +s_prt(int c) +{ + char ts[4]; + + if ((unsigned int)c < 0x100) { + ts[0] = c; + c = 1; + } else + c = utf_wctomb(ts, c - 0x100); + + shf_write(ts, c, shl_stdout); +} +#endif