Add smf(5) logic in addition to legacy initialization scripts.

Wed, 01 Aug 2012 23:54:32 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 01 Aug 2012 23:54:32 +0200
changeset 437
b9d4495f105f
parent 436
f26e9329b115
child 438
3e6a6a3025fe

Add smf(5) logic in addition to legacy initialization scripts.
The introduced smf logic causes Solaris platforms supporting the
smf(5) to integrate new OpenPKG manifests and associated configuration.

openpkg/openpkg.spec file | annotate | diff | comparison | revisions
     1.1 --- a/openpkg/openpkg.spec	Wed Aug 01 23:49:03 2012 +0200
     1.2 +++ b/openpkg/openpkg.spec	Wed Aug 01 23:54:32 2012 +0200
     1.3 @@ -2692,6 +2692,97 @@
     1.4                      fi
     1.5                  fi
     1.6                  ;;
     1.7 +            SunOS/5.1* )
     1.8 +                if [ ! -d /var/svc/manifest/openpkg ]; then
     1.9 +                    mkdir /var/svc/manifest/openpkg
    1.10 +                fi
    1.11 +                if [ ! -f /var/svc/manifest/openpkg/${name}.xml ]; then
    1.12 +                    #   install SMF manifest
    1.13 +                    ( echo "<?xml version=\"1.0\"?>"
    1.14 +                      echo "<!DOCTYPE service_bundle SYSTEM \"/usr/share/lib/xml/dtd/service_bundle.dtd.1\">"
    1.15 +                      echo "<service_bundle type='manifest' name='OpenPKG:${name}'>"
    1.16 +                      echo "    <service"
    1.17 +                      echo "        name='openpkg/${name}'"
    1.18 +                      echo "        type='service'"
    1.19 +                      echo "        version='1'>"
    1.20 +                      echo "        <single_instance />"
    1.21 +                      echo "        <dependency"
    1.22 +                      echo "            name='filesystem'"
    1.23 +                      echo "            type='service'"
    1.24 +                      echo "            grouping='require_all'"
    1.25 +                      echo "            restart_on='none'>"
    1.26 +                      echo "            <service_fmri value='svc:/system/filesystem/local' />"
    1.27 +                      echo "        </dependency>"
    1.28 +                      echo "        <dependency"
    1.29 +                      echo "            name='name-services'"
    1.30 +                      echo "            type='service'"
    1.31 +                      echo "            grouping='require_all'"
    1.32 +                      echo "            restart_on='none'>"
    1.33 +                      echo "            <service_fmri value='svc:/milestone/name-services' />"
    1.34 +                      echo "        </dependency>"
    1.35 +                      echo "        <dependency"
    1.36 +                      echo "            name='multi-user-server'"
    1.37 +                      echo "            type='service'"
    1.38 +                      echo "            grouping='require_all'"
    1.39 +                      echo "            restart_on='none'>"
    1.40 +                      echo "            <service_fmri value='svc:/milestone/multi-user-server' />"
    1.41 +                      echo "        </dependency>"
    1.42 +                      echo "        <dependency"
    1.43 +                      echo "            name='network'"
    1.44 +                      echo "            type='service'"
    1.45 +                      echo "            grouping='require_all'"
    1.46 +                      echo "            restart_on='none'>"
    1.47 +                      echo "            <service_fmri value='svc:/milestone/network' />"
    1.48 +                      echo "        </dependency>"
    1.49 +                      echo "        <exec_method"
    1.50 +                      echo "            type='method'"
    1.51 +                      echo "            name='start'"
    1.52 +                      echo "            exec='${prefix}/etc/rc all start'"
    1.53 +                      echo "            timeout_seconds='180'>"
    1.54 +                      echo "            <method_context>"
    1.55 +                      echo "                <method_credential user='root' group='root' />"
    1.56 +                      echo "            </method_context>"
    1.57 +                      echo "        </exec_method>"
    1.58 +                      echo "        <exec_method"
    1.59 +                      echo "            type='method'"
    1.60 +                      echo "            name='stop'"
    1.61 +                      echo "            exec='${prefix}/etc/rc all stop'"
    1.62 +                      echo "            timeout_seconds='180'>"
    1.63 +                      echo "        </exec_method>"
    1.64 +                      echo "        <property_group name='startd' type='framework'>"
    1.65 +                      echo "            <propval"
    1.66 +                      echo "                name='ignore_error'"
    1.67 +                      echo "                type='astring'"
    1.68 +                      echo "                value='core,signal' />"
    1.69 +                      echo "        </property_group>"
    1.70 +                      echo "        <property_group name='startd' type='framework'>"
    1.71 +                      echo "            <propval"
    1.72 +                      echo "                name='duration'"
    1.73 +                      echo "                type='astring'"
    1.74 +                      echo "                value='transient' />"
    1.75 +                      echo "        </property_group>"
    1.76 +                      echo "        <property_group name='general' type='framework'>"
    1.77 +                      echo "            <propval"
    1.78 +                      echo "                name='action_authorization'"
    1.79 +                      echo "                type='astring'"
    1.80 +                      echo "                value='solaris.smf.manage.openpkg.${name}' />"
    1.81 +                      echo "        </property_group>"
    1.82 +                      echo "        <instance name='default' enabled='false' />"
    1.83 +                      echo "        <stability value='Unstable' />"
    1.84 +                      echo "        <template>"
    1.85 +                      echo "            <common_name>"
    1.86 +                      echo "                <loctext xml:lang='C'>OpenPKG Instance ${prefix}</loctext>"
    1.87 +                      echo "            </common_name>"
    1.88 +                      echo "        </template>"
    1.89 +                      echo "    </service>"
    1.90 +                      echo "</service_bundle>"
    1.91 +                    ) >/var/svc/manifest/openpkg/${name}.xml
    1.92 +                    chmod 644 /var/svc/manifest/openpkg/${name}.xml
    1.93 +                    /usr/sbin/svccfg import /var/svc/manifest/openpkg/${name}.xml
    1.94 +                    ( echo "/usr/sbin/svcadm enable \"svc:/openpkg/${name}:default\""
    1.95 +                    ) >%{l_prefix}.pre-post-process.sh
    1.96 +                fi
    1.97 +                ;;
    1.98              SunOS/5.* )
    1.99                  if [ -f /etc/init.d/${name_old} ]; then
   1.100                      rm -f /etc/init.d/${name_old}
   1.101 @@ -3492,6 +3583,12 @@
   1.102                      fi
   1.103                  fi
   1.104                  ;;
   1.105 +            SunOS/5.1* )
   1.106 +                /usr/sbin/svcadm disable "svc:/openpkg/${name}:default"; sleep 2
   1.107 +                /usr/sbin/svccfg delete -f "svc:/openpkg/${name}:default" >/dev/null 2>&1 || true
   1.108 +                rm -f /var/svc/manifest/openpkg/${name}.xml >/dev/null 2>&1
   1.109 +                rmdir /var/svc/manifest/openpkg >/dev/null 2>&1 || true
   1.110 +                ;;
   1.111              SunOS/5.* )
   1.112                  rm -f /etc/init.d/${name} >/dev/null 2>&1
   1.113                  rm -f /etc/rc3.d/S99${name} >/dev/null 2>&1

mercurial