RIGHT:[[フリーソフトウェアのコンパイル]]

*Dovecot のコンパイル [#kc9377e7]
http://www.crimson-snow.net/hmsvr/solaris/maild/dovecot.html

*標準の OpenSSLでの問題 [#r0e09f9e]
dovecot.conf で
 ssl_cipher_list = MEDIUM:!LOW
とする.
http://www.dovecot.jp/wiki/CompilingSource.txt

*1.1系コンパイル [#f188e8ec]
http://dovecot.org/releases/1.1/dovecot-1.1.17.tar.gz

  $ ./configure \
  CPPFLAGS=-I/opt/openssl/include LDFLAGS=-L/opt/openssl/lib ./configure
  $ make

*1.2系コンパイル [#w61f0b53]

**Dovecot ユーザの作成 [#v1edd238]
 # groupadd -g 97 dovecot
 # useradd -u 97 -g 97 -d /dev/null -s /bin/false dovecot

**コンパイル [#n47c04b5]
 $ ./configure --prefix=/opt/dovecot // --with-pop3d
 $ make
 # make install
 # cd /opt/dovecot/etc
 # cp dovecot-example.conf dovecot.conf
 
**自己証明書の作成 [#bb9b8732]
ソースの
  doc/mkcert.sh
を使う.
 % cd doc
 % vi dovecot-openssl.cnf
 OU=..
 CN=..
 emailAddress=...
 # mkdir -p /opt/dovecot/etc/certs
 # mkdir -p /opt/dovecot/etc/private
 # SSLDIR=/opt/dovecot/etc sh mkcert.sh

http://www2.shakemid.com/fswiki/wiki.cgi?page=Dovecot%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB#p9

**起動スクリプト/lib/svc/method/dovecot(実行権をつける) [#n7d5f55f]
 #!/bin/sh
 
 # rc script for dovecot

 PROG=/opt/dovecot/sbin/dovecot
 
 SERVICE=`basename $PROG`
 PIDFILE=/var/run/dovecot/master.pid
 
 ECHO=/usr/ucb/echo
 
 ulimit -n 1024 
 
 case "$1" in
 start)
	$ECHO -n "starting $SERVICE ... "
	$PROG && $ECHO '[ OK ]' || $ECHO '[ NG ]'
	;;
 stop)
	$ECHO -n "stopping $SERVICE ... "
	kill `cat $PIDFILE` && $ECHO '[ OK ]' || $ECHO '[ NG ]'
	;;
 reload|refresh)
	$ECHO -n "refreshing $SERVICE ... "
	kill -HUP `cat $PIDFILE` && $ECHO '[ OK ]' || $ECHO '[ NG ]'
	;;
 restart)
	$0 stop
	$0 start
	;;
 *)
	echo "Usage: $0 [start|stop|refresh|restart]"
	exit 1
	;;
 esac
 
 exit 0


**マニフェスト /var/svc/manifest/network/dovecot.xml [#gf31a645]
 <?xml version="1.0"?>
 <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
 <!--
     Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
     Use is subject to license terms.
 -->
 
 <service_bundle type='manifest' name='dovecot'>
 
 <service
	name='network/dovecot'
	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='dovecot' enabled='false'>
 
		<dependency
		    name='config-file'
		    grouping='require_all'
		    restart_on='refresh'
		    type='path'>
			<service_fmri
			    value='file://localhost/opt/dovecot/etc/dovecot.conf' />
		</dependency>
 
		<exec_method
			type='method'
			name='start'
			exec='/lib/svc/method/dovecot start'
			timeout_seconds='30' />
 
		<exec_method
			type='method'
			name='stop'
			exec='/lib/svc/method/dovecot stop'
			timeout_seconds='30' />
 
		<exec_method
			type='method'
			name='refresh'
			exec='/lib/svc/method/dovecot refresh'
			timeout_seconds='30' />
 
		<template>
			<common_name>
				<loctext xml:lang='C'>
				dovecot
				</loctext>
			</common_name>
			<documentation>
				<manpage title='dovecot' section='8'
				    manpath='/usr/local/man' />
			</documentation>
		</template>
 
	</instance>
 
	<stability value='Unstable' />
 
 </service>
 
 </service_bundle>

 # svccfg import dovecot.xml
 # svcadm enable dovecot

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS