I. Szczesniak writes:
> Where is the ARC case for the bash2 to bash3 upgrade?
This is by now some ancient history, but as best I can gather, this
case introduced bash2:
"Getting with the Freeware Program" (PSARC 1999/555)
It introduced it as having "Standard" stability level, because
"External" didn't exist at the time. The Standard stability level may
be a bit counter-intuitive, as we treat things that are "Standard" as
requiring conformance to some written standard rather than needing
backward compatibility. In other words, we end up supporting some
list of enumerated (and versioned) standards, rather than a single
path to an evolving object.
The opinions for these two cases:
"Solaris/Linux API compatibility" (PSARC 2000/487)
"Solaris/Linux Commands Compatibility" (PSARC 2000/488)
noted that we (the ARC) probably got the stability level wrong for
1999/555. What's needed by customers isn't a strict reference to some
numbered version (as is called for in a "Standard"), but rather a
promise to provide "latest and greatest" to the extent we're able.
Then:
"Taxonomy Modification to 1999/555" (PSARC 2001/799)
changed bash from Standard to External, and (as best I can tell) also
updated bash2 to bash3 as a side-effect, though the materials were not
clear about this. Zsh was separately upgraded to 4.1.1 via:
"zsh 4.1.1" (PSARC 2003/680)
It seems to me that what was integrated for 2001/799 doesn't match
what was approved (i.e., the feared transition to /usr/sfw/bin didn't
happen), but that's a separate matter and for the greater good anyway.
(I could be missing something here, but I don't see where the
requirement to deliver via an out-of-the-way place was removed.)
It should be obvious, but I'll call it out specifically anyway: we
have historically drawn a bright line between things on which users
and other implementors can depend, and things on which they cannot
depend. The history here makes it clear that we pay *FAR* more
attention to the behavior of the former than the latter.
> This could be
> used as a template for the requested document as bash3 is not fully
> downward compatible to bash2 either.
No, that won't work very well as a template. Bash is clearly
documented as having "External" stability, while ksh is either Stable
or Standard (depending on which one you use). This means that no
supportable software can actually depend on bash compatibility in
Solaris, but that the documented ksh behavior _can_ be relied on.
Bash(1) says:
See attributes(5) for descriptions of the following attri-
butes:
box; cbp-1 | cbp-1 l | l . ATTRIBUTE TYPE ATTRIBUTE VALUE =
Availability SUNWbash = Interface Stability External
(Ahem. Looks like mangled nroff there. :-/)
As the attributes(5) man page says:
External Micro (x.y.z) Not controlled by Sun:
intrarelease incompatibilities are
common.
[...]
External
An External interface is controlled by an entity other
than Sun. At Sun's discretion, Sun can deliver as part
of any release updated and possibly incompatible ver-
sions of such interfaces, subject to their availability
from the controlling entity. This classification is typ-
ically applied to publicly available "freeware" and
similar objects.
For External interfaces, Sun makes no claims regarding
either source or binary compatibility between any two
releases. Applications based on these interfaces might
not work in future releases, including patches that con-
tain External interfaces.
Ksh does not (and cannot now) enjoy that sort of leeway.
--
James Carlson, KISS Network <james.d.carlson at sun.com>
Sun Microsystems / 1 Network Drive 71.232W Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1 781 442 1677