pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/shells/bash Update to 4.3:



details:   https://anonhg.NetBSD.org/pkgsrc/rev/be0e00e16eb0
branches:  trunk
changeset: 631672:be0e00e16eb0
user:      wiz <wiz%pkgsrc.org@localhost>
date:      Wed Mar 12 10:08:46 2014 +0000

description:
Update to 4.3:

This is a terse description of the new features added to bash-4.3 since
the release of bash-4.2.  As always, the manual page (doc/bash.1) is
the place to look for complete descriptions.

1.  New Features in Bash

a.  The `helptopic' completion action now maps to all the help topics, not just
    the shell builtins.

b.  The `help' builtin no longer does prefix substring matching first, so
    `help read' does not match `readonly', but will do it if exact string
    matching fails.

c.  The shell can be compiled to not display a message about processes that
    terminate due to SIGTERM.

d.  Non-interactive shells now react to the setting of checkwinsize and set
    LINES and COLUMNS after a foreground job exits.

e.  There is a new shell option, `globasciiranges', which, when set to on,
    forces globbing range comparisons to use character ordering as if they
    were run in the C locale.

f.  There is a new shell option, `direxpand', which makes filename completion
    expand variables in directory names in the way bash-4.1 did.

g.  In Posix mode, the `command' builtin does not change whether or not a
    builtin it shadows is treated as an assignment builtin.

h.  The `return' and `exit' builtins accept negative exit status arguments.

i.  The word completion code checks whether or not a filename containing a
    shell variable expands to a directory name and appends `/' to the word
    as appropriate.  The same code expands shell variables in command names
    when performing command completion.

j.  In Posix mode, it is now an error to attempt to define a shell function
    with the same name as a Posix special builtin.

k.  When compiled for strict Posix conformance, history expansion is disabled
    by default.

l.  The history expansion character (!) does not cause history expansion when
    followed by the closing quote in a double-quoted string.

m.  `complete' and its siblings compgen/compopt now takes a new `-o noquote'
    option to inhibit quoting of the completions.

n.  Setting HISTSIZE to a value less than zero causes the history list to be
    unlimited (setting it 0 zero disables the history list).

o.  Setting HISTFILESIZE to a value less than zero causes the history file size
    to be unlimited (setting it to 0 causes the history file to be truncated
    to zero size).

p.  The `read' builtin now skips NUL bytes in the input.

q.  There is a new `bind -X' option to print all key sequences bound to Unix
    commands.

r.  When in Posix mode, `read' is interruptible by a trapped signal.  After
    running the trap handler, read returns 128+signal and throws away any
    partially-read input.

s.  The command completion code skips whitespace and assignment statements
    before looking for the command name word to be completed.

t.  The build process has a new mechanism for constructing separate help files
    that better reflects the current set of compilation options.

u.  The -nt and -ot options to test now work with files with nanosecond
    timestamp resolution.

v.  The shell saves the command history in any shell for which history is
    enabled and HISTFILE is set, not just interactive shells.

w.  The shell has `nameref' variables and new -n(/+n) options to declare and
    unset to use them, and a `test -R' option to test for them.

x.  The shell now allows assigning, referencing, and unsetting elements of
    indexed arrays using negative subscripts (a[-1]=2, echo ${a[-1]}) which
    count back from the last element of the array.

y.  The {x}<word redirection feature now allows words like {array[ind]} and
    can use variables with special meanings to the shell (e.g., BASH_XTRACEFD).

z.  There is a new CHILD_MAX special shell variable; its value controls the
    number of exited child statues the shell remembers.

aa. There is a new configuration option (--enable-direxpand-default) that
    causes the `direxpand' shell option to be enabled by default.

bb. Bash does not do anything special to ensure that the file descriptor
    assigned to X in {x}<foo remains open after the block containing it
    completes.

cc. The `wait' builtin has a new `-n' option to wait for the next child to
    change status.

