summaryrefslogtreecommitdiff
path: root/shells/ksh93
diff options
context:
space:
mode:
authorpin <pin@pkgsrc.org>2022-08-09 06:37:32 +0000
committerpin <pin@pkgsrc.org>2022-08-09 06:37:32 +0000
commit13e1f3b3303ea1b068dc34e4b4dca4d9de5ac138 (patch)
tree47ab12212420aaa6dc5a4088aeb7bc770ec6819d /shells/ksh93
parent00c3d909a3efbec5ab57067a202a8fc9c532bbab (diff)
downloadpkgsrc-13e1f3b3303ea1b068dc34e4b4dca4d9de5ac138.tar.gz
shells/ksh93: update to 1.0.1
Submitted by Paolo Vincenzo Olivo on pkgsrc-users. ## ksh 93u+m/1.0.1 This is an urgent bugfix release that removes an incorrect exec optimization that was capable of terminating the execution of scripts prematurely in certain corner cases. It is known to make the build scripts of GNU binutils produce corrupted results if ksh is used as /bin/sh. See #507 for more information. No other breakage resulting from this bug is known yet, but other breakage probably exists. Every 1.0.0 user should update to 1.0.1 ASAP. ## ksh 93u+m/1.0.0 Roughly a thousand bugs have been fixed, including many serious/critical bugs. See the NEWS file for more information, and the git commit log for complete documentation of every fix. Incompatible changes have been minimised, but not at the expense of fixing bugs. For a list of potentially incompatible changes, see src/cmd/ksh93/COMPATIBILITY. Though there was a "no new features, bugfixes only" policy, some new features were found necessary, either to fix serious design flaws or to complete functionality that was evidently intended, but not finished. Below is a summary of these new features. New command line editor features: - The forward-delete and End keys are now handled as expected in the emacs and vi built-in line editors. - In the vi and emacs line editors, repeat counts can now also be used for arrow keys and the forward-delete key, e.g., <ESC> 7 <left-arrow> works. - Various keys on extended PC keyboards are now handled as expected in the emacs and vi built-in line editors. New shell language features: - Pathname expansion (a.k.a. globbing) now never matches the special names '.' (current directory) and '..' (parent directory). This change makes a pattern like .* useful; it now matches all hidden files (dotfiles) in the current directory, without the harmful inclusion of '.' and '..'. - Tilde expansion can now be extended or modified by defining a .sh.tilde.get or .sh.tilde.set discipline function. See the manual for details. - The &>file redirection shorthand (for >file 2>&1) is now available for all scripts and interactive sessions and not only for profile/login scripts. - Arithmetic expressions in native ksh mode no longer interpret a number with a leading zero as octal in any context. Use 8#octalnumber instead (e.g. 8#400 == 256). Arithmetic expressions now also behave identically within and outside ((...)) and $((...)). If the POSIX mode is turned on, a leading zero now denotes an octal number in all arithmetic contexts. New features in built-in commands: - Usage error messages now show the --help/--man self-documentation options. - Path-bound built-ins (such as /opt/ast/bin/cat) can now be executed by invoking the canonical path, so the following will now work as expected: $ /opt/ast/bin/cat --version version cat (AT&T Research) 2012-05-31 - 'cd' now supports an -e option that, when combined with -P, verifies that $PWD is correct after changing directories; this helps detect access permission problems. See: https://www.austingroupbugs.net/view.php?id=253 - 'command -x' now looks for external commands only, skipping built-ins. In addition, its xargs-like functionality no longer freezes the shell on Linux and macOS, making it effectively a new feature on these systems. - 'printf' now supports a -v option as in bash. This assigns formatted output directly to variables, which is very fast and will not strip final newline (\n) characters. - 'redirect' now checks if all arguments are valid redirections before performing them. If an error occurs, it issues an error message instead of terminating the shell. - 'return', when used to return from a function, can now return any status value in the 32-bit signed integer range, like on zsh. However, due to a traditional Unix kernel limitation, $? is still trimmed to its least significant 8 bits whenever a shell or subshell exits. - 'suspend' now refuses to suspend a login shell, as there is probably no parent shell to return to and the login session would freeze. - 'test'/'[' now supports all the same operators as [[ (including =~, \<, \>) except for the different 'and'/'or' operators. Note that 'test'/'[' remains deprecated due to its unfixable pitfalls; [[ ... ]] is recommended instead. - 'times' now gives high precision output in a POSIX compliant format. - 'type'/'whence': Two bash-like flags were backported from ksh 93v-: - 'whence -P/type -P' is an alias to the existing -p flag. - 'whence -t/type -t' will print only the type of a command in a simple format that is designed to be easy to use for scripts. - 'typeset' has a new '-g' flag that forces variables to be created or modified at the global scope regardless of context, as on bash 4.2+. - 'typeset' now gives an informative error message if an incompatible combination of options is given. - 'ulimit': Added three options inspired by bash: - 'ulimit -k' sets the maximum number of kqueues. - 'ulimit -P' sets the maximum number of pseudo-terminals. - 'ulimit -R' sets the maximum time in microseconds a real-time process can run before blocking. Note that not all operating systems support the limits set by these options. - 'whence -v/-a' now reports the location of autoloadable functions. New features in shell options: - When the -b/--notify shell option is on and the vi or emacs/gmacs shell line editor is in use, 'Done' and similar notifications from completed background jobs are now inserted directly above the line you're typing, without affecting your command line display. - A new --functrace long-form shell option causes the -x/--xtrace option's state and the DEBUG trap action to be inherited by function scopes instead of being reset to default. Changes made to them within a function scope still do not propagate back to the parent scope. Similarly, this option also causes the DEBUG trap action to be inherited by subshells. - A new --globcasedetect shell option is added on operating systems where we can check for a case-insensitive file system (currently Linux, macOS, QNX 7.0+, and Windows/Cygwin). When this option is turned on, pathname expansion (globbing), as well as tab completion on interactive shells, automatically become case-insensitive depending on the file system. This is separately determined for each pathname component. - Enhancement to -G/--globstar: symbolic links to directories are now followed if they match a normal (non-**) glob pattern. For example, if '/lnk' is a symlink to a directory, '/lnk/**' and '/l?k/**' now work as you would expect. - The new --histreedit and --histverify options modify history expansion (--histexpand). If --histreedit is on and a history expansion fails, the command line is reloaded into the next prompt's edit buffer, allowing corrections. If --histverify is on, the results of a history expansion are not immediately executed but instead loaded into the next prompt's edit buffer, allowing further changes. - A new --nobackslashctrl shell option disables the special escaping behaviour of the backslash character in the emacs and vi built-in editors. Particularly in the emacs editor, this makes it much easier to go back, insert a forgotten backslash into a command, and then continue editing without having your next arrow key replace your backslash with garbage. - A new --posix shell option has been added to ksh 93u+m that makes the ksh language more compatible with other shells by following the POSIX standard more closely. See the manual page for details. It is enabled by default if ksh is invoked as sh, otherwise it is disabled by default.
Diffstat (limited to 'shells/ksh93')
-rw-r--r--shells/ksh93/Makefile4
-rw-r--r--shells/ksh93/distinfo10
-rw-r--r--shells/ksh93/patches/patch-src_lib_libast_features_syscall13
3 files changed, 12 insertions, 15 deletions
diff --git a/shells/ksh93/Makefile b/shells/ksh93/Makefile
index 534b8b9e65b..95d77660bab 100644
--- a/shells/ksh93/Makefile
+++ b/shells/ksh93/Makefile
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.3 2022/07/03 21:19:31 leot Exp $
+# $NetBSD: Makefile,v 1.4 2022/08/09 06:37:32 pin Exp $
-DISTNAME= ksh93-1.0.0beta.2
+DISTNAME= ksh93-1.0.1
CATEGORIES= shells
MASTER_SITES= ${MASTER_SITE_GITHUB:=ksh93/}
GITHUB_PROJECT= ksh
diff --git a/shells/ksh93/distinfo b/shells/ksh93/distinfo
index 628af916845..93504647723 100644
--- a/shells/ksh93/distinfo
+++ b/shells/ksh93/distinfo
@@ -1,6 +1,6 @@
-$NetBSD: distinfo,v 1.2 2022/07/03 21:18:31 leot Exp $
+$NetBSD: distinfo,v 1.3 2022/08/09 06:37:32 pin Exp $
-BLAKE2s (ksh93-1.0.0beta.2.tar.gz) = 1852a7f7963978ea6b80d47a915fe0da868bb91f8d9830056dfc6ea1b3303165
-SHA512 (ksh93-1.0.0beta.2.tar.gz) = c2cd5a4b442bcff1dd2c1c054ee79c4cb131dce28d811dcd3476164d6cb7e88e6b317a094b16f227564a1266708ef0cfeca2af0929c00a19497cf1b67c647cf2
-Size (ksh93-1.0.0beta.2.tar.gz) = 2238224 bytes
-SHA1 (patch-src_lib_libast_features_syscall) = 725fead538810678e808c6fdfd543fa1a0415645
+BLAKE2s (ksh93-1.0.1.tar.gz) = a585bb90714433bf1d6cc862e54c482f9e4abc5464a3fc6437e898a58d89a0c6
+SHA512 (ksh93-1.0.1.tar.gz) = c12c5b7d0a429b121e28707fbf21848a25a7b211761b53fc1d3cc68bba81f856cbf216b8bfe91216496e07f9484bc015b41e6ae6cf17cc424f5c64b873928b2c
+Size (ksh93-1.0.1.tar.gz) = 2107148 bytes
+SHA1 (patch-src_lib_libast_features_syscall) = b40006e5076d8b96719d4021fbadbdfcc709aad2
diff --git a/shells/ksh93/patches/patch-src_lib_libast_features_syscall b/shells/ksh93/patches/patch-src_lib_libast_features_syscall
index 3db5b15f8cf..a987d577e4f 100644
--- a/shells/ksh93/patches/patch-src_lib_libast_features_syscall
+++ b/shells/ksh93/patches/patch-src_lib_libast_features_syscall
@@ -1,13 +1,10 @@
-$NetBSD: patch-src_lib_libast_features_syscall,v 1.1 2022/07/03 20:57:38 pin Exp $
+$NetBSD: patch-src_lib_libast_features_syscall,v 1.2 2022/08/09 06:37:32 pin Exp $
-On NetBSD, use `SYS___getcwd' to get the getcwd(2) syscall.
+On NetBSD, use `SYS___getcwd' to get the getcwd(2) syscall.
---- src/lib/libast/features/syscall.orig 2021-12-17 03:20:04.000000000 +0000
+--- src/lib/libast/features/syscall.orig 2022-08-05 10:52:49.000000000 +0000
+++ src/lib/libast/features/syscall
-@@ -1,9 +1,13 @@
--lib sysgetcwd note{ syscall(SYS_getcwd,buf,len) implemented }end link{
-+lib sysgetcwd note{ syscall(SYS_getcwd/SYS___getcwd,buf,len) implemented }end link{
- #include <sys/syscall.h>
+@@ -4,7 +4,11 @@ lib sysgetcwd note{ syscall(SYS_getcwd,b
int main()
{
char buf[256];
@@ -19,7 +16,7 @@ On NetBSD, use `SYS___getcwd' to get the getcwd(2) syscall.
}
}end
-@@ -13,6 +17,10 @@ if ( _lib_sysgetcwd ) {
+@@ -14,6 +18,10 @@ if ( _lib_sysgetcwd ) {
endif
if ( _lib_sysgetcwd ) {