summaryrefslogtreecommitdiff
path: root/shells
AgeCommit message (Collapse)AuthorFilesLines
2005-03-15Add a patch allowing compilation of bash on AIX 4.3.3. Tested not togarbled2-1/+55
impact NetBSD/i386 build. Should also not impact aix5 builds.
2005-03-10nb1: Use standard build and install processes via ${BSD_INSTALL_*}.tv4-47/+34
2005-03-10Add Interix-specific system call bits.tv4-13/+43
2005-03-08Changes 050219:adam2-10/+9
examples: * Updated the example initialization files. * Added a few command files to give users a head start in scripting the shell. osh.1 and sh6.1: * Made a few more minimal revisions. osh and sh6: * Did a little more code cleanup.
2005-03-04Make this work on IRIX.jschauma2-2/+9
NB: this needs an install-sh that supports "-S -f", as in rev. 1.3 of bootstrap/files/install-sh.in. After installing that install-sh, set _STRIPFLAG_INSTALL?= -S -f in mk/platform/IRIX.mk and all should be peachy. This will be done correctly eventually, don't worry. :-)
2005-02-27Update to 3.0pl16, pulling in the first 16 official patches for bash.wiz3-6/+61
Various bugfixes. Some whitespace cleanup while here.
2005-02-24Add RMD160 digests.agc19-20/+46
2005-02-24agc agreed to maintain this package.wiz1-1/+2
2005-02-21Changes 4.2.4:adam5-20/+36
* Bug-fix release
2005-02-20Kill some hardcoded UID, GID, and mode settings that were being passed tosnj2-9/+11
${INSTALL}. This should fix the problem seen in minskim's Linux bulk build.
2005-01-28Add scponly.snj1-1/+2
2005-01-28Initial import of scponly-4.0, a tiny shell that only permits scp and sftp.snj5-0/+64
2005-01-25Add another Interix hack -- ut_xtime is the obsolescent name for utmpx.ut_tv.tv1-2/+5
2005-01-25Pull in PLIST.${OPSYS} if existant.tv1-3/+8
2005-01-25Pick up previously orphaned terminfo.so installed file.tv1-0/+2
2005-01-25Extend other *BSD build fixes to Interix.tv3-7/+7
2005-01-24Fix GETPGRP_VOID test for Interix in configure.tv1-0/+13
2005-01-24Interix has no general sync() syscall.tv2-1/+16
2005-01-21Partly Interix fix, but also readonly-root fix: Don't use "-w '/'" totv2-1/+15
determine whether to install in PREFIX/share. Just do it anyway.
2005-01-21Use nbcompat-based build on Interix, too (missing <sysexits.h>).tv1-2/+2
2005-01-21Teach about Interix further. From Yoshifumi Hiramatsu.uebayasi2-5/+13
2005-01-18Fix build on Interix. PR26847, from Hiramatsu Yoshifumi.uebayasi3-11/+15
2005-01-16Set PKGNAME to static-${PKGNAME} instead of building it out of DISTNAME,kristerw1-2/+2
to make it consistent with the non-static package.
2004-12-27Update to 041028, closing PR 27765.wiz2-6/+6
Changes that improve compatibility w/ the Sixth Edition Unix shell are marked w/ a `C:' in the details below. ------------------------------------------------------------------------------- [osh-041028]: *.1: * Fixed a few typos in osh.1 and sh6.1. * Did a little fine tuning of osh.1 and sh6.1 to hopefully eliminate some incomplete and/or unclear explanations. * Did the same for both if.1 and goto.1. osh and sh6: * Fixed an annoying bug introduced in the previous release... The way error messages were printed in error() was not accounting for the fact that the standard error stream is quite often (if not always) unbuffered by default. This could make some error messages difficult to read when a pipeline was involved. A little example: Before (unfixed): % foo|bar|baz foo: not foundbar: not foundbaz: not found After (fixed): % foo|bar|baz foo: not found bar: not found baz: not found ------------------------------------------------------------------------------- [osh-041018]: This release includes sh6 in addition to osh, if, and goto. Sh6 is simply osh without the enhancements. It is built from the same sources as osh, but it is not built or installed by default. Makefile: * Added targets for sh6 so that it can optionally be built, tested, and installed if desired. osh and sh6: * Split the code into modules. This is primarily for developer sanity... ;) The new files are osh.h, main.c, parse.c, and exec.c. * If (geteuid() != getuid() || getegid() != getgid()) is true, print a nice error message and exit with a status of 2. * Strip all NUL characters from the shell's standard input as it is being read into the command line buffer. Input to the shell is expected to be text. * Changed the way the shell handles non-seekable files. This is for both initialization files (osh only) and command files. Do not block on open(2); open it and determine if it is a regular file (or seekable). If it is not a regular file or is not seekable, exit with an error. If seekable, reset the file for blocking I/O and continue as normal. Note that you can still read commands from FIFOs if you want. Instead of doing `osh myfifo', you can either do `osh <myfifo' or `osh - my list of positional parameters <myfifo'. * Changed the error handling to use stdarg(3). This allows for more code consistency and makes it easier to handle all errors with just one line of code. osh only: * Added another possible initialization file for osh: $HOME/.oshrc Osh only attempts to execute commands from this file if it is an interactive shell. In the case of a login shell, osh tries this file only after it tries both /etc/osh.login and $HOME/.osh.login. * Made osh less strict about errors in initialization files. Previously, common shell-detected errors in any of the files were generally treated in the same way as they would have been treated in a command file (i.e., the error was fatal). Realizing that this potentially caused difficulty and annoyance for the user, I opted to change it so that these types of errors are handled as they are when osh is interactive. This should make it easier for the user to debug initialization files if needed. * Added a `source' special command. It is functionally similar to the way this command works in csh(1). See osh(1) for details. if: * Changed ARGMAX from 50 to 256. * If (geteuid() != getuid() || getegid() != getgid()) is true, print a nice error message and exit with a status of 2. * Added a few new primaries: `-h', `-s', `-t', and `-x' See if(1) for details. goto: * Changed the size of the label buffer from 128 to 1024. * Do not require the `:' of a labelled line to appear in column 1. Instead, allow the `:' to optionally be preceded by blanks so that labelled lines can be indented in command files. See goto(1) for more details if needed. * Eliminated unnecessary calls to strcmp(3) whenever a possible label cannot possibly match the label argument given on the command line. * Give an error if any NUL character is encountered in the input. * Give an error if a zero-length string is given as the label argument. ------------------------------------------------------------------------------- [osh-040812]: osh.c: * Changed the way unused pipe descriptors are handled in the child process after fork(). This fixes a bug where the pipe in a pipeline such as `( cat /dev/zero ) | sleep 1' would never enter an EOF state. Previously, the close-on-exec flag was being set for the descriptors in question. Of course, this did not work for the above and similar cases. So, the descriptors in question are now close()d explicitly. * Made some final changes to globbing to allow for more sensible behaviour WRT quoting. The functions affected are: globargs(), globchar(), and striparg(). Read and/or run `tests/glob_test.osh' for details of the user-visible changes. This script may cause previous versions of the shell to dump core. Basically, since striparg() had always been called *after* glob(3) and since the path names generated by glob(3) cannot be trusted, it ends up that the best course of action is to call striparg() *before* glob(3). This relatively simple change fixes a variety of *possible* problems related to globbing. ------------------------------------------------------------------------------- [osh-040731]: osh.c: * Added bounds checking to striparg() to protect against a possible buffer overflow. Though this is unlikely to happen in the general case, it is certainly *not* impossible. This function had been unprotected since at least osh-020214. * Added a new diagnostic, `Arg too long', to go with the above-mentioned change. * Removed the `No directory' diagnostic from globargs(). It was simply not worth the trouble. In compatible mode, the `No match' diagnostic provides sufficient compatibility in my opinion... * Changed the `chdir' command so that it only attempts to change to the previous working directory when the `-' argument is *not* quoted. This alows the shell to change to a directory by that name. For example: % mkdir -; chdir -; pwd; chdir \-; pwd; chdir -; pwd; rmdir - chdir: no old directory /home/jneitzel/osh_stuff/osh-040731 /home/jneitzel/osh_stuff/osh-040731/- /home/jneitzel/osh_stuff/osh-040731 Remember that "-" or '-' has the same effect as the \- used above. This is perhaps a little silly, but I figure if a directory *can* exist then it should be possible to change to it. * Fixed the `<-' redirection argument so that it adheres to the documentation. This fixes a file descriptor leak in addition to the incorrect behaviour. It should be silently ignored in the following case: `echo hello | grep h <-'; now it is. ------------------------------------------------------------------------------- [osh-040723]: osh.c: C: Fixed a small idiosyncrasy with the `No directory' and `No match' diagnostics when running in compatible mode. For example: Before: % if -d . -a -r . echo "`.' is a readable directory.";\ echo foo*; echo ?; echo [] `.' is a readable directory. No match No match No directory After: % if -d . -a -r . echo "`.' is a readable directory.";\ echo foo*; echo ?; echo [] `.' is a readable directory. No match No match No match The shell should only print `No directory' when a directory does not exist (ENOENT) or cannot be read (EACCES). Yes, it is expected that invalid patterns such as `[' and `[]' result in the shell printing a `No match' diagnostic. * Changed the `<--' input redirection argument to `<-' instead. This seems more consistent and will allow for possibly clearer documentation in the future (if and when I add another feature I've been thinking about). fd2.[1c]: * Removed the fd2 utility and its manual page because of possible licensing issues. ------------------------------------------------------------------------------- [osh-040718]: This release is made primarily to synchronize with the new branch of the shell which is named `sh6'. osh.1: * More revisions and clarifications... ------------------------------------------------------------------------------- [osh-040714]: Makefile: * Refined the description for _XOPEN_SOURCE a little. osh.1: * General improvements... This includes documenting some things that have never been very well documented in this shell. osh.c: C: Made changes to globbing which affect the shell in compatible mode. This includes the addition of the `No directory' diagnostic which was present in /etc/glob from Sixth Edition Unix. Also, it looks like I had previously misinterpreted exactly when the `No match' diagnostic was supposed to be printed. Now, when running in compatible mode the shell really is compatible. Yay =) * Added a `umask' special command. * Disallow SIGCHLD from being trapped. When this signal is requested in a `trap' command, it is quietly disallowed. This is the same behaviour seen with both SIGKILL and SIGSTOP. Thus, doing a `trap + 9 17 20' quietly has no effect. * Made changes to how the shell builds a command's argument vector. Previously, malloc(3) was used. Now, each command in the command line is simply split into `\0'-terminated words. Each argument is actually a pointer to the corresponding word in the command line. The changes to parameter substitution in osh-040628 made this a perfectly sensible course of action. This change also gives a microscopic improvement in run-time performance (as judged by time(1)). The only remaining use of malloc(3) in the shell's execution stage can be found in globargs(). ------------------------------------------------------------------------------- [osh-040628]: Thanks to Stephen M. Jones for suggesting that osh should be able to read a global rc file. Thanks to Stephen C. VanDahm for assisting with some portability issues found in osh-040421. Thanks also to Josep Portella Florit for reviewing osh-040421, making several useful suggestions, and sending patches. BTW, many changes were made to the manual pages. I hope they are clear, but I trust that if they are not then someone might be kind enough to tell me so and/or make suggestions. Some new files are included: examples/*: initialization file examples fd2.[1c]: the fd2 utility Makefile: * Added some notes about _XOPEN_SOURCE. * Added a target to optionally build and install fd2. * Removed the compile-time definition of `CLONE'. This is now a run-time option which can be toggled in order to enable or disable enhancements to the shell. osh.c: C: Changed how the shell does parameter substitution. This was the last major incompatibility w/ the Thompson shell. Now, substitution is done *before* any command-line parsing takes place. * Added the ability for login shells to read the initialization files /etc/osh.login and/or $HOME/.osh.login if they exist. A shell is considered to be a login shell if its first argument starts w/ a `-' character (e.g., -osh). * Added a `set' command to allow shell compatibility to be toggled at run time. In addition, the shell now checks for `OSH_COMPAT' in the environment to tell future invocations of the shell which mode the user wishes to run in. * In addition to the `set' command mentioned above, the following special built-in commands have been added and are available when the shell is in "noclone" mode: exec, setenv, trap, unsetenv * In globargs(), use `gl_pathc == 0' to detect an unmatched pattern instead of checking if glob(3) returned `GLOB_NOMATCH'. This allows for those cases where glob(3) may not be POSIX-compliant. * Made osh command files that are run asynchronously ignore interrupts. For example, `osh runcom&' should ignore SIGINT and SIGQUIT, and now it does. * Reverted a so-called compatibility fix made in osh-040421. Now, ignore SIGINT and SIGQUIT for asynchronous commands invoked from a command file. From a usability perspective, it is simply too annoying to not do it this way. * Changed the `exit' command so that it always terminates a shell when reading commands from a file. Previously, it only terminated a shell when invoked as `osh file'. Note that `exit' still has no effect for interactive shells or `osh -c command'; this is intentional as it is compatible w/ the behaviour of `exit' under the Thompson shell. if.c: * Include stdlib.h for exit(3) so that OS X doesn't complain. * Rename exp() to expr() to avoid conflicts w/ exp(3) on OS X. Strange, as math.h is not included there should not have been any conflict. Oh well, it is fixed now. * Enable this utility to return a meaningful exit status to the user. In short, `if foo = foo' returns an exit status of 0; `if foo = bar' returns an exit status of 1. Previously, exit status was always 0. * Made the usage less ambiguous; corrected the documentation to reflect the actual behaviour. In short, usage is (and always has been) as follows: if expr [command [arg ...]] * Added some useful conditional primaries for constructing expressions. See the manual pages for details. * Use the stdio(3) functions instead of write(2) for printing the error messages. * In addition, added some useful diagnostic messages which were inspired by the test(1) utility from Seventh Edition Unix. goto.c: * Give an error message when standard input is not seekable. Previously, a label not found error would be produced instead. fd2.c: * A new utility and manual page... It is an adaptation of the PWB/Unix (roughly PWB/1.0 ?) redirect diagnostic output command. The original source came from the file `spencer_pwb.tar.gz' which can be found at: http://www.tuhs.org/Archive/PDP-11/Distributions/usdl/
2004-12-03Rename ALL_TARGET to BUILD_TARGET for consistency with other *_TARGETs.wiz2-4/+4
Suggested by Roland Illig, ok'd by various.
2004-11-29PKGREVISION bump for previous (since a binpkg already exists for thetv1-2/+2
afflicted platform).
2004-11-29Add glob workaround from <hiramatu@boreas.dti.ne.jp> in PR pkg/25908.tv1-1/+3
2004-11-25Add TEXINF_REQD to 4.0 to work on NetBSD 1.5.3.taca1-1/+2
Reported by mochida at Netside.
2004-11-12Wrapper scripts break when passed an argument that contains a newlinejlam2-1/+17
character, so remove it from the ast-ksh make.probe.
2004-10-23Add multibyte option to allow to disable multibyte support explicitly.minskim1-2/+12
2004-10-23Append options to PKG_DEFAULT_OPTIONS instead of ${PKG_OPTIONS_VER},minskim1-12/+6
following the semantic change of PKG_DEFAULT_OPTIONS.
2004-10-23Enable multibyte support in default. It will be disabled by configureminskim7-10/+150
if wctype_t is not available. Bump PKGREVISION.
2004-10-22Convert to use bsd.options.mk and add a new option, multibyte, tominskim1-4/+21
enable/disable multibyte support. Ok'ed by wiz@.
2004-10-22Make this work on NetBSD 1.6.2 (pkg/27330). Patch from Juan RP, minormartti1-4/+9
fixes by me.
2004-10-21Remove readline dependency, it's not needed really... because bashxtraeme1-4/+1
uses its own, and there isn't any test in the configure script. Pointed out by wiz@.
2004-10-21Added bash-3.0.xtraeme1-1/+2
2004-10-21Initial import of bash-3.0. It's imported as bash (not bash3) becausextraeme4-0/+91
our existing bash package already is called bash2. If you want to see the new features, please take a look at the NEWS file.
2004-10-03Libtool fix for PR pkg/26633, and other issues. Update libtool to 1.5.10tv1-2/+2
in the process. (More information on tech-pkg.) Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and installing .la files. Bump PKGREVISION (only) of all packages depending directly on the above via a buildlink3 include.
2004-09-08Fix build with gcc2.jmmv2-1/+24
2004-08-29update to posh-0.3.9recht2-5/+5
patch provided by pancake at phreaker.net in PR 26777 changes (from Debian changelog): 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.
2004-08-27Look for libncurses also.kim2-1/+15
2004-08-27Replace RPATH_FLAG with LINKER_RPATH_FLAG and COMPILER_RPATH_FLAG,jlam1-2/+2
which are the full option names used to set rpath directives for the linker and the compiler, respectively. In places were we are invoking the linker, use "${LINKER_RPATH_FLAG} <path>", where the space is inserted in case the flag is a word, e.g. -rpath. The default values of *_RPATH_FLAG are set by the compiler/*.mk files, depending on the compiler that you use. They may be overridden on a ${OPSYS}-specific basis by setting _OPSYS_LINKER_RPATH_FLAG and _OPSYS_COMPILER_RPATH_FLAG, respectively. Garbage-collect _OPSYS_RPATH_NAME and _COMPILER_LD_FLAG.
2004-08-22Make this build and install under Linux and IRIX, using ideas fromjschauma2-2/+14
Roland Illig in PR pkg/26604.
2004-08-22Change the way that legacy USE_* and FOO_USE_* options are convertedjlam1-8/+3
into the bsd.options.mk framework. Instead of appending to ${PKG_OPTIONS_VAR}, it appends to PKG_DEFAULT_OPTIONS. This causes the default options to be the union of PKG_DEFAULT_OPTIONS and any old USE_* and FOO_USE_* settings. This fixes PR pkg/26590.
2004-08-20Set "BUILDLINK_PASSTHRU_RPATHDIRS" to stop buildlink3 from removing "/lib"tron1-5/+8
from the run time shared library path instead of trying to defeat its option parser.
2004-08-20Improve handling of "ZSH_STATIC" again:tron1-2/+15
1.) Only create a dynamically linked "zsh" binary if "MKDYNAMICROOT" is defined and set to "yes". This way people who still use statically linked binaries on their root filesystem will get a static binary. 2.) Link the "zsh" binary so that it use "/libexec/ld.elf_so" and shared libraries from "/lib". It now works without the "/usr" filesystem being mounted.
2004-08-20Don't create a statically linked "zsh" binary on NetBSD system which havetron1-1/+4
dynamic library support on the root partition (e.g. 2.0 and newer). It is enough that the "zsh" binary does *not* depend on its own shared libraries which won't be on the root partition and we get a shell with proper I18N support this way. Approved by Masao Uebayashi.
2004-08-16update to zsh-4.2.1recht7-25/+32
Changes since zsh version 4.2.0 ------------------------------- - The autoload and related builtins take options -k and -z to indicate ksh or zsh autoloading style for given functions, making it possible to mix and match. - Assignments to associative arrays can use the i and r index flags. For example, assoc[(i)alpha*]=bravo sets the value for the element whose key matches the pattern `alpha*'; assoc[(r)activ*]=passive sets the value for the element whose current value matches the pattern `activ*'. - The glob qualifier F indicates a non-empty directory. Hence *(F) indicates all subdirectories with entries, *(/^F) means all subdirectories with no entries. - fc -p and fc -P provide push/pop for the status of the shell's history (both internal and using the history file). With automatic scoping (fc -ap) it becomes easy to use a temporary history in a function. This has been added to the calculator function zcalc to make its internal history work more seamlessly. - A new `try block' and `always block' syntax has been introduced to make it easier to ensure the shell runs important tidy-up code in the event of an error. It also runs after a break, continue, or return, including a return forced by the ERR_RETURN option (but not an exit, which is immediate). The syntax is: `{' try-block-list `}' `always' `{' always-block-list `}' where no newline or semicolon may appear between `}' and `always'. This is compatible with all previous valid zsh syntax as an `always' at that point used to be a syntax error. For example, { echo Code run in current shell } always { echo Tidy-up code } - A new zle widget reset-prompt has been added to re-expand the current prompt. Changes to the variable in use as well as changes in its expanions are both taken into account. The same effect is now forced by a job change notification, making the %j prompt escape and %(j..) ternary expression more useful. - The zftp module supports ports following the hostname in the normal suffix notation, `host:port'. This requires IPv6 colon-style addresses to be specified in suitably quoted square brackets, for example: zftp open '[f000::baaa]' zftp open '[f000::baaa]:ftp' (the two are equivalent). - Special traps, those that don't correspond to signals, i.e. ZERR, DEBUG and EXIT are no longer executed inside other traps. This caused unnecessary confusion if, for example, both DEBUG and EXIT traps were set. The new behaviour is more compatible with other shells. - New option TRAPS_ASYNC which if set allows traps to run while the shell is waiting for a child process. This is the traditional zsh behaviour; POSIX requires the option to be unset. In sh/ksh compatibility mode the option is turned off by default and the option letter -T turns it on, for compatibility with FreeBSD sh.
2004-08-13This can be built on Linux. No longer restricted only for NetBSD.uebayasi1-4/+1
Reported by Roland Illig, PR26623.
2004-08-07Convert bash2 to use bsd.options.mk.minskim1-3/+17