#!/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. # # r.manifest - smf(5) manifest remove class action script # if [ "$PKG_INSTALL_ROOT" != '' -a "$PKG_INSTALL_ROOT" != '/' ]; then # We can't safely disable the service in this case. smf_alive=no else # We can verify if the service is disabled prior to removal. [ -r /etc/svc/volatile/repository_door ] && smf_alive=yes fi MFSTSCAN=/lib/svc/bin/mfstscan SVCCFG=/usr/sbin/svccfg SVCPROP=/usr/bin/svcprop osrel=`uname -r` while read mfst; do if [ "$smf_alive" = 'yes' ]; then ENTITIES=`$SVCCFG inventory $mfst` for fmri in $ENTITIES; do # Determine whether any of our instances are enabled. en_p=`$SVCPROP -C -p general/enabled $fmri 2>/dev/null` en_o=`$SVCPROP -C -p general_ovr/enabled $fmri 2>/dev/null` if [ "$en_p" = 'true' -o "$en_o" = 'true' ]; then echo "$fmri remains enabled; aborting" exit 1 fi [ "$osrel" = '5.10' ] && $SVCCFG delete $fmri done # Delete the manifest hash value. if [ "$osrel" = '5.10' ]; then pg_name=`$MFSTSCAN -t $mfst` if $SVCPROP -q -p $pg_name smf/manifest; then $SVCCFG -s smf/manifest delpg $pg_name fi fi fi /usr/bin/rm $mfst done if [ "$osrel" != '5.10' -a "$smf_alive" = 'yes' ]; then /usr/sbin/svcadm restart manifest-import fi exit 0