I'm sponsoring this fast-track request on behalf of Roland Mainz and the
ksh93-integration project.  It consists of more commands being converted
to use internal ksh93 builtins.  

Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
         more ksh93 command conversions
    1.2. Name of Document Author/Supplier:
         Author:  Roland Mainz
    1.3  Date of This Document:
        20 April, 2009
4. Technical Description

Please note that this is an *open* case.

The release binding is the same as with the previous ksh93 project: a
patch/micro release of Solaris delivering through OS/Net
Stability levels are as described below.

Additional materials (man pages and diffs) can be found in the
'materials/' subdirectory.

This project is an amendment to the Korn Shell 93 Integration project
(PSARC/2006/550, PSARC/2006/587, PSARC/2007/035, PSARC/2008/094,
PSARC/2008/344, PSARC/2009/063 and PSARC/2009/248) and depends on
PSARC/2009/248, specifying the following additional interfaces:

1) An enhanced version of the "cksum" utility and an identical ksh93
  built-in command
2) An enhanced version of the "head" utility and an identical ksh93
  built-in command
3) An enhanced version of the "join" utility and an identical ksh93
  built-in command
4) An enhanced version of the "logname" utility and an identical ksh93
  built-in command
5) An enhanced version of the "mkfifo" utility and an identical ksh93
  built-in command
6) An enhanced version of the "tail" utility and an identical ksh93
  built-in command
7) An enhanced version of the "tee" utility and an identical ksh93
  built-in command


Bug/RFE Number(s):

6793763 RFE: Update /usr/bin/ksh93 to ast-ksh.2009-03-10
6828692 RFE: Update /usr/bin/cksum to AT&T AST "cksum"
6805812 RFE: Update /usr/bin/head to AT&T AST "head"
6805813 RFE: Update /usr/bin/join to AT&T AST "join"
6828644 RFE: Update /usr/bin/logname to AT&T AST "logname"
6805814 RFE: Update /usr/bin/mkfifo to AT&T AST "mkfifo"
6790507 RFE: Update /usr/bin/tail and /usr/xpg4/bin/tail to
        AT&T AST "tail"
6805819 RFE: Update /usr/bin/tee to AT&T AST "tee"



Interface                         Stability        Description                  
           
---------                         ---------        -----------  
/usr/bin/cksum                    Commited         cksum command
/usr/bin/head                     Commited         head command
/usr/bin/join                     Commited         join command
/usr/bin/logname                  Commited         logname command
/usr/bin/mkfifo                   Commited         mkfifo command
/usr/bin/tail                     [1]              tail command
/usr/xpg4/bin/tail                [1]              XPG4 tail command
/usr/bin/tee                      Commited         tee command

[1]=Stabiltiy for /usr/bin/tail and /usr/xpg4/bin/tail is "Commited"
  except for "Uncommited" options "-q"/"--quiet" which are
  GNU-only and option "-b" which is now "Commited Obsolete".



##### Introduction:
This case proposes to deliver the following features as a set of
independent putbacks as they become available. Each feature is
self contained and independent of the others, so out of order
and partial putbacks at this granularity should have no adverse
impact on the functionality and behavior of the system as a whole.


#### Part 1: Enhancement of /usr/bin/cksum
The first part of this project specifies an enhancement to
/usr/bin/cksum and a new ksh93 built-in with the same name based on
the AT&T AST "cksum" command.

The AT&T version of the "cksum" utility
provides extensions not present in the current Solaris "cksum"
utility, which are useful for small applications to generate hash
sums (for example using the MD5 hash for MIME "Content-MD5:"-headers).

The AT&T AST version of the "cksum" utility provides support for the
following additional options found commonly in other
implementations such as GNU and BSD:
-- snip --
-a, --all
-b, --binary
-B, --scale
-c, --check 
-h, --header
-l, --list
-p, --permissions
-R, --recursive
-S, --silent|status
-t, --total
-T, --text
-w, --warn 
-x, --method|algorithm (default is "cksum")
-L, --logical|follow
-H, --metaphysical
-P, --physical
-r, --bsd
-s, --sysv
--man, --html, --nroff, --help, --version
-- snip --

The stability of the "/usr/bin/cksum" command and built-in
command-line interface and the system variables documented in
cksum(1) and specified by IEEE Std 1003.1-2008 is "Committed".

Note that the implementation will take the specified output format
string "%u %d %s\n" <checksum>, <# of octets>, <path name> now
literally, previously implementation used a <tab> instead of
<space> between %u and %d (the POSIX standard allows both <tab>
and <space>, however GNU and BSD implementations use <space> and
no other implementation except Solaris was found which uses
<tab>).

The "cksum" command will (re-)use the existing codepath for
/usr/bin/sum which uses libmd to use Solaris's native&&optimized
versions for ciphers like MD5 and the SHA*-family.


