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 5.0

branches:  trunk
changeset: 317519:2522c48e55f3
user:      ryoon <>
date:      Tue Jan 08 16:24:42 2019 +0000

Update to 5.0

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

1.  New Features in Bash

a. The `wait' builtin can now wait for the last process substitution created.

b. There is an EPOCHSECONDS variable, which expands to the time in seconds
   since the Unix epoch.

c. There is an EPOCHREALTIME variable, which expands to the time in seconds
   since the Unix epoch with microsecond granularity.

d. New loadable builtins: rm, stat, fdflags.

e. BASH_ARGV0: a new variable that expands to $0 and sets $0 on assignment.

f. When supplied a numeric argument, the shell-expand-line bindable readline
   command does not perform quote removal and suppresses command and process

g. `history -d' understands negative arguments: negative arguments offset from
   the end of the history list.

h. The `name' argument to the `coproc' reserved word now undergoes word
   expansion, so unique coprocs can be created in loops.

i. A nameref name resolution loop in a function now resolves to a variable by
   that name in the global scope.

j. The `wait' builtin now has a `-f' option, which signfies to wait until the
   specified job or process terminates, instead of waiting until it changes

k. There is a define in config-top.h that allows the shell to use a static
   value for $PATH, overriding whatever is in the environment at startup, for
   use by the restricted shell.

l. Process substitution does not inherit the `v' option, like command

m. If a non-interactive shell with job control enabled detects that a foreground
   job died due to SIGINT, it acts as if it received the SIGINT.

n. The SIGCHLD trap is run once for each exiting child process even if job
   control is not enabled when the shell is in Posix mode.

o. A new shopt option: localvar_inherit; if set, a local variable inherits the
   value of a variable with the same name at the nearest preceding scope.

p. `bind -r' now checks whether a key sequence is bound before binding it to
   NULL, to avoid creating keymaps for a multi-key sequence.

q. A numeric argument to the line editing `operate-and-get-next' command
   specifies which history entry to use.

r. The positional parameters are now assigned before running the shell startup
   files, so startup files can use $@.

s. There is a compile-time option that forces the shell to disable the check
   for an inherited OLDPWD being a directory.

t. The `history' builtin can now delete ranges of history entries using
   `-d start-end'.

u. The `vi-edit-and-execute-command' bindable readline command now puts readline
   back in vi insertion mode after executing commands from the edited file.

v. The command completion code now matches aliases and shell function names
   case-insensitively if the readline completion-ignore-case variable is set.

w. There is a new `assoc_expand_once' shell option that attempts to expand
   associative array subscripts only once.

x. The shell only sets up BASH_ARGV and BASH_ARGC at startup if extended
   debugging mode is active. The old behavior of unconditionally setting them
   is available as part of the shell compatibility options.

y. The `umask' builtin now allows modes and masks greater than octal 777.

z. The `times' builtin now honors the current locale when printing a decimal

aa. There is a new (disabled by default, undocumented) shell option to enable
    and disable sending history to syslog at runtime.

bb. Bash no longer allows variable assignments preceding a special builtin that
    changes variable attributes to propagate back to the calling environment
    unless the compatibility level is 44 or lower.

cc. You can set the default value for $HISTSIZE at build time in config-top.h.

dd. The `complete' builtin now accepts a -I option that applies the completion
    to the initial word on the line.

ee.  The internal bash malloc now uses mmap (if available) to satisfy requests
    greater than 128K bytes, so free can use mfree to return the pages to the

ff. The shell doesn't automatically set BASH_ARGC and BASH_ARGV at startup
    unless it's in debugging mode, as the documentation has always said, but
    will dynamically create them if a script references them at the top level
    without having enabled debugging mode.

