checkinstall revision 7c478bd95313f5f23a4c958a745db2134aa03244
#!/bin/sh
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (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 2005 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "%Z%%M% %I% %E% SMI"
#
PATH=/usr/sadm/bin:$PATH
COPY_CONFIG="false"
IS_AN_UPGRADE="false"
RELEASE="None"
#
# figure out CLASSES to install
#
CLASSES="none svmpreserve manifest"
#
#determine the version of SDS.
# Classify into 3 group, SLVM, 421 and pre421
#
#
# private_pkginfo is to work around a bug in pkginfo, namely,
# if the admin file has instance=overwrite, pkginfo, pkgparam etc.
# will fail. This is only an issue when upgrading from SDS 4.2.1 to
# Solaris Volume Manager because both have the same pkg names.
#
# The workaround is to directly examine the pkginfo files.
# We depend on the fact that there can be exactly one instance of
# a pkg at any given time. The instance could toggle between
# $PKG and $PKG.2
# For instance=overwrite, the pkg directory is renamed to
# .save.${PKG}. Again, there could a second instance of this,
# hence we also check for .save.${PKG}.2
#
# This approach implies that we are using potentially unstable
# interfaces and depending on specific knowledge that may be
# incompatible in the future. For example, the fact that there
# can be exactly two instances for a pkg is hardcoded into
# private_pkginfo. Others are the version formatof the pkg.
#
#
# private_pkginfo:
# Returns: PKG_EXISTS and PKGINFO
# if PKG_EXISTS is "true" then PKGINFO has a valid path
#
PKG_EXISTS="false"
PKGDIR=${PKG_INSTALL_ROOT:=/}/var/sadm/pkg
PKGINFO=""
private_pkginfo() {
if [ -d ${PKGDIR}/${PKG} ]; then
PKGINFO=${PKGDIR}/${PKG}/pkginfo
fi
if [ -d ${PKGDIR}/${PKG}.2 ]; then
PKGINFO=${PKGDIR}/${PKG}.2/pkginfo
fi
if [ -d ${PKGDIR}/.save.${PKG} ]; then
PKGINFO=${PKGDIR}/.save.${PKG}/pkginfo
fi
if [ -d ${PKGDIR}/.save.${PKG}.2 ]; then
PKGINFO=${PKGDIR}/.save.${PKG}.2/pkginfo
fi
if [ "$PKGINFO" != "" ]; then
grep "PKG=SUNWmdr" ${PKGINFO} > /dev/null 2>&1
if [ $? -eq 0 ]; then
PKG_EXISTS="true"
fi
fi
}
private_pkginfo
if [ $PKG_EXISTS = "true" ]; then
IS_AN_UPGRADE="true"
x=`grep -w VERSION ${PKGINFO} | nawk -F ",|=" '{ printf("%s", $2) }'`
if [ "$x" = "4.2.1" ]; then
RELEASE="421"
else
RELEASE="SLVM"
fi
fi
pkginfo -R ${PKG_INSTALL_ROOT} -q SUNWmd\*;
if [ $? -eq 0 ]; then
IS_AN_UPGRADE="true"
RELEASE="pre421"
CLASSES="${CLASSES} legacy"
COPY_CONFIG="true"
fi
#
# export environment variables to install
#
echo CLASSES="${CLASSES}" >> $1
echo IS_AN_UPGRADE="${IS_AN_UPGRADE}" >> $1
echo RELEASE="${RELEASE}" >> $1
echo COPY_CONFIG="${COPY_CONFIG}" >> $1
exit 0