This is found during the zulu zones upgrade testing with snv_46 with bugid 6462725. The following packages had problems with CAS scripts during zones upgrade. The following are analysis of the problem and how to fix it:
SUNWi1of
#"@(#)i.fontsdir 35.1 94/09/01 Sun Microsystems"
#
# SUNWi1of (ISO-8859-1 (Latin-1) Optional Fonts) class action script for
# fontsalias class.
pkg SUNWi1of fails in remove and install:
EXEC_BASE=/usr
if [ ! -x $EXEC_BASE/openwin/bin/mkfontdir ]
then
# if mkfontdir doesn't exist we cannot proceed
exit 2
fi
the above should be within the:
while read src dst
do
loop
and $BASEDIR needs to be prepended to $EXEC_BASE/openwin/bin/mkfontdir
When removing SUNWi1of2 it exits 2 from a sub shell in a postremove script and exits 0 regardless:
FONTINSTDIR=/a/usr/openwin/lib/X11/fonts
+ export FONTINSTDIR
+ /bin/uname -p
+ [ sparc = sparc ]
EXEC_BASE=/a/usr
+ [ /a/usr != /usr ]
LD_LIBRARY_PATH=/a/usr/openwin/server/lib:/a/usr/openwin/lib
+ export LD_LIBRARY_PATH
+ [ -x /a/usr/openwin/bin/mkfontdir ]
+ [ -d /a/usr/openwin/lib/X11/fonts/TTbitmaps ]
+ cd /a/usr/openwin/lib/X11/fonts/TTbitmaps
+ /a/usr/openwin/bin/mkfontdir .
/a/usr/openwin/bin/mkfontdir: cannot unlink ./fonts.dir
/a/usr/openwin/bin/mkfontdir: failed to create directory in .
+ exit 2
+ [ -d /a/usr/openwin/lib/X11/fonts/TrueType ]
+ cd /a/usr/openwin/lib/X11/fonts/TrueType
+ /a/usr/openwin/bin/mkfontdir .
/a/usr/openwin/bin/mkfontdir: cannot unlink ./fonts.dir
/a/usr/openwin/bin/mkfontdir: failed to create directory in .
+ exit 2
+ [ -d /a/usr/openwin/lib/X11/fonts/Type1/sun ]
+ cd /a/usr/openwin/lib/X11/fonts/Type1/sun
+ /a/usr/openwin/bin/mkfontdir .
/a/usr/openwin/bin/mkfontdir: cannot unlink ./fonts.dir
/a/usr/openwin/bin/mkfontdir: failed to create directory in .
+ exit 2
+ exit 0
Will be fixed in build 49
Due to pkgcond bugid 6532654, the upgrade still fails as follow for SUNWi1of for sparseroot zone:
EXEC_BASE=/usr
PKGCOND=/usr/bin/pkgcond
is_srngz=99
is_wrngz=99
+ [ -x /usr/bin/pkgcond ]
+ /usr/bin/pkgcond is_sparse_root_nonglobal_zone
is_srngz=1
+ /usr/bin/pkgcond is_whole_root_nonglobal_zone
is_wrngz=1
+ [ 1 -eq 0 ]
+ [ 1 -ne 0 ]
+ [ ! -x /usr/openwin/bin/mkfontdir ]
+ exit 2
pkginstall.exe: ERROR: class action script did not complete successfully
EXEC_BASE=/usr
+ [ ! -x /usr/openwin/lib/installalias ]
+ exit 2
pkginstall.exe: ERROR: class action script did not complete successfully
Installation of <SUNWi1of> on zone <SUNWlu-sparserootzone> partially
failed.
This also exposed a bug in i.fontalias and i.encodingsdir after pkgcond is fixed. I will file another bugid to track the issue.