summaryrefslogtreecommitdiffstats
path: root/meta-networking
diff options
context:
space:
mode:
authorHongxu Jia <hongxu.jia@windriver.com>2015-12-02 05:15:40 -0500
committerJoe MacDonald <joe_macdonald@mentor.com>2016-01-05 12:43:34 -0500
commit2b6226e66f5339edc5e5f19aa3f1f5d7d2ce99ea (patch)
treec67605afc9acaf913a08ec045a2fb8247b555de1 /meta-networking
parentb03c85679883d95f5a64c46f79ae4e6868b72e57 (diff)
downloadmeta-openembedded-2b6226e66f5339edc5e5f19aa3f1f5d7d2ce99ea.tar.gz
postfix.inc: fix start postfix failed while hostname is numeric
While hostname is numeric, start postfix failed ... root@qemux86-64:~# hostname 1.2.3.4 root@qemux86-64:~# systemctl restart postfix |Job for postfix.service failed because the control process exited with error code. See "systemctl status postfix.service" and "journalctl -xe" for details. root@qemux86-64:~# systemctl status postfix -l Dec 02 08:05:40 1.2.3.4 aliasesdb[535]: /usr/sbin/postconf: fatal: unable to use my own hostname Dec 02 08:05:41 1.2.3.4 aliasesdb[535]: newaliases: warning: valid_hostname: numeric hostname: 1.2.3.4 Dec 02 08:05:41 1.2.3.4 postfix/sendmail[537]: warning: valid_hostname: numeric hostname: 1.2.3.4 Dec 02 08:05:41 1.2.3.4 aliasesdb[535]: newaliases: fatal: unable to use my own hostname Dec 02 08:05:42 1.2.3.4 postfix[540]: warning: valid_hostname: numeric hostname: 1.2.3.4 Dec 02 08:05:42 1.2.3.4 postfix[540]: fatal: unable to use my own hostname ... Refer meta/recipes-core/initscripts/initscripts-1.0/hostname.sh in oe-core, add check_hostname.sh and invoke it before postfix start, if the hostname is invalid, set "localhost" to main.cf. Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
Diffstat (limited to 'meta-networking')
-rwxr-xr-xmeta-networking/recipes-daemons/postfix/files/check_hostname.sh13
-rwxr-xr-xmeta-networking/recipes-daemons/postfix/files/postfix1
-rw-r--r--meta-networking/recipes-daemons/postfix/files/postfix.service1
-rw-r--r--meta-networking/recipes-daemons/postfix/postfix.inc3
4 files changed, 18 insertions, 0 deletions
diff --git a/meta-networking/recipes-daemons/postfix/files/check_hostname.sh b/meta-networking/recipes-daemons/postfix/files/check_hostname.sh
new file mode 100755
index 000000000..37a0dd088
--- /dev/null
+++ b/meta-networking/recipes-daemons/postfix/files/check_hostname.sh
@@ -0,0 +1,13 @@
1#! /bin/sh
2
3HOSTNAME=$(/bin/hostname)
4
5if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" -o ! -z "`echo $HOSTNAME | sed -n '/^[0-9]*\.[0-9].*/p'`" ]; then
6 # If hostname is invalid, and myhostname not existed in main.cf
7 /usr/sbin/postconf -h "myhostname" 2>/dev/null
8 if [ $? -ne 0 ]; then
9 # Set "localhost" to main.cf
10 /usr/sbin/postconf -e "myhostname=localhost"
11 fi
12fi
13
diff --git a/meta-networking/recipes-daemons/postfix/files/postfix b/meta-networking/recipes-daemons/postfix/files/postfix
index 0ea67ef63..8c7a60175 100755
--- a/meta-networking/recipes-daemons/postfix/files/postfix
+++ b/meta-networking/recipes-daemons/postfix/files/postfix
@@ -40,6 +40,7 @@ case "$1" in
40 newaliases 40 newaliases
41 fi 41 fi
42 if ! postfix status >/dev/null 2>&1; then 42 if ! postfix status >/dev/null 2>&1; then
43 /usr/sbin/check_hostname.sh
43 postfix start 44 postfix start
44 check_return $? 45 check_return $?
45 else 46 else
diff --git a/meta-networking/recipes-daemons/postfix/files/postfix.service b/meta-networking/recipes-daemons/postfix/files/postfix.service
index 02ea640b2..3a9a0a181 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
6[Service] 6[Service]
7Type=forking 7Type=forking
8PIDFile=@LOCALSTATEDIR@/spool/postfix/pid/master.pid 8PIDFile=@LOCALSTATEDIR@/spool/postfix/pid/master.pid
9ExecStartPre=-@SBINDIR@/check_hostname.sh
9ExecStartPre=-@LIBEXECDIR@/aliasesdb 10ExecStartPre=-@LIBEXECDIR@/aliasesdb
10ExecStart=@SBINDIR@/postfix start 11ExecStart=@SBINDIR@/postfix start
11ExecReload=@SBINDIR@/postfix reload 12ExecReload=@SBINDIR@/postfix reload
diff --git a/meta-networking/recipes-daemons/postfix/postfix.inc b/meta-networking/recipes-daemons/postfix/postfix.inc
index 6d39570d3..dc652d7da 100644
--- a/meta-networking/recipes-daemons/postfix/postfix.inc
+++ b/meta-networking/recipes-daemons/postfix/postfix.inc
@@ -23,6 +23,7 @@ SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV
23 file://internal_recipient \ 23 file://internal_recipient \
24 file://postfix.service \ 24 file://postfix.service \
25 file://aliasesdb \ 25 file://aliasesdb \
26 file://check_hostname.sh \
26" 27"
27 28
28S = "${WORKDIR}/postfix-${PV}" 29S = "${WORKDIR}/postfix-${PV}"
@@ -145,6 +146,8 @@ do_install () {
145 install -m 644 ${WORKDIR}/main.cf_2.0 ${D}${sysconfdir}/postfix/main.cf 146 install -m 644 ${WORKDIR}/main.cf_2.0 ${D}${sysconfdir}/postfix/main.cf
146 sed -i 's#@LIBEXECDIR@#${libexecdir}#' ${D}${sysconfdir}/postfix/main.cf 147 sed -i 's#@LIBEXECDIR@#${libexecdir}#' ${D}${sysconfdir}/postfix/main.cf
147 148
149 install -m 755 ${WORKDIR}/check_hostname.sh ${D}${sbindir}/
150
148 install -m 755 ${WORKDIR}/postfix ${D}${sysconfdir}/init.d/postfix 151 install -m 755 ${WORKDIR}/postfix ${D}${sysconfdir}/init.d/postfix
149 install -m 644 ${WORKDIR}/internal_recipient ${D}${sysconfdir}/postfix/internal_recipient 152 install -m 644 ${WORKDIR}/internal_recipient ${D}${sysconfdir}/postfix/internal_recipient
150 153