summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-01-02 18:10:55 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-01-02 18:11:47 +0400
commit656f8dc0f231c373e59d289580d9e2b53f37d652 (patch)
tree55f51870245d9515db9bddd7207263bc84bd896e
parent8c01b526ab9939f8a3aa86d635abe7ad5e68ef49 (diff)
downloadexim4-656f8dc0f231c373e59d289580d9e2b53f37d652.tar.gz
Added SMF service (template). Build depends on dh-smf [illumos-any]
-rw-r--r--debian/changelog2
-rw-r--r--debian/exim4-base.smf/manifest/network/smtp/exim4.xml70
-rw-r--r--debian/exim4-base.smf/method/smtp-exim437
-rwxr-xr-xdebian/rules5
4 files changed, 114 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 25f301c..fbfda40 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,8 @@ exim4 (4.82-3+dyson1) UNRELEASED; urgency=low
* Package for Dyson
* Added dyson-version.patch:
fix building from git, but not from Exim git
+ * Added SMF service
+ * Build depends on dh-smf [illumos-any]
* Build depends on libkstat-dev [illumos-any]
-- Igor Pashev <pashev.igor@gmail.com> Wed, 01 Jan 2014 14:32:47 +0400
diff --git a/debian/exim4-base.smf/manifest/network/smtp/exim4.xml b/debian/exim4-base.smf/manifest/network/smtp/exim4.xml
new file mode 100644
index 0000000..b3bf93c
--- /dev/null
+++ b/debian/exim4-base.smf/manifest/network/smtp/exim4.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/xml/schema/smf/service_bundle.dtd.1">
+<service_bundle type="manifest" name="exim4">
+ <service name="network/smtp" type="service" version="1">
+ <single_instance/>
+ <!-- Disabled by default, will enable in postinst, depending on settings -->
+ <instance name="exim4" enabled="false">
+ <dependency name="fs-local" grouping="require_all" restart_on="none" type="service">
+ <service_fmri value="svc:/system/filesystem/local"/>
+ </dependency>
+ <dependency name="name-services" grouping="require_all" restart_on="refresh" type="service">
+ <service_fmri value="svc:/milestone/name-services"/>
+ </dependency>
+ <dependency name="executable" grouping="require_all" restart_on="refresh" type="path">
+ <service_fmri value="file://localhost/usr/sbin/exim4"/>
+ </dependency>
+ <dependency name="nsswitch" grouping="require_all" restart_on="refresh" type="path">
+ <service_fmri value="file://localhost/etc/nsswitch.conf"/>
+ </dependency>
+ <dependency name="identity" grouping="optional_all" restart_on="refresh" type="service">
+ <service_fmri value="svc:/system/identity:domain"/>
+ </dependency>
+ <dependency name="syslog" grouping="optional_all" restart_on="none" type="service">
+ <service_fmri value="svc:/system/system-log"/>
+ </dependency>
+ <dependency name="autofs" grouping="optional_all" restart_on="none" type="service">
+ <service_fmri value="svc:/system/filesystem/autofs"/>
+ </dependency>
+ <dependency name="mysql" grouping="optional_all" restart_on="none" type="service">
+ <service_fmri value="svc:/application/database/mysql"/>
+ </dependency>
+ <dependency name="postgres" grouping="optional_all" restart_on="none" type="service">
+ <service_fmri value="svc:/application/database/postgres"/>
+ </dependency>
+ <dependency name="ntp" grouping="optional_all" restart_on="none" type="service">
+ <service_fmri value="svc:/network/ntp"/>
+ </dependency>
+ <dependent name="smtp-exim4_multi-user" grouping="optional_all" restart_on="none">
+ <service_fmri value="svc:/milestone/multi-user"/>
+ </dependent>
+ <exec_method type="method" name="start" exec="/lib/svc/method/smtp-exim4 start" timeout_seconds="120"/>
+ <exec_method type="method" name="stop" exec="/lib/svc/method/smtp-exim4 stop %{restarter/contract}" timeout_seconds="60"/>
+ <exec_method type="method" name="refresh" exec="/lib/svc/method/smtp-exim4 refresh" timeout_seconds="60"/>
+ <property_group name="startd" type="framework">
+ <propval name="ignore_error" type="astring" value="core,signal"/>
+ </property_group>
+ <!-- exim4-base holds the service, but management is done in other packages -->
+ <property_group name="package" type="framework">
+ <propval name="upgrade" type="astring" value="none"/>
+ </property_group>
+ <property_group name="general" type="framework">
+ <propval name="action_authorization" type="astring" value="solaris.smf.manage.sendmail"/>
+ </property_group>
+ <property_group name="config" type="application">
+ <propval name="value_authorization" type="astring" value="solaris.smf.value.sendmail"/>
+ </property_group>
+ <template>
+ <common_name>
+ <loctext xml:lang="C">
+ Exim4 mail transport agent
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title="exim4" section="8"/>
+ </documentation>
+ </template>
+ </instance>
+ <stability value="Unstable"/>
+ </service>
+</service_bundle>
diff --git a/debian/exim4-base.smf/method/smtp-exim4 b/debian/exim4-base.smf/method/smtp-exim4
new file mode 100644
index 0000000..02341f3
--- /dev/null
+++ b/debian/exim4-base.smf/method/smtp-exim4
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+set -e
+
+
+exim4_start()
+{
+}
+
+
+exim4_stop()
+{
+}
+
+
+exim4_refresh()
+{
+}
+
+case "$1" in
+ start)
+ exim4_start
+ ;;
+ stop)
+ exim4_stop
+ ;;
+ refresh)
+ exim4_refresh
+ ;;
+ *)
+ echo "$0: unknown command: $1" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
diff --git a/debian/rules b/debian/rules
index fbaf763..274083c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -4,6 +4,7 @@
#
# Uncomment this to turn on verbose mode.
# export DH_VERBOSE=1
+include /usr/share/dpkg/architecture.mk
buildname := $(shell scripts/os-type)-$(shell scripts/arch-type)
DEBIAN := $(shell pwd)/debian
@@ -454,9 +455,13 @@ binary-arch: build $(install)
# dh_installemacsen $(dhbuildpackages)
dh_installpam $(dhbuildpackages)
dh_installmime $(dhbuildpackages)
+ifeq (illumos,$(DEB_HOST_ARCH_OS))
+ dh_smf -p exim4-base
+else
#dh_installinit $(dhbuildpackages) --noscripts --name=exim4
# work around #347577 (fixed in debhelper 5.0.15)
dh_installinit $(dhbuildpackages) -n --name=exim4
+endif
dh_installcron $(dhbuildpackages)
# dh_installinfo $(dhbuildpackages)
# dh_undocumented $(dhbuildpackages)