Philip Brown wrote:
This is a real need. It's time to adjust the design, and drop the dogma.
The introduction of random, arbitrary scripting in packaging is a
complete failure to bound the scope of packaging operations, and
builds intimate knowledge of the current design of the system into
the packaging.
Here's how we handle driver installation in IPS for SUNW1394:
driver alias=pciclass,0c0010 name=hci1394 perms="* 0600 root sys"
If we change the way driver aliases are stored or eliminate
/etc/name_to_major, the same driver will work. Now, here's how it's
done in the SVr4 package:
#!/bin/sh
...
PATH="/usr/bin:/usr/sbin:${PATH}"
export PATH
#
# Driver info
#
DRV=hci1394
DRVALIAS='pciclass,0c0010'
DRVPERM='* 0600 root sys'
#
# Is the hardware there?
#
hw_exists=0
prtconf -pv | egrep -s "${DRVALIAS}"
if [ $? -eq 0 ]; then
hw_exists=1
fi
#
# Select the correct add_drv options to execute.
# Only attempt to attach the driver
# on a running system with the hardware present.
#
if [ "${BASEDIR}" = "/" ]; then
#
# No need to add_drv if the running system is of a different arch
# than the package
#
karch=`uname -p`
if [ "${karch}" != "${ARCH}" ]; then
exit 0
fi
case ${hw_exists} in
#
# On a running system with *no* hardware,
# modify the system files only
#
0 )
ADD_DRV="add_drv -n"
;;
#
# On a running system with hardware,
# modify the system files and attach the driver
#
1 )
ADD_DRV="add_drv"
;;
esac
else
#
# On a client,
# modify the system files and touch /reconfigure
# for reconfigure reboot
#
ADD_DRV="add_drv -b ${BASEDIR}"
fi
#
# Make sure add_drv has *not* been previously executed
# before attempting to add the driver.
#
grep "^${DRV} " $BASEDIR/etc/name_to_major > /dev/null 2>&1
if [ $? -ne 0 ]; then
${ADD_DRV} -m "${DRVPERM}" -i "\"${DRVALIAS}\"" ${DRV}
if [ $? -ne 0 ]; then
echo "\nFailed add_drv of ${DRV}!\n" >&2
exit 1
fi
fi
exit 0
--
Bart Smaalders Solaris Kernel Performance
[email protected] http://blogs.sun.com/barts
"You will contribute more with mercurial than with thunderbird."
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss