From 21efade36950aecb8d5e3a63e4050db86913dbe5 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Fri, 11 Jun 2010 07:55:52 +0000 Subject: main/dovecot: set localstatedir ref #359 ref #360 also create a default config that works out of the box. --- main/dovecot/APKBUILD | 28 ++++++++++++++++++++++++---- main/dovecot/dovecot.post-install | 31 +++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 main/dovecot/dovecot.post-install (limited to 'main/dovecot') diff --git a/main/dovecot/APKBUILD b/main/dovecot/APKBUILD index 6dd77003a..dce739b80 100644 --- a/main/dovecot/APKBUILD +++ b/main/dovecot/APKBUILD @@ -2,14 +2,16 @@ # Maintainer: Natanael Copa pkgname=dovecot pkgver=1.2.11 -pkgrel=3 +pkgrel=4 pkgdesc="IMAP and POP3 server" url="http://www.dovecot.org/" license="LGPL-2.1" -depends= +depends="openssl" +pkgusers="dovecot" +pkggroups="dovecot" makedepends="libcap-dev zlib-dev openssl-dev bzip2-dev postgresql-dev mysql-dev sqlite-dev" -install="dovecot.pre-install" +install="dovecot.pre-install dovecot.post-install" subpackages="$pkgname-doc $pkgname-dev $pkgname-pgsql $pkgname-mysql $pkgname-sqlite" source="http://www.dovecot.org/releases/1.2/$pkgname-$pkgver.tar.gz @@ -20,6 +22,7 @@ build() { cd "$srcdir/$pkgname-$pkgver" ./configure --prefix=/usr \ + --localstatedir=/var \ --sysconfdir=/etc/dovecot \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ @@ -36,8 +39,25 @@ build() { package() { cd "$srcdir/$pkgname-$pkgver" make DESTDIR="$pkgdir" install - install -d "$pkgdir"/var/run/dovecot + install -d "$pkgdir"/var/run/dovecot \ + "$pkgdir"/etc/ssl/dovecot install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname + install doc/dovecot-openssl.cnf "$pkgdir"/etc/dovecot/ + mv "$pkgdir"/etc/dovecot/dovecot-example.conf \ + "$pkgdir"/etc/dovecot/dovecot.conf || return 1 + + # fix ssl dirs in defautl config and set defautl passdb to passwd + sed -i -e 's,^#ssl_cert_file =.*,ssl_cert_file = /etc/ssl/dovecot/server.pem,' \ + -e 's,^#ssl_key_file =.*,ssl_key_file = /etc/ssl/dovecot/server.key,' \ + -e '/passdb pam {/,/^$/{ + s/passdb pam/\#passdb pam/ + s/}/\#}/ + }' \ + -e '/\#passdb passwd {/,/^$/{ + s/\#passdb passwd/passdb passwd/ + s/\#\}/\}/ + }' \ + "$pkgdir"/etc/dovecot/dovecot.conf } _mv() { diff --git a/main/dovecot/dovecot.post-install b/main/dovecot/dovecot.post-install new file mode 100644 index 000000000..a7cccddfd --- /dev/null +++ b/main/dovecot/dovecot.post-install @@ -0,0 +1,31 @@ +#!/bin/sh + +# based on doc/mkcert.sh + +# Generates a self-signed certificate. +# Edit dovecot-openssl.cnf before running this. + +OPENSSL=${OPENSSL-openssl} +SSLDIR=${SSLDIR-/etc/ssl/dovecot} +OPENSSLCONFIG=${OPENSSLCONFIG-/etc/dovecot/dovecot-openssl.cnf} + +CERTDIR=$SSLDIR +KEYDIR=$SSLDIR + +CERTFILE=$CERTDIR/server.pem +KEYFILE=$KEYDIR/server.key + +if [ -e "$CERTFILE" ]; then + echo "Keeiping existing $CERTFILE" + exit 0 +fi + +if [ -e "$KEYFILE" ]; then + echo "Keeiping existing $KEYFILE" + exit 0 +fi + +$OPENSSL req -new -x509 -nodes -config $OPENSSLCONFIG -out $CERTFILE -keyout $KEYFILE -days 365 || exit 2 +chmod 0600 $KEYFILE +echo +$OPENSSL x509 -subject -fingerprint -noout -in $CERTFILE || exit 2 -- cgit v1.2.3