dd. The `printf' %(...)T format specifier now uses the current time if no
    argument is supplied.

ee. There is a new variable, BASH_COMPAT, that controls the current shell
    compatibility level.

ff. The `popd' builtin now treats additional arguments as errors.

gg. The brace expansion code now treats a failed sequence expansion as a
    simple string and will continue to expand brace terms in the remainder
    of the word.

hh. Shells started to run process substitutions now run any trap set on EXIT.

ii. The fc builtin now interprets -0 as the current command line.

jj. Completing directory names containing shell variables now adds a trailing
    slash if the expanded result is a directory.

kk. `cd' has a new `-@' option to browse a file's extended attributes on
    systems that support O_XATTR.

ll. The test/[/[[ `-v variable' binary operator now understands array
    references.

2.  New Features in Readline

a.  Readline is now more responsive to SIGHUP and other fatal signals when
    reading input from the terminal or performing word completion but no
    longer attempts to run any not-allowable functions from a signal handler
    context.

b.  There are new bindable commands to search the history for the string of
    characters between the beginning of the line and the point
    (history-substring-search-forward, history-substring-search-backward)

c.  Readline allows quoted strings as the values of variables when setting
    them with `set'.  As a side effect, trailing spaces and tabs are ignored
    when setting a string variable's value.

d.  The history library creates a backup of the history file when writing it
    and restores the backup on a write error.

e.  New application-settable variable: rl_filename_stat_hook: a function called
    with a filename before using it in a call to stat(2).  Bash uses it to
    expand shell variables so things like $HOME/Downloads have a slash
    appended.

f.  New bindable function `print-last-kbd-macro', prints the most-recently-
    defined keyboard macro in a reusable format.

g.  New user-settable variable `colored-stats', enables use of colored text
    to denote file types when displaying possible completions (colored analog
    of visible-stats).

h.  New user-settable variable `keyseq-timout', acts as an inter-character
    timeout when reading input or incremental search strings.

i.  New application-callable function: rl_clear_history. Clears the history list
    and frees all readline-associated private data.

j.  New user-settable variable, show-mode-in-prompt, adds a characters to the
    beginning of the prompt indicating the current editing mode.

k.  New application-settable variable: rl_input_available_hook; function to be
    called when readline detects there is data available on its input file
    descriptor.

l.  Readline calls an application-set event hook (rl_event_hook) after it gets
    a signal while reading input (read returns -1/EINTR but readline does not
    handle the signal immediately) to allow the application to handle or
    otherwise note it.

m.  If the user-settable variable `history-size' is set to a value less than
    0, the history list size is unlimited.

n.  New application-settable variable: rl_signal_event_hook; function that is
    called when readline is reading terminal input and read(2) is interrupted
    by a signal.  Currently not called for SIGHUP or SIGTERM.

o.  rl_change_environment: new application-settable variable that controls
    whether or not Readline modifies the environment (currently readline
    modifies only LINES and COLUMNS).

diffstat:

 shells/bash/Makefile                             |   5 +-
 shells/bash/PLIST                                |  19 +++++-
 shells/bash/distinfo                             |  13 +--
 shells/bash/patches/patch-ai                     |  15 ----
 shells/bash/patches/patch-ak                     |  14 ----
 shells/bash/patches/patch-execute_cmd.c          |  31 ---------
 shells/bash/patches/patch-lib_readline_vi_mode.c |  79 ------------------------
 shells/bash/patches/patch-lib_sh_eaccess.c       |  37 -----------
 8 files changed, 24 insertions(+), 189 deletions(-)

diffs (286 lines):

diff -r f001efe394d5 -r be0e00e16eb0 shells/bash/Makefile
--- a/shells/bash/Makefile      Wed Mar 12 10:04:58 2014 +0000
+++ b/shells/bash/Makefile      Wed Mar 12 10:08:46 2014 +0000
@@ -1,10 +1,9 @@
-# $NetBSD: Makefile,v 1.60 2014/01/11 18:18:46 chopps Exp $
+# $NetBSD: Makefile,v 1.61 2014/03/12 10:08:46 wiz Exp $
 
-BASH_VERSION=          4.2
+BASH_VERSION=          4.3
 
 DISTNAME=      bash-${BASH_VERSION}
 #PKGNAME=      bash-${BASH_VERSION}.${BASH_PATCHLEVEL}
-PKGREVISION=   4
 CATEGORIES=    shells
 MASTER_SITES=  ${MASTER_SITE_GNU:=bash/} \
                ftp://ftp.cwru.edu/pub/bash/
diff -r f001efe394d5 -r be0e00e16eb0 shells/bash/PLIST
--- a/shells/bash/PLIST Wed Mar 12 10:04:58 2014 +0000
+++ b/shells/bash/PLIST Wed Mar 12 10:08:46 2014 +0000
@@ -1,14 +1,26 @@
-@comment $NetBSD: PLIST,v 1.6 2011/03/12 15:55:22 wiz Exp $
+@comment $NetBSD: PLIST,v 1.7 2014/03/12 10:08:46 wiz Exp $
 bin/bash
 bin/bashbug
 info/bash.info
 man/man1/bash.1
 man/man1/bashbug.1
+share/doc/bash/CHANGES
+share/doc/bash/COMPAT
+share/doc/bash/FAQ
+share/doc/bash/INTRO
+share/doc/bash/NEWS
+share/doc/bash/POSIX
+share/doc/bash/RBASH
+share/doc/bash/README
+share/doc/bash/bash.html
+share/doc/bash/bashref.html
 share/locale/af/LC_MESSAGES/bash.mo
 share/locale/bg/LC_MESSAGES/bash.mo
 share/locale/ca/LC_MESSAGES/bash.mo
 share/locale/cs/LC_MESSAGES/bash.mo
+share/locale/da/LC_MESSAGES/bash.mo
 share/locale/de/LC_MESSAGES/bash.mo
+share/locale/el/LC_MESSAGES/bash.mo
 share/locale/en@boldquot/LC_MESSAGES/bash.mo
 share/locale/en@quot/LC_MESSAGES/bash.mo
 share/locale/eo/LC_MESSAGES/bash.mo
@@ -17,8 +29,11 @@
 share/locale/fi/LC_MESSAGES/bash.mo
 share/locale/fr/LC_MESSAGES/bash.mo
 share/locale/ga/LC_MESSAGES/bash.mo
+share/locale/gl/LC_MESSAGES/bash.mo
+share/locale/hr/LC_MESSAGES/bash.mo
 share/locale/hu/LC_MESSAGES/bash.mo
 share/locale/id/LC_MESSAGES/bash.mo
+share/locale/it/LC_MESSAGES/bash.mo
 share/locale/ja/LC_MESSAGES/bash.mo
 share/locale/lt/LC_MESSAGES/bash.mo
 share/locale/nl/LC_MESSAGES/bash.mo
@@ -27,6 +42,8 @@
 share/locale/ro/LC_MESSAGES/bash.mo
 share/locale/ru/LC_MESSAGES/bash.mo
 share/locale/sk/LC_MESSAGES/bash.mo
+share/locale/sl/LC_MESSAGES/bash.mo
+share/locale/sr/LC_MESSAGES/bash.mo
 share/locale/sv/LC_MESSAGES/bash.mo
 share/locale/tr/LC_MESSAGES/bash.mo
 share/locale/uk/LC_MESSAGES/bash.mo
diff -r f001efe394d5 -r be0e00e16eb0 shells/bash/distinfo
--- a/shells/bash/distinfo      Wed Mar 12 10:04:58 2014 +0000
+++ b/shells/bash/distinfo      Wed Mar 12 10:08:46 2014 +0000
@@ -1,14 +1,9 @@
-$NetBSD: distinfo,v 1.28 2014/01/11 18:07:06 chopps Exp $
+$NetBSD: distinfo,v 1.29 2014/03/12 10:08:46 wiz Exp $
 
-SHA1 (bash-4.2.tar.gz) = 487840ab7134eb7901fbb2e49b0ee3d22de15cb8
-RMD160 (bash-4.2.tar.gz) = df7ae51783f039a1234d3b720ffcf4bfa5d09673
-Size (bash-4.2.tar.gz) = 7009201 bytes
+SHA1 (bash-4.3.tar.gz) = 45ac3c5727e7262334f4dfadecdf601b39434e84
+RMD160 (bash-4.3.tar.gz) = cd21a9f51ea7780994d4e2c9c7d16d5eb000f845
+Size (bash-4.3.tar.gz) = 7955839 bytes
 SHA1 (patch-af) = dfd1d1be3d822cfc3ae0fd21bb2bbd3e35b11f0d
 SHA1 (patch-ag) = 4da0a43f6b890482affff46b18eef4be67770e48
-SHA1 (patch-ai) = 26825922898567841bed0bf62a8dee3bcc50cd75
 SHA1 (patch-aj) = 8b3c52c2aee9cf53ee5a9ce64ead243d0970305e
-SHA1 (patch-ak) = 6dfb7195f45f81064f687a4c9febb9dcae721aa7
 SHA1 (patch-builtins_ulimit.def) = d4cb59bedc6a6199f9a99a3530c99374e428baeb
-SHA1 (patch-execute_cmd.c) = ce9fe5820188aa218bac74316d45cbdabadb1785
-SHA1 (patch-lib_readline_vi_mode.c) = 104be6ec5f30e39a5ee442de078ff5dcb9380874
-SHA1 (patch-lib_sh_eaccess.c) = 484577f09efe67f604c3fb85afdb5a58b64f5b6c
diff -r f001efe394d5 -r be0e00e16eb0 shells/bash/patches/patch-ai
--- a/shells/bash/patches/patch-ai      Wed Mar 12 10:04:58 2014 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-$NetBSD: patch-ai,v 1.1 2011/02/20 14:22:15 wiz Exp $
-
-Add MirBSD.
-
---- support/shobj-conf.orig    Wed Oct 28 13:19:57 2009
-+++ support/shobj-conf
-@@ -197,7 +197,7 @@ darwin*|macosx*)
-       SHLIB_LIBS='-lncurses'  # see if -lcurses works on MacOS X 10.1 
-       ;;
- 
--openbsd*|netbsd*)
-+openbsd*|netbsd*|mirbsd*)
-       SHOBJ_CFLAGS=-fPIC
-       SHOBJ_LD='${CC}'
-       SHOBJ_LDFLAGS='-shared'
diff -r f001efe394d5 -r be0e00e16eb0 shells/bash/patches/patch-ak
--- a/shells/bash/patches/patch-ak      Wed Mar 12 10:04:58 2014 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-$NetBSD: patch-ak,v 1.1 2011/02/20 14:22:16 wiz Exp $
-
-Add MirBSD.
-
---- configure.orig     Tue Dec 29 13:34:27 2009
-+++ configure
-@@ -2192,6 +2192,7 @@ sparc-linux*)    opt_bash_malloc=no ;;   # sp
- #*-freebsd*-gnu)      opt_bash_malloc=no ;;   # there's some undetermined problem here
- #*-freebsd*)  opt_bash_malloc=no ;;   # they claim it's better; I disagree
- *-openbsd*)   opt_bash_malloc=no ;;   # they claim it needs eight-bit alignment
-+*-mirbsd*)    opt_bash_malloc=no ;;   # they claim it needs eight-bit alignment
- *-aix*)               opt_bash_malloc=no ;;   # AIX machines
- *-nextstep*)  opt_bash_malloc=no ;;   # NeXT machines running NeXTstep
- *-macos*)     opt_bash_malloc=no ;;   # Apple MacOS X
diff -r f001efe394d5 -r be0e00e16eb0 shells/bash/patches/patch-execute_cmd.c
--- a/shells/bash/patches/patch-execute_cmd.c   Wed Mar 12 10:04:58 2014 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-$NetBSD: patch-execute_cmd.c,v 1.1 2013/02/12 23:31:41 tcort Exp $
-
-Allow bash to compile with JOB_CONTROL disabled.
-
-http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-018
-
---- execute_cmd.c.orig Wed Feb  9 22:32:25 2011
-+++ execute_cmd.c      Tue Feb 12 11:48:00 2013
-@@ -2196,6 +2196,7 @@
-   if (ignore_return && cmd)
-     cmd->flags |= CMD_IGNORE_RETURN;
- 
-+#if defined (JOB_CONTROL)
-   lastpipe_flag = 0;
-   begin_unwind_frame ("lastpipe-exec");
-   lstdin = -1;
-@@ -2219,11 +2220,14 @@
-     }   
-   if (prev >= 0)
-     add_unwind_protect (close, prev);
-+#endif
- 
-   exec_result = execute_command_internal (cmd, asynchronous, prev, pipe_out, fds_to_close);
- 
-+#if defined (JOB_CONTROL)
-   if (lstdin > 0)
-     restore_stdin (lstdin);
-+#endif
- 
-   if (prev >= 0)
-     close (prev);
diff -r f001efe394d5 -r be0e00e16eb0 shells/bash/patches/patch-lib_readline_vi_mode.c
--- a/shells/bash/patches/patch-lib_readline_vi_mode.c  Wed Mar 12 10:04:58 2014 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-$NetBSD: patch-lib_readline_vi_mode.c,v 1.1 2014/01/11 18:07:06 chopps Exp $
-
-Pull in fix for 'cc', 'dd', commands 'yy' from readline git repository (pre-6.3
-release). Prior to this 'dd', et al. simply moved to position 0 but did not cut
-the text from the line.
-
---- lib/readline/vi_mode.c.orig        2010-11-21 00:51:39.000000000 +0000
-+++ lib/readline/vi_mode.c
-@@ -1114,7 +1114,7 @@ rl_domove_read_callback (m)
-       rl_beg_of_line (1, c);
-       _rl_vi_last_motion = c;
-       RL_UNSETSTATE (RL_STATE_VIMOTION);
--      return (0);
-+      return (vidomove_dispatch (m));
-     }
- #if defined (READLINE_CALLBACKS)
-   /* XXX - these need to handle rl_universal_argument bindings */
-@@ -1234,11 +1234,19 @@ rl_vi_delete_to (count, key)
-       _rl_vimvcxt->motion = '$';
-       r = rl_domove_motion_callback (_rl_vimvcxt);
-     }
--  else if (vi_redoing)
-+  else if (vi_redoing && _rl_vi_last_motion != 'd')   /* `dd' is special */
-     {
-       _rl_vimvcxt->motion = _rl_vi_last_motion;
-       r = rl_domove_motion_callback (_rl_vimvcxt);
-     }
-+  else if (vi_redoing)                /* handle redoing `dd' here */
-+    {
-+      _rl_vimvcxt->motion = _rl_vi_last_motion;
-+      rl_mark = rl_end;
-+      rl_beg_of_line (1, key);
-+      RL_UNSETSTATE (RL_STATE_VIMOTION);
-+      r = vidomove_dispatch (_rl_vimvcxt);
-+    }
- #if defined (READLINE_CALLBACKS)
-   else if (RL_ISSTATE (RL_STATE_CALLBACK))
-     {
-@@ -1316,11 +1324,19 @@ rl_vi_change_to (count, key)
-       _rl_vimvcxt->motion = '$';
-       r = rl_domove_motion_callback (_rl_vimvcxt);
-     }
--  else if (vi_redoing)
-+  else if (vi_redoing && _rl_vi_last_motion != 'c')   /* `cc' is special */
-     {
-       _rl_vimvcxt->motion = _rl_vi_last_motion;
-       r = rl_domove_motion_callback (_rl_vimvcxt);
-     }
-+  else if (vi_redoing)                /* handle redoing `cc' here */
-+    {
-+      _rl_vimvcxt->motion = _rl_vi_last_motion;
-+      rl_mark = rl_end;
-+      rl_beg_of_line (1, key);
-+      RL_UNSETSTATE (RL_STATE_VIMOTION);
-+      r = vidomove_dispatch (_rl_vimvcxt);
-+    }
- #if defined (READLINE_CALLBACKS)
-   else if (RL_ISSTATE (RL_STATE_CALLBACK))
-     {
-@@ -1377,6 +1393,19 @@ rl_vi_yank_to (count, key)
-       _rl_vimvcxt->motion = '$';
-       r = rl_domove_motion_callback (_rl_vimvcxt);
-     }
-+  else if (vi_redoing && _rl_vi_last_motion != 'y')   /* `yy' is special */
-+    {
-+      _rl_vimvcxt->motion = _rl_vi_last_motion;
-+      r = rl_domove_motion_callback (_rl_vimvcxt);
-+    }
-+  else if (vi_redoing)                        /* handle redoing `yy' here */
-+    {
-+      _rl_vimvcxt->motion = _rl_vi_last_motion;
-+      rl_mark = rl_end;
-+      rl_beg_of_line (1, key);
-+      RL_UNSETSTATE (RL_STATE_VIMOTION);
-+      r = vidomove_dispatch (_rl_vimvcxt);
-+    }
- #if defined (READLINE_CALLBACKS)
-   else if (RL_ISSTATE (RL_STATE_CALLBACK))
-     {
diff -r f001efe394d5 -r be0e00e16eb0 shells/bash/patches/patch-lib_sh_eaccess.c
--- a/shells/bash/patches/patch-lib_sh_eaccess.c        Wed Mar 12 10:04:58 2014 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-$NetBSD: patch-lib_sh_eaccess.c,v 1.1 2012/07/18 15:43:12 spz Exp $
-
-from ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-033
-
-   Bash-Release:       4.2
-   Patch-ID:   bash42-033
-   
-   Bug-Reported-by:    David Leverton <levertond%googlemail.com@localhost>
-   Bug-Reference-ID:   <4FCCE737.1060603%googlemail.com@localhost>
-   Bug-Reference-URL:
-   
-   Bug-Description:
-   
-   Bash uses a static buffer when expanding the /dev/fd prefix for the test
-   and conditional commands, among other uses, when it should use a dynamic
-   buffer to avoid buffer overflow.
-
---- lib/sh/eaccess.c.orig      2011-01-09 01:50:10.000000000 +0000
-+++ lib/sh/eaccess.c
-@@ -82,6 +82,8 @@ sh_stat (path, finfo)
-      const char *path;
-      struct stat *finfo;
- {
-+  static char *pbuf = 0;
-+
-   if (*path == '\0')
-     {
-       errno = ENOENT;
-@@ -106,7 +108,7 @@ sh_stat (path, finfo)
-      trailing slash.  Make sure /dev/fd/xx really uses DEV_FD_PREFIX/xx.
-      On most systems, with the notable exception of linux, this is
-      effectively a no-op. */
--      char pbuf[32];
-+      pbuf = xrealloc (pbuf, sizeof (DEV_FD_PREFIX) + strlen (path + 8));
-       strcpy (pbuf, DEV_FD_PREFIX);
-       strcat (pbuf, path + 8);
-       return (stat (pbuf, finfo));



Home | Main Index | Thread Index | Old Index