aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-daemons
diff options
context:
space:
mode:
authorRoy Li <rongqing.li@windriver.com>2014-11-10 13:05:37 +0800
committerJoe MacDonald <joe_macdonald@mentor.com>2014-11-10 15:18:55 -0500
commitc78eca1ea7452a62f86b740ec59f1cd39e399d73 (patch)
tree24aba8749850306ba390dcfa415787579804c8b7 /meta-networking/recipes-daemons
parent4b6970c24c3fb0926fd700678c0e11de43a5bf92 (diff)
downloadmeta-openembedded-contrib-c78eca1ea7452a62f86b740ec59f1cd39e399d73.tar.gz
postfix: create or update aliases.db when using systemd
aliases.db should be created by postinstall script, but failed since queue_directory is not includes root dir ${D}: ------ |newaliases: fatal: chdir /var/spool/postfix: No such file or directory ------ initscript will recall newaliases before start postfix daemon, the similar method, which run aliasesdb to create aliases.db when using systemd, is introduced to fix this issue. Signed-off-by: Roy.Li <rongqing.li@windriver.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
Diffstat (limited to 'meta-networking/recipes-daemons')
-rwxr-xr-xmeta-networking/recipes-daemons/postfix/files/aliasesdb20
-rw-r--r--meta-networking/recipes-daemons/postfix/files/postfix.service1
-rw-r--r--meta-networking/recipes-daemons/postfix/postfix.inc3
3 files changed, 24 insertions, 0 deletions
diff --git a/meta-networking/recipes-daemons/postfix/files/aliasesdb b/meta-networking/recipes-daemons/postfix/files/aliasesdb
new file mode 100755
index 0000000000..855a64f705
--- /dev/null
+++ b/meta-networking/recipes-daemons/postfix/files/aliasesdb
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+ALIASESDB_STAMP=/var/lib/misc/postfix.aliasesdb-stamp
+
+make_aliasesdb() {
+ if [ "$(/usr/sbin/postconf -h alias_database)" = "hash:/etc/aliases" ]
+ then
+ # /etc/aliases.db may be used by other MTA, make sure nothing
+ # has touched it since our last newaliases call
+ [ /etc/aliases -nt /etc/aliases.db ] ||
+ [ "$ALIASESDB_STAMP" -nt /etc/aliases.db ] ||
+ [ "$ALIASESDB_STAMP" -ot /etc/aliases.db ] || return 0
+ /usr/bin/newaliases
+ touch -r /etc/aliases.db "$ALIASESDB_STAMP"
+ else
+ /usr/bin/newaliases
+ fi
+}
+
+make_aliasesdb
diff --git a/meta-networking/recipes-daemons/postfix/files/postfix.service b/meta-networking/recipes-daemons/postfix/files/postfix.service
index 6ea9214780..c781038d88 100644
--- a/meta-networking/recipes-daemons/postfix/files/postfix.service
+++ b/meta-networking/recipes-daemons/postfix/files/postfix.service
@@ -6,6 +6,7 @@ Conflicts=sendmail.service exim.service
[Service]
Type=forking
PIDFile=/var/spool/postfix/pid/master.pid
+ExecStartPre=-/usr/libexec/postfix/aliasesdb
ExecStart=/usr/sbin/postfix start
ExecReload=/usr/sbin/postfix reload
ExecStop=/usr/sbin/postfix stop
diff --git a/meta-networking/recipes-daemons/postfix/postfix.inc b/meta-networking/recipes-daemons/postfix/postfix.inc
index c58787ed65..d2f33569e1 100644
--- a/meta-networking/recipes-daemons/postfix/postfix.inc
+++ b/meta-networking/recipes-daemons/postfix/postfix.inc
@@ -22,6 +22,7 @@ SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV
file://postfix \
file://internal_recipient \
file://postfix.service \
+ file://aliasesdb \
"
S = "${WORKDIR}/postfix-${PV}"
@@ -149,6 +150,8 @@ do_install () {
install -m 0644 ${WORKDIR}/postfix.service ${D}${systemd_unitdir}/system
sed -i 's,/usr/sbin/,${sbindir}/,g' ${D}${systemd_unitdir}/system/postfix.service
+ install -m 0755 ${WORKDIR}/aliasesdb ${D}${exec_prefix}/libexec/postfix/
+
install -m 770 -d ${D}${localstatedir}/spool/postfix
chown postfix:postfix ${D}${localstatedir}/spool/postfix
chown postfix:postfix ${D}${localstatedir}/lib/postfix