OpenSolaris_b135/pkgdefs/SUNWmdr/checkinstall

#!/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