Skip to content

Changelog posh (0.13.2)


posh (0.13.2) unstable; urgency=medium

   * Do not break things if `unset -f` is used upon a nonexistent
     function.  closes: #911264.

posh (0.13.1) unstable; urgency=medium

   * Brown paper bag.

posh (0.13) unstable; urgency=medium

   * Drop -dbg package.
   * Patch from Christian Franke to fix missing initialization of
     st_head.quote.  closes: #636601.
   * Patch from Stephane Chazelas to fix `kill $$` killing the parent.
     closes: #697289.


posh (0.12.6) unstable; urgency=medium

   * tests/th: patch from Michał Górny to use modern perl getopts,
     thus obviating build dependency on libperl4-corelibs-perl.
     closes: #814688.


posh (0.12.5) unstable; urgency=medium

   * Patch from John Salmon to correct fencepost error in PWD
     initialization.  closes: #777427.
   * Suppress linemarker generation when building signal table, as
     gcc 5 gets crazy.  closes: #778069.
   * Blindly assume that signal handlers return void.
   * Switch to dh.

posh (0.12.4) unstable; urgency=medium

   * Correct misspelling of "--".  closes: #774004.
   * Patch from Chris Lamb to make the build reproducible.
     closes: #777395.
   * Patch from John Salmon to use memmove instead of memcpy in
     debunk().  closes: #777493.


posh (0.12.3) unstable; urgency=medium

   * Ten patches from Jonathan Nieder to adjust test suite.  closes: #603659.

