|
Description
|
Since upgrading my desktop to s10_55, I have been fighting a number of
mysterious problems with desktop applications; things that used to start on
login don't start, applications fail when starting child processes (like
handlers for MIME attachments in my mailer), etc.
After a fair amount of debugging, I believe the problems stem from the
modifications made for 4763915 (UNIX03: *ksh* Bring ksh into compliance with
SUSv3). The modification of interest was a change in the processing of the
$ENV file; formerly it was done on every shell invocation, and now it is
done only on _interactive_ shell invocations. Because of this, actions
which are defined in my $ENV file are not being performed; for instance,
desktop applications are not getting their environments set properly.
There are really two separate issues with this.
First, the behavior of /bin/ksh should not have been incompatibly changed in
this way, since ksh is not defined to be even xpg4 compliant, let alone xpg6
compliant. Customers will almost certainly have applications/environments
which depend upon the historical behavior. This situation (standards
compliance changes to the xpg "sh") has occurred before, and the action
taken was to not implement those changes in /bin/ksh; see PSARC/2001/561,
"forked /usr/bin/ksh and /usr/xpg4/bin/sh", for the precedent. (See also
the well-founded compatibility concerns in 4113420.)
Second, since the new SUSv3-required ENV behavior is not upward-compatible
with the old SUSv2 behavior, and may break some old SUSv2 scripts, I would
argue that this change should not have even been made to /usr/xpg4/bin/sh,
but should have been resulted in another sh fork, creating /usr/xpg6/bin/sh
to implement the new behavior.
|