#!/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. # Portions Copyright (c) 2007-2013 Jens Elkner. # # i.manifest - smf(5) service manifest install class action script # repfile=$PKG_INSTALL_ROOT/etc/svc/repository.db export repfile # # If the repository does not yet exist, create it from the appropriate seed. If # for some reason the seeds do not exist, svccfg(1M) will create the repository # automatically. # if [ -z "${UNRELOCATE4IPS}" -a ! -f $repfile ]; then if [ -n "$SUNW_PKG_INSTALL_ZONENAME" -a \ "$SUNW_PKG_INSTALL_ZONENAME" != "global" ]; then [ -f $PKG_INSTALL_ROOT/lib/svc/seed/nonglobal.db ] && \ /usr/bin/cp $PKG_INSTALL_ROOT/lib/svc/seed/nonglobal.db \ $repfile else [ -f $PKG_INSTALL_ROOT/lib/svc/seed/global.db ] && \ /usr/bin/cp $PKG_INSTALL_ROOT/lib/svc/seed/global.db \ $repfile fi /usr/bin/chmod 0600 $repfile /usr/bin/chown root:sys $repfile fi osrel=`uname -r` if [ -n "${UNRELOCATE4IPS}" -o \ ! -r $PKG_INSTALL_ROOT/etc/svc/volatile/repository_door ] then # # smf(5) is not presently running for the destination environment. # Since we presently cannot refresh without a running svc.startd(1M), we # cannot consistently handle dependent placement. Defer to next boot. # while read src dst; do if [ "$osrel" = '5.10' ]; then /usr/bin/sed -e "s#@CLIENT_BASEDIR@#${CLIENT_BASEDIR}#g" \ -e 's,,,' $src >$dst else /usr/bin/sed -e "s#@CLIENT_BASEDIR@#${CLIENT_BASEDIR}#g" $src >$dst fi done else # # Local package install. # while read src dst; do if [ "$osrel" = '5.10' ]; then /usr/bin/sed -e "s#@CLIENT_BASEDIR@#${CLIENT_BASEDIR}#g" \ -e 's,,,' $src >$dst else /usr/bin/sed -e "s#@CLIENT_BASEDIR@#${CLIENT_BASEDIR}#g" $src >$dst fi if [ "$PKG_INSTALL_ROOT" = '' -o "$PKG_INSTALL_ROOT" = '/' ]; then SVCCFG_CHECKHASH=1 if [ "$osrel" = '5.10' ]; then /usr/sbin/svccfg import $dst fi fi done if [ "$osrel" != '5.10' -a "$SVCCFG_CHECKHASH" = '1' ]; then /usr/sbin/svcadm restart manifest-import fi fi exit 0