This is the mail archive of the cygwin-announce mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Updated: bash-3.0-7

Hash: SHA1

A new release of bash, 3.0-7, is available, replacing 2.05b-17.


A bug in the postinstall script of ash-20040127-2 and bash-3.0-6 lets
you end up with no /bin/sh.exe at all.  Do not install these versions
if your mirror of choice only provides these versions.

Wait for 20040127-3 and bash-3.0-7 to show up on the mirror and install

This is a new (well, 11 month old) upstream release, and includes all
official upstream patches.  It also contains various cygwin-specific
patches to work around known bugs in the 2.05b release that were not fixed
upstream by the 3.0 release.  It requires cygwin 1.5.18 or later.

This release also marks the switch in the cygwin distribution such that
/bin/sh is now bash, not ash, similar to Linux distributions.  Both the
ash and bash packages have cooperated, so hopefully there will be no
problems performing the upgrade regardless of how you use setup.exe to
select the new versions.

Bash is an sh-compatible shell that incorporates useful features from the
Korn shell (ksh) and C shell (csh).  It is intended to conform to the IEEE
POSIX P1003.2/ISO 9945.2 Shell and Tools standard.  It offers functional
improvements over sh for both programming and interactive use. In
addition, most sh scripts can be run by Bash without modification.

To update your installation, click on the "Install Cygwin now" link on
the web page.  This downloads setup.exe to your
system.  Save it and run setup, answer the questions, then look for
'bash' in the 'Base' category (it should already be selected).

