diff -urN courier-0.64.2.orig//courier/configure.in courier-0.64.2/courier/configure.in --- courier-0.64.2.orig//courier/configure.in 2010-01-09 22:13:40.000000000 +0100 +++ courier-0.64.2/courier/configure.in 2010-05-08 23:31:10.355976183 +0200 @@ -480,6 +480,12 @@ eval "datarootdir=$datarootdir" eval "bindir=$bindir" eval "localstatedir=$localstatedir" +eval "datadir=$datadir" + +AC_ARG_WITH(certsdir, [ --with-certsdir Directory where certs are created ], +certsdir="$withval", certsdir=$datadir) + +AC_SUBST(certsdir) MAILDROP="$bindir/maildrop" AC_SUBST(MAILDROP) diff -urN courier-0.64.2.orig//courier/imapd-ssl.rc.in courier-0.64.2/courier/imapd-ssl.rc.in --- courier-0.64.2.orig//courier/imapd-ssl.rc.in 2010-05-08 23:30:54.599915374 +0200 +++ courier-0.64.2/courier/imapd-ssl.rc.in 2010-05-08 23:31:10.355976183 +0200 @@ -28,6 +28,11 @@ case $1 in start) + # If we do not have a certificate, make one up. + if [ ! -f @certsdir@/imapd.pem ]; then + @sbindir@/mkimapdcert + fi + umask $IMAP_UMASK @ULIMIT@ $IMAP_ULIMITD @SETENV@ -i @SHELL@ -c " set -a ; diff -urN courier-0.64.2.orig//courier/module.esmtp/configure.in courier-0.64.2/courier/module.esmtp/configure.in --- courier-0.64.2.orig//courier/module.esmtp/configure.in 2008-07-12 22:17:24.000000000 +0200 +++ courier-0.64.2/courier/module.esmtp/configure.in 2010-05-08 23:31:10.355976183 +0200 @@ -287,6 +287,11 @@ AC_SUBST(mydatadir) # Quell automake warning +AC_ARG_WITH(certsdir, [ --with-certsdir Directory where certs are created ], +certsdir="$withval", certsdir=$datadir) + +AC_SUBST(certsdir) + dnl dnl Check what libraries are available dnl diff -urN courier-0.64.2.orig//courier/module.esmtp/esmtpd.dist.in courier-0.64.2/courier/module.esmtp/esmtpd.dist.in --- courier-0.64.2.orig//courier/module.esmtp/esmtpd.dist.in 2010-02-02 23:30:00.000000000 +0100 +++ courier-0.64.2/courier/module.esmtp/esmtpd.dist.in 2010-05-08 23:31:10.355976183 +0200 @@ -242,7 +242,7 @@ # # This is an experimental feature. -TLS_CERTFILE=@mydatadir@/esmtpd.pem +TLS_CERTFILE=@certsdir@/esmtpd.pem ##NAME: TLS_TRUSTCERTS:0 # diff -urN courier-0.64.2.orig//courier/module.esmtp/esmtpd-ssl.dist.in courier-0.64.2/courier/module.esmtp/esmtpd-ssl.dist.in --- courier-0.64.2.orig//courier/module.esmtp/esmtpd-ssl.dist.in 2010-02-02 23:30:00.000000000 +0100 +++ courier-0.64.2/courier/module.esmtp/esmtpd-ssl.dist.in 2010-05-08 23:31:10.355976183 +0200 @@ -269,7 +269,7 @@ # # This is an experimental feature. -TLS_CERTFILE=@mydatadir@/esmtpd.pem +TLS_CERTFILE=@certsdir@/esmtpd.pem ##NAME: TLS_TRUSTCERTS:0 # diff -urN courier-0.64.2.orig//courier/module.esmtp/esmtpd-ssl.in courier-0.64.2/courier/module.esmtp/esmtpd-ssl.in --- courier-0.64.2.orig//courier/module.esmtp/esmtpd-ssl.in 2010-05-08 23:30:54.612778263 +0200 +++ courier-0.64.2/courier/module.esmtp/esmtpd-ssl.in 2010-05-08 23:31:10.355976183 +0200 @@ -25,6 +25,10 @@ case $1 in start) + # If we do not have a certificate, make one up. + if [ ! -f @certsdir@/esmtpd.pem ]; then + @sbindir@/mkesmtpdcert + fi ;; stop) ${sbindir}/couriertcpd -pid=$SSLPIDFILE -stop diff -urN courier-0.64.2.orig//courier/module.esmtp/mkesmtpdcert.in courier-0.64.2/courier/module.esmtp/mkesmtpdcert.in --- courier-0.64.2.orig//courier/module.esmtp/mkesmtpdcert.in 2007-11-04 22:17:03.000000000 +0100 +++ courier-0.64.2/courier/module.esmtp/mkesmtpdcert.in 2010-05-08 23:31:10.355976183 +0200 @@ -16,38 +16,38 @@ test -x @CERTTOOL@ || exit 0 fi -if test -f @mydatadir@/esmtpd.pem +if test -f @certsdir@/esmtpd.pem then - echo "@mydatadir@/esmtpd.pem already exists." + echo "@certsdir@/esmtpd.pem already exists." exit 1 fi cleanup() { - rm -f @mydatadir@/esmtpd.rand - rm -f @mydatadir@/esmtpd.pem - rm -f @mydatadir@/esmtpd.key - rm -f @mydatadir@/esmtpd.cert + rm -f @certsdir@/esmtpd.rand + rm -f @certsdir@/esmtpd.pem + rm -f @certsdir@/esmtpd.key + rm -f @certsdir@/esmtpd.cert exit 1 } -cd @mydatadir@ +cd @certsdir@ if test "@ssllib@" = "openssl" then - cp /dev/null @mydatadir@/esmtpd.pem - chmod 600 @mydatadir@/esmtpd.pem - chown @mailuser@ @mydatadir@/esmtpd.pem - dd if=@RANDOMV@ of=@mydatadir@/esmtpd.rand count=1 2>/dev/null + cp /dev/null @certsdir@/esmtpd.pem + chmod 600 @certsdir@/esmtpd.pem + chown @mailuser@ @certsdir@/esmtpd.pem + dd if=@RANDOMV@ of=@certsdir@/esmtpd.rand count=1 2>/dev/null @OPENSSL@ req -new -x509 -days 365 -nodes \ - -config @sysconfdir@/esmtpd.cnf -out @mydatadir@/esmtpd.pem -keyout @mydatadir@/esmtpd.pem || cleanup - @OPENSSL@ gendh -rand @mydatadir@/esmtpd.rand 512 >>@mydatadir@/esmtpd.pem || cleanup - @OPENSSL@ x509 -subject -dates -fingerprint -noout -in @mydatadir@/esmtpd.pem || cleanup - rm -f @mydatadir@/esmtpd.rand + -config @sysconfdir@/esmtpd.cnf -out @certsdir@/esmtpd.pem -keyout @certsdir@/esmtpd.pem || cleanup + @OPENSSL@ gendh -rand @certsdir@/esmtpd.rand 512 >>@certsdir@/esmtpd.pem || cleanup + @OPENSSL@ x509 -subject -dates -fingerprint -noout -in @certsdir@/esmtpd.pem || cleanup + rm -f @certsdir@/esmtpd.rand else - cp /dev/null @mydatadir@/esmtpd.key - chmod 600 @mydatadir@/esmtpd.key - cp /dev/null @mydatadir@/esmtpd.cert - chmod 600 @mydatadir@/esmtpd.cert + cp /dev/null @certsdir@/esmtpd.key + chmod 600 @certsdir@/esmtpd.key + cp /dev/null @certsdir@/esmtpd.cert + chmod 600 @certsdir@/esmtpd.cert @CERTTOOL@ --generate-privkey --outfile esmtpd.key @CERTTOOL@ --generate-self-signed --load-privkey esmtpd.key --outfile esmtpd.cert --template @sysconfdir@/esmtpd.cnf diff -urN courier-0.64.2.orig//courier/pop3d-ssl.in courier-0.64.2/courier/pop3d-ssl.in --- courier-0.64.2.orig//courier/pop3d-ssl.in 2010-05-08 23:30:54.612778263 +0200 +++ courier-0.64.2/courier/pop3d-ssl.in 2010-05-08 23:31:10.355976183 +0200 @@ -29,6 +29,11 @@ case $1 in start) + # If we do not have a certificate, make one up. + if [ ! -f @certsdir@/pop3d.pem ]; then + @sbindir@/mkpop3dcert + fi + exec @SETENV@ -i PATH="$PATH" SHELL="$SHELL" \ @SHELL@ -c " set -a ; \ prefix=@prefix@ ; \ diff -urN courier-0.64.2.orig//courier.sysvinit.in courier-0.64.2/courier.sysvinit.in --- courier-0.64.2.orig//courier.sysvinit.in 2010-05-08 23:30:54.612778263 +0200 +++ courier-0.64.2/courier.sysvinit.in 2010-05-08 23:31:10.355976183 +0200 @@ -18,7 +18,7 @@ sbindir="@sbindir@" bindir="@bindir@" libexecdir="@libexecdir@" -datadir="@datadir@" +certsdir="@certsdir@" if test ! -f ${sysconfdir}/esmtpd then @@ -85,7 +85,7 @@ then # If we do not have a certificate, make one up. - if test ! -f ${datadir}/esmtpd.pem + if test ! -f ${certsdir}/esmtpd.pem then if test -x $COURIERTLS then @@ -152,7 +152,7 @@ then # If we do not have a certificate, make one up. - if test ! -f ${datadir}/pop3d.pem + if test ! -f ${certsdir}/pop3d.pem then echo -n " generating-POP3-SSL-certificate..." @@ -182,7 +182,7 @@ then # If we do not have a certificate, make one up. - if test ! -f ${datadir}/imapd.pem + if test ! -f ${certsdir}/imapd.pem then echo -n " generating-IMAP-SSL-certificate..."