#### Part 2: Enhancement of /usr/bin/head
The second part of this project specifies an enhancement to
/usr/bin/head based on the AT&T AST "head" command.
The AT&T AST version of the "head" utility provides support for the
following additional options found commonly in other
implementations such as GNU and BSD:
-- snip --
--lines (same as existing "-n")
-c, --bytes
-q, --quiet|silent
-s, --skip
-v, --verbose
--man, --html, --nroff, --help, --version
-- snip --
The stability of the "/usr/bin/head" command and built-in
command-line interface (including the new options) and system
variables documented in head(1) and specified by IEEE
Std 1003.1-2008 is "Committed".
For further information/specifications see the materials/-folder.


#### Part 3: Enhancement of /usr/bin/join
The third part of this project specifies an enhancement to
/usr/bin/join based on the AT&T AST "join" command.
The AT&T AST version of the "join" utility provides support for the
following additional options found commonly in other
implementations such as GNU and BSD:
-- snip --
--empty (same as existing "-e")
--output (same as existing "-o")
--separator|tabs (same as existing "-t").
--j1 (same as existing "-1")
--j2 (same as existing "-2")
--join (same as existing "-j")
--unpairable (same as existing "-a")
--suppress (same as existing "-v")
-i, --ignorecase
-B, --mmap
--man, --html, --nroff, --help, --version
-- snip --
The stability of the "/usr/bin/join" command and built-in
command-line interface (including the new options) and system
variables documented in join(1) and specified by IEEE
Std 1003.1-2008 is "Committed".
For further information/specifications see the materials/-folder.


#### Part 4: Enhancement of /usr/bin/logname
The 4th part of this project specifies an enhancement to
/usr/bin/logname based on the AT&T AST "logname" command.
The AT&T AST version of the "logname" utility provides support for the
following additional options found commonly in other
implementations such as GNU and BSD:
-- snip --
--man, --html, --nroff, --help, --version
-- snip --
The stability of the "/usr/bin/logname" command and built-in
command-line interface (including the new options) and system
variables documented in logname(1) and specified by IEEE
Std 1003.1-2008 is "Committed".
For further information/specifications see the materials/-folder.


#### Part 5: Enhancement of /usr/bin/mkfifo
The 5th part of this project specifies an enhancement to
/usr/bin/mkfifo based on the AT&T AST "mkfifo" command.
The AT&T AST version of the "mkfifo" utility provides support for the
following additional options found commonly in other
implementations such as GNU and BSD:
-- snip --
--mode (same as existing "-m")
--man, --html, --nroff, --help, --version
-- snip --
The stability of the "/usr/bin/mkfifo" command and built-in
command-line interface (including the new options) and system
variables documented in mkfifo(1) and specified by IEEE
Std 1003.1-2008 is "Committed".
For further information/specifications see the materials/-folder.


#### Part 6: Enhancement of /usr/bin/tail and /usr/xpg4/bin/tail
The 7th part of this project specifies an enhancement to
/usr/bin/tail and /usr/xpg4/bin/tail based on the AT&T AST "tail"
command in one command which provides both the traditional Unix
"tail" functionality and the functionality defined in IEEE Std
1003.1-2008 plus the "historical" "-b" option.

The AT&T AST version of the "tail" utility provides support for the
following additional options found commonly in other
implementations such as GNU and BSD:
-- snip --
--lines (same as existing "-n")
--blocks (same as existing "-b")
--bytes (same as existing "-c")
--forever|follow (same as existing "-f")
-h, --headers
--lines (same as existing "-l")
-L, --log
-q, --quiet (GNU only, interface stability "Uncommited")
-r, --reverse (same as existing "-r")
-s, --silent
-t, --timeout
-v, --verbose
--man, --html, --nroff, --help, --version
-- snip --
The stability of the "/usr/bin/tail" and "/usr/xpg4/bin/tail"
commands and built-in command-line interface (including the new
options) documented in tail(1) and specified by IEEE
Std 1003.1-2008 is "Committed" except for the command-line
options "-q"/"--quiet" which are "Uncommited" (following the
rule that options should only be "Commited" if there is more
than one vendor implementation which implements it) and
"-b"/"--blocks" which is now "Commited Obsolete" (IEEE Std
1003.1-2008 now longer supports it - see
http://www.opengroup.org/onlinepubs/9699919799/utilities/tail.html
This is only a documentation change, the project team has no
intention to remove the implementation for "-b"/"--blocks" in
the forseeable future).
For further information/specifications see the materials/-folder.


#### Part 7: Enhancement of /usr/bin/tee
The 7th part of this project specifies an enhancement to
/usr/bin/tee based on the AT&T AST "tee" command.
The AT&T AST version of the "tee" utility provides support for the
following additional options found commonly in other
implementations such as GNU and BSD:
-- snip --
--append (same as existing -a)
--ignore-interrupts  (same as existing -i)
-l, --linebuffer
--man, --html, --nroff, --help, --version
-- snip --
Additinally the original documented limit of 13 file operands is
removed.

The stability of the "/usr/bin/tee" command and built-in
command-line interface (including the new options) and system
variables documented in tee(1) and specified by IEEE
Std 1003.1-2008 is "Committed".
For further information/specifications see the materials/-folder.


# EOF.


6. Resources and Schedule
    6.4. Steering Committee requested information
        6.4.1. Consolidation C-team Name:
                ON
    6.5. ARC review type: FastTrack
    6.6. ARC Exposure: open


Reply via email to