./shells/osh, Port of the Sixth Edition UNIX shell

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 20160108, Package name: osh-20160108, Maintainer: jan+nbsd

Osh is an enhanced, backward-compatible port of the original sh(1)
that was used as the standard command interpreter through Sixth
Edition UNIX. It was also distributed with Seventh Edition UNIX
as osh. Its command language is a predecessor and subset of that
found in the Bourne shell and C shell.

This product includes software developed or owned by Caldera International, Inc.

Required to build:

Master sites:

SHA1: b632901428c163b233646db70e38c96648be3a3a
RMD160: 3a6eaf346c06c7fda685b95c108870608ec3e1ea
Filesize: 126.662 KB

Version history: (Expand)

CVS history: (Expand)

   2016-01-13 14:14:21 by Niclas Rosenvik | Files touched by this commit (4) | Package updated
Log message:
Update shells/osh to version 20160108 as request by upstream on

Also added copyright notices and installation of the license to make the
package compilant with it's license.


Changes that improve compatibility w/ the Sixth Edition (V6) UNIX
Thompson shell are marked w/ a `C:' in the details below.

[osh-current] (development):
	* Work In Progress ( see http://v6shell.org/src/current/ )

[osh-20160108] (latest):
	* Updated supported systems to include FreeBSD 10.2,
	  Mac OS X 10.11 (El Capitan), NetBSD 7.0, OpenBSD 5.[78],
	  and Debian 8.2 (jessie).

	* Changed `-W' to `-Wextra' (same warning, newer name).  From gcc(1) -
	  This option used to be called -W.  The older name is still supported,
	  but the newer name is more descriptive.

	* Updated the URL for dmr's home page at Bell Labs.

	* Added a sh6-related comment to the top of the header files
	  since they are used by sh6 and its external utilities.

	* Redirected diagnostics from leaks(1) (Mac OS X) to /dev/null.

if.c, osh.c, strtoint.[hc], util.c:
	* Changed the strtoint() function to convert string into a
	  long instead of an int, and ensured that numbers which might
	  be considered to have an octal form (valid or invalid) are
	  not treated as if they are decimal integers.  For example:
	  `if 0[0-9] -eq [0-9]' and `if [0-9] -eq 0[0-9]' and similar
	  are always false, resulting in an error.

if.c, util.c:
	* Changed how the built-in & external if(1) commands call
	  the strtoint() function.

err.h, strtoint.c:
	* Changed the "not an integer" diagnostic for the strtoint()
	  function to "bad integer".

