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