[oe] [PATCH][meta-networking] postfix: create or update aliases.db when using systemd

Rongqing Li rongqing.li at windriver.com
Mon Nov 10 02:19:22 UTC 2014



On 2014年11月10日 09:03, rongqing.li at windriver.com wrote:
> From: Roy Li <rongqing.li at windriver.com>
>
> 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 at windriver.com>
> ---
>   .../recipes-daemons/postfix/files/aliasesdb          | 20 ++++++++++++++++++++
>   .../recipes-daemons/postfix/files/postfix.service    |  1 +
>   meta-networking/recipes-daemons/postfix/postfix.inc  |  3 +++
>   3 files changed, 24 insertions(+)
>   create mode 100755 meta-networking/recipes-daemons/postfix/files/aliasesdb
>
> diff --git a/meta-networking/recipes-daemons/postfix/files/aliasesdb b/meta-networking/recipes-daemons/postfix/files/aliasesdb
> new file mode 100755
> index 0000000..421b47e
> --- /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" ]


drop it, "==" is for bash, I will fix it.


-Roy

> +        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 6ea9214..c781038 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 c58787e..d2f3356 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
>

-- 
Best Reagrds,
Roy | RongQing Li



More information about the Openembedded-devel mailing list