err.h, if.c, util.c:
	* Changed the "not a digit" diagnostic for the built-in & external
	  if(1) commands to "bad digit".

	* Changed the order of the definitions for diagnostics to make finding
	  the "... expected" ones for if(1) a bit easier.

	* Added OS X 10.10 (Yosemite) to supported systems.

	* Added Debian 7.7 (wheezy) to supported systems.

	* Changed /usr/X11 to /opt/X11 in *PATH.

	* Updated the sh6i alias to make it trap and untrap the 1 (HUP),
	  2  (INT), 3 (QUIT), 13 (PIPE), 14 (ALRM), 15 (TERM), 18 (TSTP),
	  21 (TTIN), and 22 (TTOU) signals accordingly for better behavior.

	* See CHANGES6 .

	* Changed MOXARCH to OSXCFLAGS & OSXLDFLAGS to play better w/ MacPorts.

	* Added comment to celebrate 12 years of osh via osh-current.

	* Added missing (+) to version in Special commands.

	* Enable `.' and `source' special built-in command execution
	  to succeed when the user invokes the shell as `osh -c string'.

		% osh -c '. file [arg1 ...]' [arg1 ...]


		% osh -c 'source file [arg1 ...]' [arg1 ...]


	* Changed `LICENSE' to LICENSE to match the other manual pages.

	* Changed `sigign' invocation to `trap'.

	* Added two useful pwd-related aliases: `ocpwd' and `opwd'

	* Added a `now' and a `sysinfo' alias.

	* Removed the deprecated $n and $s parameters.
	  Now, the user can `set' and `unset' n and s as shell variables.
	  The following command line is a simple way to replace
	  all instances of $n w/ $# and $s w/ $? in file:

		% <file(rm -f file;sed 's/$n/$#/g;s/$s/$?/g'>file)


	* Added code to print diagnostics w/ line numbers when possible.
	  When reporting error(s), if a diagnostic is to be printed, the
	  shell gets the line number of the file where the error happened,
	  adjusts the diagnostic (adding the name of the file and the line
	  number if the standard input from which the shell reads and
	  interprets commands lines is seekable), and prints it.  EG:

		% echo R* ; osh R* ; head -1 R*
		osh: README: 1: syntax error
		Welcome to Osh (V6Shell) - osh-20130331 !


	* Renamed the `sigign' special built-in command to `trap'
	  to make osh signal-trapping behavior more sh-like.  Granted,
	  trap is a misnomer since osh only ignores signals for now.

	* Removed the documentation for the $n and $s parameters.

	* Changed the documentation for `sigign' to `trap' as needed.

	* Made stty(1) invocation conditional in .../etc.osh.login .

	* Escaped $1 when setting hcount alias in .../dot.oshrc .

	* New file:  Makefile.config  (included from Makefile)

	* New files: strtoint.[ch] (string to integer converter)

	* New files: tests/* (regression test suite for osh/sh6)

	* Added a "check" target to run the tests w/ osh and sh6.

	* Added a "check-newlog" target to generate new test logs
	  for the osh and sh6 tests.

	* Limited maximum PATHMAX definition to 1024.

	* Changed errno to ENAMETOOLONG for each `path too long' error.

	C: Added missing `Command line overflow' diagnostic.

	* Added $# (as a synonym for $n) parameter.

	* Added $? (as a synonym for $s) parameter.

	* Deprecated $n and $s parameters in favor of $# and $?.
	  $n and $s parameters will be removed after this release.

	* Added simple shell variables. This allows the user to `set' and
	  `unset' shell variables. For compatibility, these variables are
	  limited to uppercase and lowercase ASCII alpha names that are
	  one character in length. For example: $A $B $C and $a $b $c
	  and so forth.

	* Changed quoting to allow $ substitution within double (") quotes.
	  For example: "$$", "$*", "$1", and so forth. \ 
This makes parameter
	  and variable substitution much more flexible.

	* Added `.' as a synonym for `source'.

	* Enabled PATH search when opening file for `.' and `source'.

	* Changed `setenv' built-in command usage and behavior. Now, name
	  requires value argument. Updated osh.1 manual page accordingly.

	* Added new operators to the built-in `if' command for osh
	  and to the external `if' command for sh6. Updated the if.1
	  manual page accordingly. The new operators include: <, >,
	  -eq, -ne, -gt, -ge, -lt, -le

	* Flagged $n and $s parameters as deprecated.

	* Added `set' and `unset' documentation to the
	  "Special commands" subsection.

	* Added a new "Variable substitution (+)" subsection.

	* Documented `.' as a synonym for `source', and added relevant
	  PATH search documentation.

	* Simplified "SECURITY" section a bit.

	* Updated "Quoting" subsection to describe double (") quotes \ 

	* Made various changes to reflect current and future osh behavior.

	* Changed _XOPEN_SOURCE definition from 600 to 600L .

	* Added DEBUG_ALIAS, DEBUG_GLOB, and DEBUG_PROC definitions
	  (undefined by default) for printf debugging in osh.c and
	  util.c if/when needed.

	* Changed exit status for alias and unalias so that they exit w/ a
	  false (1) status when there are no aliases to print, set, or unset.
	  Otherwise, they exit w/ a true (0) status when there is no error.

	* Added 'version' as special built-in command.

	* Adjusted $v description in "Parameter substitution" subsection.

	* Added version description to "Special commands" subsection.

	* Added uname(1) to "SEE ALSO" section.

	* Replaced the 'version' alias w/ alias 'v1' 'version'
	  to invoke the 'version' special built-in command.

	* Re-added missing ';s/ \$//' that git ident removed from version alias.
	  This removes trailing ' $' as shown in example 1 and 2 below:

		% : example 1 ; version
		osh-20111129 (NetBSD 5.1 amd64) $

		% : example 2 ; version
		osh-20111129-p1 (NetBSD 5.1 amd64)

mkconfig, v.c:
	* Added useful build system info from `uname -srm'.

	* Removed code to replace osh w/ sh6 when invoked as
	  `osh [-i | -l] sh6'.  Use sh6i alias instead.

	* Changed sh6i alias for sake of simplicity.

	* Removed sh6l alias.

	* Changed from using kill(1) to kill current ssh-agent process
	  to using ssh-agent(1) and its `-k' flag instead.

	* Added handy new v and version aliases.  For example:

		% v ; : Same as doing % echo $v

		% version
		osh-20111129 (NetBSD 5.1 amd64)

	* New file: DEDICATIONS (in memory of Dennis M. Ritchie (dmr))

	* Added reference to DEDICATIONS file.

	* Added two more OpenBSD license references.

	* Fixed a problem w/ the mkconfig script on OpenBSD, where which(1)
	  used to send a "newgrp: Command not found." diagnostic to standard
	  output, not standard error. It looks like the noted OpenBSD which(1)
	  problem has since been fixed though.

	* Fixed a globbing problem caused by an unsigned-integer overflow.

	* Added $# (as a synonym for $n) and $* parameters.

	* Added a new, command-aliasing feature.

	* Added `alias' and `unalias' documentation to the
	  "Special commands" subsection.

	* Added a new "Aliases (+)" subsection.

	* Added a new "Metacharacters" subsection.

	* Changed the visual style of the manual pages, regarding bold, italic,
	  and `literal' text.  The intent was to make for easier reading.

	* Added `:' as if(1) special command. It is useful when debugging
	  scripts and helps when documenting them.

	* Documented by example how to turn alias arguments into a no-op.

	* Added ssh-agent support.  This allows the same ssh-agent process
	  to be used for shared ssh key(s) across multiple concurrent
	  login sessions. It also kills the ssh-agent process on
	  logout when appropriate.
   2015-11-03 00:00:35 by Alistair G. Crooks | Files touched by this commit (25)
Log message:
Add SHA512 digests for distfiles for shells category

Existing SHA1 digests verified, all found to be the same on the
machine holding the existing distfiles (morden).  Existing SHA1
digests retained for now as an audit trail.
   2014-10-09 16:07:17 by Thomas Klausner | Files touched by this commit (1163)
Log message:
Remove pkgviews: don't set PKG_INSTALLATION_TYPES in Makefiles.
   2012-09-12 01:25:10 by Aleksej Saushev | Files touched by this commit (26)
Log message:
"user-destdir" is default these days
   2012-02-16 20:44:57 by Hans Rosenfeld | Files touched by this commit (1)
Log message:
Make sure the correct install tool is used.
   2010-05-07 14:02:45 by Julio M. Merino Vidal | Files touched by this commit (20) | Package updated
Log message:
Bump PKGREVISION to reflect the recent change in pkginstall/shells to use
etcutils to update /etc/shells.
   2010-05-02 12:31:12 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
Update to 20100430, from J.A. Neitzel in PR 43235:

1) osh globbing is now handled by the main osh process, allowing
(for example) `mkdir some_really_long_directory_name...  ; cd
some*...' and globbing for other special built-in commands as well.

2) A new, osh history-file-support feature has been added to save
the user's command-line history to the user $h/.osh.history file
if/when this file exists upon shell invocation.
   2010-01-05 12:21:42 by Thomas Klausner | Files touched by this commit (1) | Package updated
Log message:
Fix typo in previous.
Update was ok'd by dillo@