OpenSolaris

Printable Version Enter a New Search
Bug ID 5034853
Synopsis SUSv3 shell updates improperly propagated to /bin/ksh
State 11-Closed:Will Not Fix (Closed)
Category:Subcategory shell:korn
Keywords
Reported Against s10_55 , s10_63
Duplicate Of
Introduced In
Commit to Fix
Fixed In
Release Fixed
Related Bugs 4763915 , 6437624 , 5070765 , 4113420 , 6186072
Submit Date 20-April-2004
Last Update Date 20-April-2004
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.
Work Around
N/A
Comments
N/A