gg. The localvar_inherit option will not attempt to inherit a value from a
    variable of an incompatible type (indexed vs. associative arrays, for

hh. The `globasciiranges' option is now enabled by default; it can be set to
    off by default at configuration time.

ii. Associative and indexed arrays now allow subscripts consisting solely of

jj. `checkwinsize' is now enabled by default.

kk. The `localvar_unset' shopt option is now visible and documented.

ll. The `progcomp_alias' shopt option is now visible and documented.

mm. The signal name processing code now understands `SIGRTMIN+n' all the way
    up to SIGRTMAX.

nn. There is a new `seq' loadable builtin.

oo. Trap execution now honors the (internal) max invocations of `eval', since
    traps are supposed to be executed as if using `eval'.

pp. The $_ variable doesn't change when the shell executes a command that forks.

qq. The `kill' builtin now supports -sSIGNAME and -nSIGNUM, even though
    conforming applications aren't supposed to use them.

rr. POSIX mode now enables the `shift_verbose' option.

2.  New Features in Readline

a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as
   Posix specifies (uses fnmatch(3) if available).

b. There are new `next-screen-line' and `previous-screen-line' bindable
   commands, which move the cursor to the same column in the next, or previous,
   physical line, respectively.

c. There are default key bindings for control-arrow-key key combinations.

d. A negative argument (-N) to `quoted-insert' means to insert the next N
   characters using quoted-insert.

e. New public function: rl_check_signals(), which allows applications to
   respond to signals that readline catches while waiting for input using
   a custom read function.

f. There is new support for conditionally testing the readline version in an
   inputrc file, with a full set of arithmetic comparison operators available.

g. There is a simple variable comparison facility available for use within an
   inputrc file. Allowable operators are equality and inequality; string
   variables may be compared to a value; boolean variables must be compared to
   either `on' or `off'; variable names are separated from the operator by

h. The history expansion library now understands command and process
   substitution and extended globbing and allows them to appear anywhere in a

i. The history library has a new variable that allows applications to set the
   initial quoting state, so quoting state can be inherited from a previous

j. Readline now allows application-defined keymap names; there is a new public
   function, rl_set_keymap_name(), to do that.

k. The "Insert" keypad key, if available, now puts readline into overwrite


 shells/bash/Makefile                            |  12 ++++++------
 shells/bash/PLIST                               |   6 +++++-
 shells/bash/distinfo                            |  17 ++++++-----------
 shells/bash/patches/patch-lib_readline_colors.c |  17 -----------------
 shells/bash/patches/patch-variables.c           |  18 +++++++++---------
 5 files changed, 26 insertions(+), 44 deletions(-)

diffs (151 lines):

diff -r 806c5deac6b5 -r 2522c48e55f3 shells/bash/Makefile
--- a/shells/bash/Makefile      Tue Jan 08 16:19:38 2019 +0000
+++ b/shells/bash/Makefile      Tue Jan 08 16:24:42 2019 +0000
@@ -1,14 +1,14 @@
-# $NetBSD: Makefile,v 1.84 2018/04/09 14:57:19 ryoon Exp $
+# $NetBSD: Makefile,v 1.85 2019/01/08 16:24:42 ryoon Exp $
-BASH_VERSION=          4.4.18
+BASH_VERSION=          5.0
-PKGNAME=       bash-${BASH_VERSION:C/4\.4\..*/4.4/}.${BASH_PATCHLEVEL}
+#PKGNAME=      bash-${BASH_VERSION:C/4\.4\..*/4.4/}.${BASH_PATCHLEVEL}
 CATEGORIES=    shells
-PATCH_SITES=   ${MASTER_SITES:=bash-4.4-patches/}
+#PATCH_SITES=  ${MASTER_SITES:=bash-4.4-patches/}
 #PATCHFILES+=  bash44-001 bash44-002 bash44-003 bash44-004 bash44-005
 #PATCHFILES+=  bash44-006 bash44-007 bash44-008 bash44-009 bash44-010
 #PATCHFILES+=  bash44-011 bash44-012 bash44-013 bash44-014 bash44-015
@@ -17,7 +17,7 @@
 #PATCHFILES+=  bash44-026 bash44-027 bash44-028 bash44-029 bash44-030
 #PATCHFILES+=  bash44-031 bash44-032 bash44-033 bash44-034 bash44-035
 #PATCHFILES+=  bash44-036 bash44-037 bash44-038 bash44-039
-PATCHFILES+=   bash44-019
+#PATCHFILES+=  bash44-019
diff -r 806c5deac6b5 -r 2522c48e55f3 shells/bash/PLIST
--- a/shells/bash/PLIST Tue Jan 08 16:19:38 2019 +0000
+++ b/shells/bash/PLIST Tue Jan 08 16:24:42 2019 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.8 2016/09/19 09:06:03 wiz Exp $
+@comment $NetBSD: PLIST,v 1.9 2019/01/08 16:24:42 ryoon Exp $
@@ -63,10 +63,12 @@
@@ -76,6 +78,7 @@
@@ -124,6 +127,7 @@
diff -r 806c5deac6b5 -r 2522c48e55f3 shells/bash/distinfo
--- a/shells/bash/distinfo      Tue Jan 08 16:19:38 2019 +0000
+++ b/shells/bash/distinfo      Tue Jan 08 16:24:42 2019 +0000
@@ -1,19 +1,14 @@
-$NetBSD: distinfo,v 1.50 2018/04/09 14:57:19 ryoon Exp $
+$NetBSD: distinfo,v 1.51 2019/01/08 16:24:42 ryoon Exp $
-SHA1 (bash-4.4.18.tar.gz) = 6cf9b3c23930ba8a721fee177d1558e5b7cb6104
-RMD160 (bash-4.4.18.tar.gz) = 0081d54b19e19ab94efc0d69929ae3f40bb984e6
-SHA512 (bash-4.4.18.tar.gz) = bd3048338aded9dee31651011aaa46bc8fba83a27fa063e3d47bcbe85ebbd86816d9080d1a658cfbd1736a2c80e98fdb659019c192d332472b00aa305e0285b0
-Size (bash-4.4.18.tar.gz) = 9463662 bytes
-SHA1 (bash44-019) = 7483741200d09837199d8047cf0f9632834a9b5b
-RMD160 (bash44-019) = b9dedc65d70ca7749ffdb743701487fcb3072033
-SHA512 (bash44-019) = 59984e221a7a6dbf72bf893b1b7c4a63fea34d6af1208a19f0e9e6cd59a09e4cf51890cb2d31c1502e2a2f644f584417bb59cf02c308d3250d2a98d41b63e893
-Size (bash44-019) = 1671 bytes
+SHA1 (bash-5.0.tar.gz) = d116b469b9e6ea5264a74661d3a4c797da7f997b
+RMD160 (bash-5.0.tar.gz) = a081428a896d617855499376b670eca3433a27c1
+SHA512 (bash-5.0.tar.gz) = bb4519f06e278f271d08722b531e49d2e842cc3e0b02a6b3eee422e2efcb5b6226111af43f5e5eae56beb85ac8bfebcd6a4aacbabb8f609e529aa4d571890864
+Size (bash-5.0.tar.gz) = 10135110 bytes
 SHA1 (patch-af) = e26e3209902247263884cfebc11a2f7e43245062
 SHA1 (patch-ag) = cd3b151e3bb045d2bb609c0a03d7d3df2c871f47
 SHA1 (patch-aj) = 2e4c15afd9b50d44967ee8e1f85bdc908c0eeeb0
 SHA1 (patch-builtins_ulimit.def) = 1390069344607204eb3abbd6ddeb148ff590c55e
 SHA1 (patch-configure) = c4e1ab53a1ee85f3e6121047f0aca8ceb85e6e5d
-SHA1 (patch-lib_readline_colors.c) = 4ebf871b883fc8ab6756758c423f777d9eb21da1
 SHA1 (patch-shell.c) = daa07914d4c318cd72463f80344f4f7c364809cd
 SHA1 (patch-support_shobj-conf) = 8750c104549ea8a4a722bd21a684a9fe13e05fe5
-SHA1 (patch-variables.c) = 0bb513cb863f82eb378b8c720bdfb1c31d21d36c
+SHA1 (patch-variables.c) = 8d91272602aba348dc158d8fb5948edd90d96646
diff -r 806c5deac6b5 -r 2522c48e55f3 shells/bash/patches/patch-lib_readline_colors.c
--- a/shells/bash/patches/patch-lib_readline_colors.c   Tue Jan 08 16:19:38 2019 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-$NetBSD: patch-lib_readline_colors.c,v 1.2 2016/09/19 09:06:03 wiz Exp $
-* SCO OpenServer 5.0.7/3.2 has no S_ISSOCK.
---- lib/readline/colors.c.orig 2016-01-25 15:38:00.000000000 +0000
-+++ lib/readline/colors.c
-@@ -215,8 +215,10 @@ _rl_print_color_indicator (const char *f
-         colored_filetype = C_LINK;
-       else if (S_ISFIFO (mode))
-         colored_filetype = C_FIFO;
-+#if defined(S_ISSOCK)
-       else if (S_ISSOCK (mode))
-         colored_filetype = C_SOCK;
-       else if (S_ISBLK (mode))
-         colored_filetype = C_BLK;
-       else if (S_ISCHR (mode))
diff -r 806c5deac6b5 -r 2522c48e55f3 shells/bash/patches/patch-variables.c
--- a/shells/bash/patches/patch-variables.c     Tue Jan 08 16:19:38 2019 +0000
+++ b/shells/bash/patches/patch-variables.c     Tue Jan 08 16:24:42 2019 +0000
@@ -1,18 +1,18 @@
-$NetBSD: patch-variables.c,v 1.4 2016/09/19 09:06:03 wiz Exp $
+$NetBSD: patch-variables.c,v 1.5 2019/01/08 16:24:42 ryoon Exp $
 Only read functions from environment if flag is set.
---- variables.c.orig   2016-06-15 20:05:52.000000000 +0000
+--- variables.c.orig   2018-12-18 16:07:21.000000000 +0000
 +++ variables.c
-@@ -115,6 +115,7 @@ extern time_t shell_start_time;
- extern int assigning_in_environment;
- extern int executing_builtin;
- extern int funcnest_max;
+@@ -95,6 +95,7 @@
+ #define FV_SKIPINVISIBLE      0x02
+ extern char **environ;
 +extern int import_functions;
- #if defined (READLINE)
- extern int no_line_editing;
-@@ -365,7 +366,7 @@ initialize_shell_variables (env, privmod
+ /* Variables used here and defined in other files. */
+ extern time_t shell_start_time;
+@@ -368,7 +369,7 @@ initialize_shell_variables (env, privmod
  #if defined (FUNCTION_IMPORT)
        /* If exported function, define it now.  Don't import functions from
         the environment in privileged mode. */

Home | Main Index | Thread Index | Old Index