#!/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-2012 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 [ ! -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 if [ ! -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 /usr/bin/sed -e "s#@CLIENT_BASEDIR@#${CLIENT_BASEDIR}#g" $src >$dst done else # # Local package install. # while read src dst; do /usr/bin/sed -e "s#@CLIENT_BASEDIR@#${CLIENT_BASEDIR}#g" $src >$dst if [ "$PKG_INSTALL_ROOT" = "" -o "$PKG_INSTALL_ROOT" = "/" ]; then SVCCFG_CHECKHASH=1 [ `uname -r` = '5.10' ] && /usr/sbin/svccfg import $dst fi done if [ `uname -r` = '5.11' -a "$SVCCFG_CHECKHASH" = '1' ]; then [ "$PKG_INSTALL_ROOT" = "" -o "$PKG_INSTALL_ROOT" = "/" ] && \ /usr/sbin/svcadm restart manifest-import fi fi exit 0