posh ( unstable; urgency=medium

   * Bump to Standards-Version 3.9.5.
   * Add libperl4-corelibs-perl build-dep for
     closes: #738412.


posh (0.12.2) unstable; urgency=low

   * Add posh-dbg package.  closes: #703343.
   * Disallow simple commands as function bodies.  closes: #552730.

posh (0.12.1) unstable; urgency=low

   * Add missing compat header include, thanks to Makoto Fujiwara.
     closes: #712009.

posh (0.12) unstable; urgency=high

   * Fix shell flag handling, broken since 0.9.1.  closes: #707778.

posh (0.11.1) unstable; urgency=low

   * Patch from Stefano Rivera to build with eglibc 2.16.  closes: #692537.
   * Don't segfault when errorf(NULL) is called.  closes: #703346, #690927.
   * Fix Vcs-Git header.


posh (0.11) unstable; urgency=low

   * Disable ~+ and ~- expansion.  closes: #692003.
   * Tweak expand-1 test to ensure that ~+ and ~- aren't expanded.
   * Bump to Standards-Version 3.9.4.

posh (0.10.2) unstable; urgency=low

   * Fix "nostrip" build.  closes: #674703.
   * Fix Italian Language-Team email address.  closes: #660020.
   * Don't segfault when bi_errorf(NULL) is called.  closes: #674701.
   * Bump to Standards-Version 3.9.3.


posh (0.10.1) unstable; urgency=low

   * Use dpkg-buildflags.
   * Add build-arch and build-indep targets.
   * Bump to Standards-Version 3.9.2.

posh (0.10) unstable; urgency=low

   * Do not treat a bad signal passed to the trap builtin as a
     fatal/syntax error.

posh (0.9.2) unstable; urgency=low

   * Update Vcs-Git headers.
   * Fix build-time signal list generation.  closes: #612844.

posh (0.9.1) unstable; urgency=low

   * Align man page SYNOPSIS and actually-supported command-line options
     with one another.  closes: #610762.


posh (0.9) unstable; urgency=low

   * Inherit IFS from environment.  closes: #603438.
   * da.po: Danish translation from Joe Dalton.  closes: #586596.
   * Change debconf text to claim that the default /bin/sh is dash
     instead of bash.  closes: #554217.

posh (0.8.6) unstable; urgency=low

   * Bump to Standards-Version 3.9.1.
     - Drop kill builtin.
     - Support trap numbers 1, 2, 3, 6, 9, 13, 14, and 15.

posh (0.8.5) unstable; urgency=low

   [ Thorsten Glaser ]
   * Apply bugfix from mksh overhauling the code for substitutions
     such as ${foo:-bar} and "${foo+bar}" for standards compliance
     and pull the test cases that go with it.
   [ Clint Adams ]
   * Bump to Standards-Version 3.8.4.
   * Switch to 3.0 (native) source format.


posh (0.8.4) unstable; urgency=medium

   * Update regression-56 test with proper exit codes.
   * Fix memory allocation in canonicalize_file_name.  closes: #551511.
   * Replace pdksh area allocation routines with mksh's.

posh (0.8.3) unstable; urgency=low

   * Cope with sysconf(_SC_CHILD_MAX) returning -1.
   * Ignore UTF-8 BOMs.

posh (0.8.2) unstable; urgency=low

   * Additional tweaks to testsuite.
   * Patch from Thorsten Glaser to fix lazy evaluation of assignments in
     ternary ops.  closes: #445651.

posh (0.8.1) unstable; urgency=low

   * Update debian/copyright.
   * Incorporate mksh test suite.
   * Remove tests duplicated by the mksh tests.
   * Change output of export -p and readonly -p to actually conform to
     POSIX (by printing values).
   * Partially tweak the mksh testsuite to work with posh.

posh (0.8) unstable; urgency=low

   * Steal exit code test from mksh.
   * Steal mksh fix for non-interactive file-not-found exit status.
     closes: #548747.
   * Error out with 126 when user tries to execute a directory as a non-
     interactive script.  closes: #548688.
   * Remove cd-history test.

posh (0.7.2) unstable; urgency=medium

   * Apply patch from Robert Luberda to fix interaction between `set -e`
     and `true; false && true`.  closes: #547238.

posh (0.7.1) unstable; urgency=low

   * Steal mksh's way of handling set -e with subshell return values.
     closes: #546332.

posh (0.7) unstable; urgency=low

   * Remove some dead code for export/readonly/set.
   * Support multiple variables and assignments as arguments to 'local'.
     closes: #544358.
   * Bump to Standards-Version 3.8.3.

posh (0.6.18) unstable; urgency=medium

   * Adjust stderr-pattern on utilities-8 test.
   * Even if set -e is set, do not exit on negated commands, and add a
     regression test for this.  closes: #514858.
   * Bump to Standards-Version 3.8.1.

posh (0.6.17) unstable; urgency=high

   * Fix another set -x segfault.  closes: #515278.
   * Update POSH_VERSION variable properly.  closes: #515832.
   * Fix signal-handling segfault.  closes: #515834.

posh (0.6.16) unstable; urgency=medium

   * Fix segfault in XTRACE.  closes: #515278.

posh (0.6.15) unstable; urgency=low

   * Vcs-* header fixes from Todd Zullinger
   * Treat IFS as a field separator instead of a field terminator.
     closes: #512438.


posh (0.6.14) unstable; urgency=low

   * exec.c: Don't keep assignments in the execution of functions, since
     POSIX seems to forbid it.  closes: #485463.

posh (0.6.13) unstable; urgency=medium

   * Cast first arguments to eval().

posh (0.6.12) unstable; urgency=low

   * Silence some warnings.
   * Rely on sysconf() existing.
   * Steal some timer stuff from mksh.
   * Use int32_t instead of INT32.

posh (0.6.11) unstable; urgency=low

   * Get rid of useless WAIT_T typedef.
   * Drop support for systems without waitpid() and sigprocmask().

posh (0.6.10) unstable; urgency=low

   * Revert to globit for performance reasons.  closes: #485607.
   * Also bring back xstrcmp and drop fnmatch for the globit change.
   * Bump to Standards-Version 3.8.0.

posh (0.6.9) unstable; urgency=medium

   * Steal mksh eval code to fix bad substitution error error.
     closes: #484936.

posh (0.6.8) unstable; urgency=medium

   * Treat "local" builtin as non-special.  closes: #483860.
   * Don't use ENV for regression-52 test.

posh (0.6.7) unstable; urgency=low

   * Don't process ENV environment variable on startup.  closes: #478850.

posh (0.6.6) unstable; urgency=medium

   * Fix breakage with '.' and '..' in cd builtin.  closes: #474480.

posh (0.6.5) unstable; urgency=low

   * Adjust table routines to allow block-level memory management.
   * More documentation cleanup.

posh (0.6.4) unstable; urgency=medium

   * Fix local builtin to report correct arguments error messages.
   * Avoid double-free with local variables (while introducing a memory
     leak).  closes: #472959.

posh (0.6.3) unstable; urgency=low

   * Fix return code from 'local'.
   * Update BUGS section of man page.
   * Additional cosmetic fixes to man page.

posh (0.6.2) unstable; urgency=medium

   * Really fix 'local' builtin to handle multiple arguments.
   * Document all builtins in the man page.

posh (0.6.1) unstable; urgency=low

   * Add Vcs-Git and Vcs-Browser control fields.
   * Fix 'local' builtin to handle multiple arguments.


posh (0.6) unstable; urgency=low

   * Bump to Standards-Version 3.7.3.
     - Support 'local' for scoping of parameters/variables.
     - Support -a and -o binary operators to test/[ builtins.

posh (0.5.11) unstable; urgency=low

   * Steal 112_OpenBSD-heredoc-quote.dpatch from pdksh package.

posh (0.5.10) unstable; urgency=low

   * Fix typo in arith test suite.

posh (0.5.9) unstable; urgency=low

   * Switch menu section to Applications/Shells.

posh (0.5.8) unstable; urgency=low

   * Print an error if the dot builtin is invoked with no argument.
     closes: #415170.

posh (0.5.7) unstable; urgency=low

   * Apply man page typo fixes from A. Costa.  closes: #437894.

posh (0.5.6) unstable; urgency=medium

   * Do not accept signal numbers (except for 0) for kill or trap.
     closes: #436438.

posh (0.5.5) unstable; urgency=low

   * debconf .po update
     - add pt, Luísa Lourenço <>, closes: #415222.
   * Miscellaneous minor man page cleanups.


posh (0.5.4) unstable; urgency=medium

   * Make backtick command substitution behave more like historical
     sh, and not as how people keep interpreting POSIX (potentially
     incorrectly).  closes: #400636.

posh (0.5.3) unstable; urgency=low

   * Additional tweaking of testsuite for shell portability.

posh (0.5.2) unstable; urgency=medium

   * Bump to Standards-Version 3.7.2.
   * Change sort in generating signal list to POSIX-conformant
   * Make testsuite slightly easier to use on other shells.

posh (0.5.1) unstable; urgency=medium

   * Temporarily fix version constant.  closes: #397596.
   * Fix man page to refer to POSH_VERSION instead of SH_VERSION.

posh (0.5) unstable; urgency=high

   * Don't segfault when trying to cd -L to nonexistent directories.
     closes: #366943.

posh (0.4.7) unstable; urgency=low

   * Strip .comment section from binary.
   * Properly error out on "test asdf -ge 0".  closes: #273347.

posh (0.4.6) unstable; urgency=low

   * Excise SPATTERN stuff from the lexer.

posh (0.4.5) unstable; urgency=low

   * Fix man page to not mention non-existent typeset builtin.
     closes: #347239.
   * Get rid of bad chars in man page.  closes: #324261.
   * debconf .po updates:
     - fix sv, Daniel Nylander <>, closes: #338856.
     - add it, Andrea Bolognani <>, closes: #343926.


posh (0.4.4) unstable; urgency=low

   * Stop treating $(<file) specially.

posh ( unstable; urgency=low

   * Change debconf-2.0 dependency to debconf | debconf-2.0.
     closes: #332073.

posh (0.4.3) unstable; urgency=medium

   * Fix XTRACE-scoping bug.

posh (0.4.2) unstable; urgency=medium

   * Fix eval builtin options parsing bug non-portably.
     closes: #325381.
   * Add regression test to check for proper eval builtin options
     parsing behavior.

posh (0.4.1) unstable; urgency=low

   * Depend on debconf-2.0 instead of debconf.

posh (0.4) unstable; urgency=medium

   * Don't scope XTRACE (set -x) locally within functions.

posh (0.3.18) unstable; urgency=low

   * Update manpage to DocBook 4.4.  Remove more inaccurate
   * Remove extraneous set_array code.
   * Remove some extraneous ksh function handling code.
   * Bump Standards-Version to 3.6.2.
   * Move menu file to /usr/share/menu.

posh (0.3.17) unstable; urgency=medium

   * Remove case-ignoring functionality of trap builtin.
     closes: #314511.
   * Add regression test to check for proper rejection of
     lowercase signal names.

posh (0.3.16) unstable; urgency=low

   * Czech debconf .po from Miroslav Kure.  closes: #309128.

posh (0.3.15) unstable; urgency=low

   * Get rid of xstrcmp().


posh (0.3.14) unstable; urgency=medium

   * ifdef out shf_smprintf.

posh (0.3.13) unstable; urgency=medium

   * Some documentation cleanup and fixes.
   * Get the Latin-1 non-breakable spaces out of the manpage for
     now.  closes: #280624.
     Hopefully the DocBook XSL stylesheets will be fixed some year.

posh (0.3.12) unstable; urgency=medium

   * Add regression test for unset builtin.  closes: #273346.
   * Make "eval false || true" not exit with -e.  closes: #269066.

posh (0.3.11) unstable; urgency=medium

   * Fix return value of unset builtin when parameters are not set;
     (according to POSIX, this is not an error condition).

posh (0.3.10) unstable; urgency=low

   * Remove extraneous operators from "test" builtin (-a, -G, -H, -k,
     -O, -o, <, >, -ef, -nt, -ot).

posh (0.3.9) unstable; urgency=medium

   * trap builtin now errors when no signals are specified.
     closes: #265103.
   * Move trap-related regression tests to their own file,
     and add one to check for error on "trap 0".

posh (0.3.8) unstable; urgency=high

   * Fix tilde expansion thinko introduced in 0.3.4.

posh (0.3.7) unstable; urgency=low

   * Remove some cruft left around from ksh functions.

posh (0.3.6) unstable; urgency=low

   * Add a better regression test for umask.
   * Drop support of ksh88 ":[#%]+"-type trimming.
   * Adjust regression tests to make sure ${blah:#blah} gives
     an error.

posh (0.3.5) unstable; urgency=low

   * Clean unused variables left after 0.3.4.
   * Add prebuild target to debian/rules.
   * Drop qsort altogether.

posh (0.3.4) unstable; urgency=low

   * Fix most of the signedness comparison warnings.
   * Remove homedir caching code.
   * Switch specials, keywords, aliases, builtins, vars, and funs hashes
     to use libc tsearch() and friends.
   * Remove old table hash routines.

posh (0.3.3) unstable; urgency=low

   * Rename custom table functions to prevent conflicts with
     b-tree functions when search.h is included.
   * Remove vestigial tracked alias code.

posh (0.3.2) unstable; urgency=low

   * Make getn() use strtol().
   * Mark unused function parameters to avoid gcc warnings.

posh (0.3.1) unstable; urgency=low

   * Use libc's instead of internal qsort.
   * Add -W to CFLAGS.

posh (0.3) unstable; urgency=high

   * Fix option-parsing bug with return builtin.  closes: #242247.

posh (0.2.39) unstable; urgency=low

   * Convert manpage to DocBook.

posh (0.2.38) unstable; urgency=low

   * Drop "function" keyword.


posh (0.2.37) unstable; urgency=low

   * Add Dutch debconf template from "cobaco".  closes: #205166.

posh (0.2.36) unstable; urgency=low

   * Apply patch from Carlos Valdivia Yagüe to add proper
     headers to the Spanish debconf template.
   * Use snprintf to generate base10 strings instead of ulton().
   * Remove ulton().

posh (0.2.35) unstable; urgency=low

   * Remove regression test for time command, since we no longer have that.

posh (0.2.34) unstable; urgency=low

   * Apply patch from Christian Perrier to switch to gettext-based
     debconf templates.  closes: #201786.
   * Bump to Standards-Version: 3.6.0.

posh (0.2.33) unstable; urgency=low

   * Only allow alphanumerics and underscores in function names.
   * Use canonicalize_file_name instead of simplify_path.
   * Remove last vestiges of ksh globbing from the lexer.
   * Use POSIX glob() instead of pdksh globit.

posh (0.2.32) unstable; urgency=medium

   * Move [/test builtins to transitional interface.
   * Remove transitional interface.

posh (0.2.31) unstable; urgency=low

   * Add compatibility code for get_current_dir_name.
   * Add compatibility code for canonicalize_file_name.
   * Move set builtin to transitional interface.
   * Move unset builtin to transitional interface.
   * Move eval builtin to transitional interface.
   * Move builtin and exec builtins to transitional interface.
   * Move trap builtin to transitional interface.
   * Move exit/return builtins to transitional interface.
   * Move break/continue builtins to transitional interface.
   * Move times builtin to transitional interface.
   * Remove time builtin.
   * Move command builtin to transitional interface.
   * Remove fg/bg builtins.
   * Move getopts builtin to transitional interface.

posh (0.2.30) unstable; urgency=high

   * Use stdarg instead of varargs unconditionally.

posh (0.2.29) unstable; urgency=high

   * Move '.' builtin to transitional interface.
   * Avoid option segfaults in wait and shift builtins.
   * Move kill builtin to transitional interface.
   * Move export/readonly builtins to transitional interface.  Drop typeset.

posh (0.2.28) unstable; urgency=high

   * Don't do tilde expansion after equals signs when there's no assignment
     involved.  closes: #186995.
   * Add regression test to check for this.

posh (0.2.27) unstable; urgency=low

   * Use fnmatch() for globbing.

posh (0.2.26) unstable; urgency=low

   * Move wait and pwd builtins to transitional interface.

posh (0.2.25) unstable; urgency=low

   * Remove support for read builtin without argument.

posh (0.2.24) unstable; urgency=low

   * Ditch print builtin.
   * Strip down echo builtin; make it almost POSIX-compliant.

posh (0.2.23) unstable; urgency=low

   * Move shift and umask builtins to transitional interface.

posh (0.2.22) unstable; urgency=low

   * Add flags field to builtin tables.
   * Don't waste time checking if 'f' is the first character of false
     when we already know it's false.

posh (0.2.21) unstable; urgency=low

   * No longer support multiple arguments to cd builtin.
   * Fix EINTR problem in test harness.
   * Disable the three tests which use posh -i and seem to cause trouble with
     sbuild.  closes: #181305.

posh (0.2.20) unstable; urgency=low

   * Get rid of broken times() workaround.
   * Remove jobs builtin.

posh (0.2.19) unstable; urgency=low

   * Correct regression-12 to match SUSv3, and remove expected-fail.
   * Correct regression-56 to match SUSv3, and remove expected-fail.

posh (0.2.18) unstable; urgency=low

   * Change error output to be more like what Akim Demaille prefers.

posh (0.2.17) unstable; urgency=low

   * Get rid of fake SIGERR.
   * Remove ERR trap from xxx-status-2 test.
   * Set expected-fail on regression-12 and regression-56.
   * Run "make check" as part of build.


posh (0.2.16) unstable; urgency=low

   * Update to Standards-Version 3.5.8.

posh (0.2.15) unstable; urgency=low

   * debian/rules cleanup.
   * OpenBSD pdksh history.c cleanups.
   * Use uid_t for ksheuid.

posh (0.2.14) unstable; urgency=low

   * Update to Standards-Version
   * Support 'noopt'.

posh (0.2.13) unstable; urgency=low

   * Compress changelog.
   * Replace alloc.c with version from OpenBSD's pdksh, to match Debian's
     pdksh 5.2.14-7.

posh (0.2.12) unstable; urgency=high

   * Add build-dep on debconf-utils.

posh (0.2.11) unstable; urgency=medium

   * Remove last vestiges of trackall.
   * Fix -v and -x muddling which occurred in 0.2.7.

posh (0.2.10) unstable; urgency=low

   * Remove trackall option.
   * Some manpage cleanup.

posh (0.2.9) unstable; urgency=low

   * Remove some nonexistent commands from the manpage.
   * Remove debhelper stuff.  Now no build-deps outside of build-essential.

posh (0.2.8) unstable; urgency=high

   * Put build system under automake.
   * Remove configure test and compatibility code for strerror.
   * Remove a few invalid tests.  Convert more tests from the testsuite,
   including the one that reveals that I've broken signed integers.
   * Fix signed integer arithmetic!

posh (0.2.7) unstable; urgency=medium

   * Remove many invalid tests from tests directory.  Convert a few from the
   rudimentary POSIX/Debian test suite that was on p.d.o.  There are still
   about 8 tests which will fail.
   * Use sigsetjmp unconditionally instead of configure-testing for it.
   * Get rid of do_phys_path(), use realpath() instead.
   * Don't deal with argv[] weirdness.
   * Remove restricted shell functionality.
   * Remove 'posix' option, making that behavior default.
   * Remove configure test and compatibility code for strstr, memset,
   memmove, and string.h.

posh (0.2.6) unstable; urgency=low

   * Remove -L, -R, -U, -Z, -f, -l, -t, -u options to typeset builtin.
   Total removal of the typeset builtin will be deferred until later.
   * Remove version.c; POSH_VERSION is now set through autoconf.
   * Remove edit.o (saving a whopping 36 octets).
   * Further modernizations for autoconf 2.5.

posh (0.2.5) unstable; urgency=low

   * Remove 'physical' option.
   * Remove 'bgnice' option.
   * Remove 'keyword' option.
   * Remove 'markdirs' option.

posh (0.2.4) unstable; urgency=low

   * Use snprintf instead of shf_snprintf.
   * Fix new shf_vfprintf behavior.

posh (0.2.3) unstable; urgency=low

   * Fix typo in description.
   * Flatten OpenBSD/RedHat patches to pdksh.
   * Get make test to run even if the tests are not up to snuff.
   * Separate configure target from build target in debian/rules.

posh (0.2.2) unstable; urgency=low

   * Cleanup some unused variables.

posh (0.2.1) unstable; urgency=low

   * Remove sigact.[ch] by Simon J. Gerraty.
   * Relicense under GNU GPL.

posh (0.2.0) unstable; urgency=low

   * Remove ulimit builtin.
   * Remove non-standard options from read builtin.
   * Conform times builtin's output to IEEE Std 1003.1-2001.

posh (0.1.0) unstable; urgency=low

   * Fix arithmetic expressions to recognize octal and hex.

posh (0.0.1) unstable; urgency=low

   * Initial release.  (copied from pdksh 5.2.14-6).  closes: bug#150431.
   * Remove XSI kill extensions.
   * Remove type.
   * Remove command -[vV].
   * Remove XSI test extensions.
   * Steal ash's debconf templates and scripts.
   * Remove alias and unalias builtins.