Note that downloads from (aka aren't
allowed due to bandwidth limitations.  This means that you will need
to find a mirror which has this update, please choose the one nearest
to you:

If you want to make a point or ask a question the Cygwin mailing
list is the appropriate place.

- --
Eric Blake
(new) cygwin bash maintainer

Excerpt from /usr/share/doc/bash-3.0/NEWS:
This is a terse description of the new features added to bash-3.0 since
the release of bash-2.05b.  As always, the manual page (doc/bash.1) is
the place to look for complete descriptions.

1.  New Features in Bash

a.  ANSI string expansion now implements the \x{hexdigits} escape.

b.  There is a new loadable `strftime' builtin.

c.  New variable, COMP_WORDBREAKS, which controls the readline completer's
    idea of word break characters.

d.  The `type' builtin no longer reports on aliases unless alias expansion
    will actually be performed.

e.  HISTCONTROL is now a colon-separated list of values, which permits
    more extensibility and backwards compatibility.

f.  HISTCONTROL may now include the `erasedups' option, which causes all lines
    matching a line being added to be removed from the history list.

g.  `configure' has a new `--enable-multibyte' argument that permits multibyte
    character support to be disabled even on systems that support it.

h.  New variables to support the bash debugger:  BASH_ARGC, BASH_ARGV,

i.  FUNCNAME has been changed to support the debugger: it's now an array

j.  for, case, select, arithmetic commands now keep line number information
    for the debugger.

k.  There is a new `RETURN' trap executed when a function or sourced script
    returns (not inherited child processes; inherited by command substitution
    if function tracing is enabled and the debugger is active).

l.  New invocation option:  --debugger.  Enables debugging and turns on new
    `extdebug' shell option.

m.  New `functrace' and `errtrace' options to `set -o' cause DEBUG and ERR
    traps, respectively, to be inherited by shell functions.  Equivalent to
    `set -T' and `set -E' respectively.  The `functrace' option also controls
    whether or not the DEBUG trap is inherited by sourced scripts.

n.  The DEBUG trap is run before binding the variable and running the action
    list in a `for' command, binding the selection variable and running the
    query in a `select' command, and before attempting a match in a `case'

o.  New `--enable-debugger' option to `configure' to compile in the debugger
    support code.

p.  `declare -F' now prints out extra line number and source file information
    if the `extdebug' option is set.

q.  If `extdebug' is enabled, a non-zero return value from a DEBUG trap causes
    the next command to be skipped, and a return value of 2 while in a
    function or sourced script forces a `return'.

r.  New `caller' builtin to provide a call stack for the bash debugger.

s.  The DEBUG trap is run just before the first command in a function body is
    executed, for the debugger.

t.  `for', `select', and `case' command heads are printed when `set -x' is

u.  There is a new {x..y} brace expansion, which is shorthand for {x.x+1,
    x+2,...,y}.  x and y can be integers or single characters; the sequence
    may ascend or descend; the increment is always 1.

v.  New ksh93-like ${!array[@]} expansion, expands to all the keys (indices)
    of array.

w.  New `force_fignore' shopt option; if enabled, suffixes specified by
    FIGNORE cause words to be ignored when performing word completion even
    if they're the only possibilities.

x.  New `gnu_errfmt' shopt option; if enabled, error messages follow the `gnu
    style' (filename:lineno:message) format.

y.  New `-o bashdefault' option to complete and compgen; if set, causes the
    whole set of bash completions to be performed if the compspec doesn't
    result in a match.

z.  New `-o plusdirs' option to complete and compgen; if set, causes directory
    name completion to be performed and the results added to the rest of the
    possible completions.

aa. `kill' is available as a builtin even when the shell is built without
    job control.

bb. New HISTTIMEFORMAT variable; value is a format string to pass to
    strftime(3).  If set and not null, the `history' builtin prints out
    timestamp information according to the specified format when displaying
    history entries.  If set, bash tells the history library to write out
    timestamp information when the history file is written.

cc. The [[ ... ]] command has a new binary `=~' operator that performs
    extended regular expression (egrep-like) matching.

dd. `configure' has a new `--enable-cond-regexp' option (enabled by default)
    to enable the =~ operator and regexp matching in [[ ... ]].

ee. Subexpressions matched by the =~ operator are placed in the new
    BASH_REMATCH array variable.

ff. New `failglob' option that causes an expansion error when pathname
    expansion fails to produce a match.

gg. New `set -o pipefail' option that causes a pipeline to return a failure
    status if any of the processes in the pipeline fail, not just the last

hh. printf builtin understands two new escape sequences:  \" and \?.

ii. `echo -e' understands two new escape sequences:  \" and \?.

jj. The GNU `gettext' package and libintl have been integrated; the shell's
    messages can be translated into different languages.

kk. The `\W' prompt expansion now abbreviates $HOME as `~', like `\w'.

ll. The error message printed when bash cannot open a shell script supplied
    as argument 1 now includes the name of the shell, to better identify
    the error as coming from bash.

mm. The parameter pattern removal and substitution expansions are now much
    faster and more efficient when using multibyte characters.

nn. The `jobs', `kill', and `wait' builtins now accept job control notation
    even if job control is not enabled.

oo. The historical behavior of `trap' that allows a missing `action' argument
    to cause each specified signal's handling to be reset to its default is
    now only supported when `trap' is given a single non-option argument.

2.  New Features in Readline

a.  History expansion has a new `a' modifier equivalent to the `g' modifier
    for compatibility with the BSD csh.

b.  History expansion has a new `G' modifier equivalent to the BSD csh `g'
    modifier, which performs a substitution once per word.

c.  All non-incremental search operations may now undo the operation of
    replacing the current line with the history line.

d.  The text inserted by an `a' command in vi mode can be reinserted with

e.  New bindable variable, `show-all-if-unmodified'.  If set, the readline
    completer will list possible completions immediately if there is more
    than one completion and partial completion cannot be performed.

f.  There is a new application-callable `free_history_entry()' function.

g.  History list entries now contain timestamp information; the history file
    functions know how to read and write timestamp information associated
    with each entry.

h.  Four new key binding functions have been added:


i.  New application variable, rl_completion_quote_character, set to any
    quote character readline finds before it calls the application completion

j.  New application variable, rl_completion_suppress_quote, settable by an
    application completion function.  If set to non-zero, readline does not
    attempt to append a closing quote to a completed word.

k.  New application variable, rl_completion_found_quote, set to a non-zero
    value if readline determines that the word to be completed is quoted.
    Set before readline calls any application completion function.

l.  New function hook, rl_completion_word_break_hook, called when readline
    needs to break a line into words when completion is attempted.  Allows
    the word break characters to vary based on position in the line.

m.  New bindable command: unix-filename-rubout.  Does the same thing as
    unix-word-rubout, but adds `/' to the set of word delimiters.

n.  When listing completions, directories have a `/' appended if the
    `mark-directories' option has been enabled.
Version: GnuPG v1.4.0 (Cygwin)
Comment: Public key at
Comment: Using GnuPG with Thunderbird -


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]