I'm not a member of PSARC and can't actually vote here, but I would have
to give this case a -1.
It's not that I don't think that the ksh93 built-ins have a place and
that they couldn't be a perfectly reasonable default for most people.
In some cases, they seem to provide something that is sorely needed in
the Solaris userland, a blend of POSIX conforming and GNUish commands.
Several things concern me about this case.
* When I (read any user) explicitly set my PATH to include /usr/bin,
/usr/xpg4/bin, /usr/xpg6/bin, ..., I expect that my selection will
be honored. I am asking for a specific toolset and expect a bug
for bug compatible version.
* "default" behaviour should apply across the board here.
For several paths on the system, customers expect certain behaviour
/usr/xpg4 XPG4 compatible behaviour
/usr/xpg6 XPG6 compatible behaviour
/usr/gnu GNU/Linux compatible behaviour
/usr/ucb SunOS/BSD 4.X behaviour
/usr/5bin SVR3 compatible behaviour
...
On 03/18/10 10:24 AM, Garrett D'Amore - sun microsystems wrote:
> Template Version: @(#)sac_nextcase 1.69 02/15/10 SMI
> This information is Copyright 2010 Sun Microsystems
> 1. Introduction
> 1.1. Project/Component Working Name:
> More ksh93 builtins
> 1.2. Name of Document Author/Supplier:
> Author: Olga Kryzhanovska
> 1.3 Date of This Document:
> 18 March, 2010
> 4. Technical Description
>
> I'm sponsoring this fast-track request on behalf of the
> ksh93-integration project.
> Please note that this is an *open* case.
>
> The release binding is the same as with the ksh93 project: a
> patch/micro release of Solaris delivering through ON
> Stability levels are as described below.
>
>
> This project is an amendment to the Korn Shell 93 Integration project
> (PSARC/2006/550 and PSARC/2007/035, PSARC/2008/094, PSARC/2008/344
> and PSARC/2008/589) specifying the following additional
> interfaces:
> Addition of /usr/gnu/bin, /usr/xpg4/bin and /usr/bin built in
> mappings in ksh93
>
> Bug/RFE Number(s):
>
> 6935110 ksh93 needs (more) XPG, GNU built ins
>
> 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: ksh93 built in mappings for /usr/gnu/bin utilities
> ----------------------------------------------------------
> The case proposes to enable the following mappings to ksh93 built in
> commands for utilities in /usr/gnu/bin. When the utility is called
> using it's command name, and not the full path, the ksh93 builtin
> will be used instead of executing the /usr/gnu/bin binary.
>
>
> Interface Stability Description
> --------- --------- -----------
> ksh93 '/usr/gnu/bin/basename' built in Uncommitted basename utility
> with GNU extensions
> ksh93 '/usr/gnu/bin/cksum' built in Uncommitted cksum utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/comm' built in Uncommitted comm utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/cut' built in Uncommitted cut utility with GNU
> extensions
> ksh93 '/usr/gnu/bin/dirname' built in Uncommitted dirname utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/expr' built in Uncommitted expr utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/fold' built in Uncommitted fold utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/join' built in Uncommitted join utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/logname' built in Uncommitted logname utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/mkdir' built in Uncommitted mkdir utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/mkfifo' built in Uncommitted mkfifo utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/mktemp' built in Uncommitted mktemp utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/pathchk' built in Uncommitted pathchk utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/paste' built in Uncommitted paste utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/sleep' built in Uncommitted sleep utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/sync' built in Uncommitted sync utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/tee' built in Uncommitted tee utility with GNU
> extensions
> ksh93 '/usr/gnu/bin/tty' built in Uncommitted tty utility with GNU
> extensions
> ksh93 '/usr/gnu/bin/uniq' built in Uncommitted uniq utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/rmdir' built in Uncommitted rmdir utility with
> GNU extensions
> ksh93 '/usr/gnu/bin/wc' built in Uncommitted wc utility with GNU
> extensions
>
> Notes
> -----
> Compatibility of AT&T AST ksh93 built in utilities and GNU
> coreutils implementations:
> Modulo correction bugs in the implementation, we believe that the
> ksh93 built in utilities act as a 100% compatible drop in for the
> GNU programs sans wording of --help, --version and error message
> output (error messages are Not-An-Interface).
>
> Compatibility between ksh93 built in utility implementation and GNU
> coreutils implementation:
> Should a future ARC case will add new features to the GNU coreutils
> utilities the project team will update the corresponding ksh93 built
> in utility. Should this not be possible the ksh93 project team will
> remove the mapping.
>
>
>
> Part 2: ksh93 built in mappings for /usr/xpg4/bin utilities
> ----------------------------------------------------------
> The case proposes to enable the following mappings to ksh93 built in
> commands for utilities in /usr/xpg4/bin. When the utility is called
> using it's command name, and not the full path, the ksh93 builtin
> will be used instead of executing the /usr/xpg4/bin binary.
>
> Interface Stability Description
> --------- --------- -----------
> ksh93 '/usr/xpg4/bin/basename' built in Committed POSIX basename
> utility
> ksh93 '/usr/xpg4/bin/egrep' built in Committed POSIX egrep utility
> ksh93 '/usr/xpg4/bin/fgrep' built in Committed POSIX fgrep utility
> ksh93 '/usr/xpg4/bin/grep' built in Committed POSIX grep utility
> ksh93 '/usr/xpg4/bin/id' built in Committed POSIX id utility
> ksh93 '/usr/xpg4/bin/rm' built in Committed POSIX rm utility
>
>
>
> Part 3: ksh93 built in mappings for /usr/bin utilities
> ----------------------------------------------------------
> The case proposes to enable the following mappings to ksh93 built in
> commands for utilities in /usr/bin. When the utility is called
> using it's command name, and not the full path, the ksh93 builtin
> will be used instead of executing the /usr/xpg4/bin binary.
>
> Interface Stability Description
> --------- --------- -----------
> ksh93 '/usr/bin/dirname' built in Committed POSIX dirname
> utility
>
>
> General comments
> ----------------
> This case heavily builds on PSARC/2006/550 which was the first
> PSARC case to introduce the concept of shell built ins bound
> to a path.
>
>
> Future development
> ------------------
> The shell project team will file separate ARC case to add the same
> shell built ins to bash4, reusing the same code as ksh93
> (libcmd.so.1).
> The shell project will provide an API within libcmd.so.1 for other
> shells (e.g. bash4) and applications to call the built ins directly.
> This API will be available as contracted API until sufficient
> experience has been collected and then opened as Committed
> interface.
>
>
>
> 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
>
>