postinstall revision e11c3f44f531fdff80941ce57c065d2ae861cefc
#!/bin/sh
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
PATH="/usr/bin:/usr/sbin:$PATH"; export PATH
#
# SUNWcsd postinstall configuration
#
# This file supplies /dev links needed in the install miniroot. The link
# targets are automatically created by devfs as driver attaches.
# The prototype_com, prototype_sparc, and prototype_i386 variables defined
# below each consist of two whitespace-delimited columns, defined as follows:
#
# 1. Device Path - Relative (should NOT begin with /) path to the device file
# to be created. This base is interpreted relative to $BASEDIR (typically /a).
#
# 2. Symbolic Link - The symlink to the device path which should be created.
# The link should be a relative path to which $BASEDIR can be prepended.
#
#
# Common driver entries:
#
prototype_com='
devices/pseudo/arp@0:arp dev/arp
devices/pseudo/clone@0:ibd dev/ibd
devices/pseudo/dld@0:ctl dev/dld
devices/pseudo/dlpistub@0:ipmpstub dev/ipmpstub
devices/pseudo/icmp@0:icmp dev/icmp
devices/pseudo/icmp@0:icmp dev/rawip
devices/pseudo/icmp6@0:icmp6 dev/icmp6
devices/pseudo/icmp6@0:icmp6 dev/rawip6
devices/pseudo/ip@0:ip dev/ip
devices/pseudo/ip6@0:ip6 dev/ip6
devices/pseudo/rts@0:rts dev/rts
devices/pseudo/tcp@0:tcp dev/tcp
devices/pseudo/tcp6@0:tcp6 dev/tcp6
devices/pseudo/udp@0:udp dev/udp
devices/pseudo/udp6@0:udp6 dev/udp6
devices/pseudo/ipsecah@0:ipsecah dev/ipsecah
devices/pseudo/ipsecesp@0:ipsecesp dev/ipsecesp
devices/pseudo/keysock@0:keysock dev/keysock
devices/pseudo/cn@0:console dev/console
devices/pseudo/cn@0:syscon dev/syscon
devices/pseudo/cn@0:systty dev/systty
devices/pseudo/ksyms@0:ksyms dev/ksyms
devices/pseudo/log@0:conslog dev/conslog
devices/pseudo/log@0:log dev/log
devices/pseudo/mm@0:mem dev/mem
devices/pseudo/mm@0:kmem dev/kmem
devices/pseudo/mm@0:null dev/null
devices/pseudo/mm@0:allkmem dev/allkmem
devices/pseudo/mm@0:zero dev/zero
devices/pseudo/openeepr@0:openprom dev/openprom
devices/pseudo/pm@0:pm dev/pm
devices/pseudo/sad@0:admin dev/sad/admin
devices/pseudo/sad@0:user dev/sad/user
devices/pseudo/sy@0:tty dev/tty
devices/pseudo/sysevent@0:sysevent dev/sysevent
devices/pseudo/sysmsg@0:msglog dev/msglog
devices/pseudo/sysmsg@0:sysmsg dev/sysmsg
devices/pseudo/tl@0:ticots dev/ticots
devices/pseudo/tl@0:ticotsord dev/ticotsord
devices/pseudo/tl@0:ticlts dev/ticlts
devices/pseudo/wc@0:wscons dev/wscons
devices/pseudo/zfs@0:zfs dev/zfs
'
#
# SPARC-specific driver entries:
#
prototype_sparc='
'
#
# Intel-specific driver entries:
#
prototype_i386='
devices/pseudo/conskbd@0:kbd dev/kbd
'
#
# SUNWcsd postinstall implementation
#
# Below this point is the code to process the above $prototype_* maps.
# You should not need to modify any code below this point to configure
# new drivers. You should also not need to add code here to remove
# links created by a previous version of this package. All the links
# can also be created by devfsadm link generators; the reason they
# are also here is for the initial boot (miniroot or diskless client)
# where certain devices must be present to get to the point when
# devfsadm runs.
#
#
# Determine an appropriate place for our private error log file. If $PKGSAV
# is available, use that; otherwise use /tmp or /dev/null. We keep a private
# error log primarily as a debugging facility.
#
errlog=/dev/null
for file in $PKGSAV/SUNWcsd.err /tmp/SUNWcsd.err; do
rm -f $file
if touch $file >/dev/null 2>&1; then
errlog=$file
break
fi
done
eval echo "\"\$prototype_com\"" "\"\$prototype_${ARCH}\"" | \
while read path symlink; do
[ -z "$path" ] && continue # Skip blank lines
#
# The link destination must be specified as an absolute path
# to installf. The source we modify to be relative to the
# destination (each "/" becomes a "../" prefix); thus
# linkdst "dev/foo/bar" yields prefix "../../".
#
lprefix=`echo "$symlink" | sed 's:[^/]*::g;s:/:../:g'`
linksrc="$lprefix$path"
linkdst="/$symlink"
if [ ! -L ${BASEDIR}$linkdst ]; then
echo "add link $linkdst=$linksrc"
ln -s $linksrc ${BASEDIR}$linkdst
fi
done
cat << EOF > ${BASEDIR}/devices/README
Copyright 2002 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
This installation of Solaris uses devfs to provide /devices.
Warning: Do not change the content of this directory or its
subdirectories.
The directory containing this README file is typically hidden
underneath the /devices devfs(7FS) mount point. All content at or
below this directory is an implementation artifact and subject to
incompatible change or removal without notification.
Please reference devfs(7FS) for more information.
EOF
if [ -f ${BASEDIR}/devices/README ]; then
chown root:sys ${BASEDIR}/devices/README
chmod 444 ${BASEDIR}/devices/README
fi
exit 0