<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">

<!--
	Bruno Bonfils, <asyd@asyd.net>
	April 2006
   Use is subject to CDDL license terms.

	This file provide two services :

	 - network/cyrus-imapd
	 - network/cyrus-saslauthd
-->

<service_bundle type='manifest' name='cyrus'>

<service
	name='network/cyrus-imapd'
	type='service'
	version='1'>

	<single_instance />

	<dependency
	    name='fs-local'
	    grouping='require_all'
	    restart_on='none'
	    type='service'>
		<service_fmri value='svc:/system/filesystem/local' />
	</dependency>

	<dependency
	    name='network-service'
	    grouping='require_all'
	    restart_on='none'
	    type='service'>
		<service_fmri value='svc:/network/service' />
	</dependency>

	<dependency
	    name='name-services'
	    grouping='require_all'
	    restart_on='refresh'
	    type='service'>
		<service_fmri value='svc:/milestone/name-services' />
	</dependency>

	<dependency
	    name='identity'
	    grouping='optional_all'
	    restart_on='refresh'
	    type='service'>
		<service_fmri value='svc:/system/identity:domain' />
	</dependency>

	<dependency
	    name='system-log'
	    grouping='optional_all'
	    restart_on='none'
	    type='service'>
		<service_fmri value='svc:/system/system-log' />
	</dependency>

	<instance name='default' enabled='false'>

		<dependency
		    name='directory-imap'
		    grouping='require_all'
		    restart_on='refresh'
		    type='path'>
			<service_fmri
			    value='file://localhost/var/imap' />
		</dependency>

		<dependency
		    name='directory-spool'
		    grouping='require_all'
		    restart_on='refresh'
		    type='path'>
			<service_fmri
			    value='file://localhost/var/spool/imap' />
		</dependency>

		<dependent
			name='master-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/cyrus master start'
			timeout_seconds='120' />

		<exec_method
			type='method'
			name='stop'
			exec='/lib/svc/method/cyrus master stop'
			timeout_seconds='60' />

		<exec_method
			type='method'
			name='refresh'
			exec='/lib/svc/method/cyrus master refresh'
			timeout_seconds='60' />

		<property_group name='startd' type='framework'>
			<propval name='ignore_error' type='astring' value='core,signal' />
		</property_group>

		<property_group name='cyrus' type='application'>
			<propval name='imapd-config' type='astring' value='/etc/cyrus/imapd.conf' />
			<propval name='cyrus-config' type='astring' value='/etc/cyrus/cyrus.conf' />
		</property_group>

		<template>
			<common_name>
				<loctext xml:lang='C'>
				Cyrus IMAPd master
				</loctext>
			</common_name>
		</template>
	</instance>

	<stability value='Unstable' />
</service>

<service
	name='network/cyrus-saslauthd'
	type='service'
	version='1'>

	<single_instance />

	<dependency
	    name='fs-local'
	    grouping='require_all'
	    restart_on='none'
	    type='service'>
		<service_fmri value='svc:/system/filesystem/local' />
	</dependency>

	<dependency
	    name='network-service'
	    grouping='require_all'
	    restart_on='none'
	    type='service'>
		<service_fmri value='svc:/network/service' />
	</dependency>

	<dependency
	    name='name-services'
	    grouping='require_all'
	    restart_on='refresh'
	    type='service'>
		<service_fmri value='svc:/milestone/name-services' />
	</dependency>

	<dependency
	    name='system-log'
	    grouping='optional_all'
	    restart_on='none'
	    type='service'>
		<service_fmri value='svc:/system/system-log' />
	</dependency>

	<instance name='default' enabled='false'>

		<dependent
			name='saslauthd-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/cyrus saslauthd start'
			timeout_seconds='120' />

		<exec_method
			type='method'
			name='stop'
			exec='/lib/svc/method/cyrus saslauthd stop'
			timeout_seconds='60' />

		<exec_method
			type='method'
			name='refresh'
			exec='/lib/svc/method/cyrus saslauthd refresh'
			timeout_seconds='60' />

		<property_group name='startd' type='framework'>
			<propval name='ignore_error' type='astring' value='core,signal' />
		</property_group>

		<property_group name='cyrus' type='application'>
			<propval name='backend' type='astring' value='pam' />
			<propval name='saslauthd-config' type='astring' value='/etc/cyrus/saslauthd.conf' />
		</property_group>

		<template>
			<common_name>
				<loctext xml:lang='C'>
				Cyrus SASL authdaemon
				</loctext>
			</common_name>
		</template>
	</instance>

	<stability value='Unstable' />

</service>

</service_bundle>
