Merged, thanks Jackie. -J.
[[oe] [meta-networking][PATCH] postfix: add new recipe] On 14.07.13 (Sun 22:27) jackie.hu...@windriver.com wrote: > From: Jackie Huang <jackie.hu...@windriver.com> > > Postfix is Wietse Venema's mail server that started life at IBM > research as an alternative to the widely-used Sendmail program. > > Postfix attempts to be fast, easy to administer, and secure. > The outside has a definite Sendmail-ish flavor, but the inside > is completely different. > > Signed-off-by: Jackie Huang <jackie.hu...@windriver.com> > --- > .../recipes-daemons/postfix/files/install.patch | 66 ++++++ > .../postfix/files/internal_recipient | 1 + > .../recipes-daemons/postfix/files/main.cf_2.0 | 102 +++++++++ > .../recipes-daemons/postfix/files/makedefs.patch | 116 +++++++++++ > .../recipes-daemons/postfix/files/postfix | 85 ++++++++ > .../postfix/files/postfix-add-db6-support.patch | 26 +++ > .../recipes-daemons/postfix/files/postfix.service | 14 ++ > .../recipes-daemons/postfix/postfix.inc | 230 > +++++++++++++++++++++ > .../recipes-daemons/postfix/postfix_2.11.1.bb | 6 + > 9 files changed, 646 insertions(+) > create mode 100644 > meta-networking/recipes-daemons/postfix/files/install.patch > create mode 100644 > meta-networking/recipes-daemons/postfix/files/internal_recipient > create mode 100644 meta-networking/recipes-daemons/postfix/files/main.cf_2.0 > create mode 100644 > meta-networking/recipes-daemons/postfix/files/makedefs.patch > create mode 100755 meta-networking/recipes-daemons/postfix/files/postfix > create mode 100644 > meta-networking/recipes-daemons/postfix/files/postfix-add-db6-support.patch > create mode 100644 > meta-networking/recipes-daemons/postfix/files/postfix.service > create mode 100644 meta-networking/recipes-daemons/postfix/postfix.inc > create mode 100644 meta-networking/recipes-daemons/postfix/postfix_2.11.1.bb > > diff --git a/meta-networking/recipes-daemons/postfix/files/install.patch > b/meta-networking/recipes-daemons/postfix/files/install.patch > new file mode 100644 > index 0000000..a3fe089 > --- /dev/null > +++ b/meta-networking/recipes-daemons/postfix/files/install.patch > @@ -0,0 +1,66 @@ > +Change fixed postconf to a variable for cross-compiling > + > +Upstreamstatus: Inappropriate [embedded specific] > + > +Signed-off-by: Yao Zhao <yao.z...@windriver.com> > +--- > +diff --git a/postfix-install b/postfix-install > +index 49225ac..2e4c292 100644 > +--- a/postfix-install > ++++ b/postfix-install > +@@ -201,8 +201,8 @@ test -z "$non_interactive" -a ! -t 0 && { > + exit 1 > + } > + > +-test -x bin/postconf || { > +- echo $0: Error: no bin/postconf file. Did you forget to run \"make\"? > 1>&2 > ++test -x "$POSTCONF" || { > ++ echo $0: Error: no $POSTCONF file. Did you forget to run \"make\"? 1>&2 > + exit 1 > + } > + > +@@ -363,7 +363,7 @@ HTML files. Specify \"no\" if you do not want to install > these files." > + > + : ${install_root=/} > + : ${tempdir=`pwd`} > +-: ${config_directory=`bin/postconf -c conf -h -d config_directory`} > ++: ${config_directory=`$POSTCONF -c conf -h -d config_directory`} > + > + # Find out the location of installed configuration files. > + > +@@ -433,7 +433,7 @@ test -f $CONFIG_DIRECTORY/main.cf && { > + case "$junk" in > + "") eval unset $name;; > + esac > +- eval : \${$name=\`bin/postconf -c $CONFIG_DIRECTORY -h $name\`} || > ++ eval : \${$name=\`$POSTCONF -c $CONFIG_DIRECTORY -h $name\`} || > + exit 1 > + done > + } > +@@ -446,7 +446,7 @@ do > + case "$junk" in > + "") eval unset $name;; > + esac > +- eval : \${$name=\`bin/postconf -c conf -d -h $name\`} || exit 1 > ++ eval : \${$name=\`$POSTCONF -c conf -d -h $name\`} || exit 1 > + done > + > + # Override settings manually. > +@@ -565,6 +565,8 @@ HTML_DIRECTORY=$install_root$html_directory > + MANPAGE_DIRECTORY=$install_root$manpage_directory > + README_DIRECTORY=$install_root$readme_directory > + > ++test "x$POSTCONF" != "x" || POSTCONF="bin/postconf" > ++ > + # Avoid repeated tests for existence of these; default permissions suffice. > + > + test -d $DAEMON_DIRECTORY || mkdir -p $DAEMON_DIRECTORY || exit 1 > +@@ -724,7 +726,7 @@ do > + # Postfix releases, and software should not suddenly be installed in > + # the wrong place when Postfix is being upgraded. > + > +-bin/postconf -c $CONFIG_DIRECTORY -e \ > ++"$POSTCONF" -c $CONFIG_DIRECTORY -e \ > + "daemon_directory = $daemon_directory" \ > + "data_directory = $data_directory" \ > + "command_directory = $command_directory" \ > diff --git a/meta-networking/recipes-daemons/postfix/files/internal_recipient > b/meta-networking/recipes-daemons/postfix/files/internal_recipient > new file mode 100644 > index 0000000..6a8f268 > --- /dev/null > +++ b/meta-networking/recipes-daemons/postfix/files/internal_recipient > @@ -0,0 +1 @@ > +root@ permit_mynetworks,reject > diff --git a/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 > b/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 > new file mode 100644 > index 0000000..a128faa > --- /dev/null > +++ b/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 > @@ -0,0 +1,102 @@ > +# Configure your domain and accounts > +#mydomain=sample.com > +#FQDN from gethostname > +#myhostname = > +mydomain=localdomain > +mydestination = $myhostname, localhost.localdomain localhost > +mynetworks = 127.0.0.1/8 > +inet_interfaces = 127.0.0.1 > + > +virtual_mailbox_domains = sample.com, other.net > +virtual_mailbox_maps = hash:/etc/postfix/virtual > +virtual_alias_maps = hash:/etc/postfix/virtual_alias > + > +alias_maps = hash:/etc/aliases > + > +# You'll start with the following lines for maildir storage > +virtual_mailbox_base = /var/spool/vmail > +virtual_uid_maps = static:`grep vmail /etc/passwd | cut -d ":" -f 3` > +virtual_gid_maps = static:`grep vmail /etc/passwd | cut -d ":" -f 4` > + > + > +# You'll start with the following lines for IMAP storage > +#virtual_transport = lmtp:unix:/var/lib/cyrus/socket/lmtp > + > + > +# General stuff here again > +config_directory = /etc/postfix > +sample_directory = /etc/postfix > +queue_directory = /var/spool/postfix > +mail_spool_directory = /var/spool/mail > +readme_directory = no > +command_directory = /usr/sbin > +daemon_directory = /usr/libexec/postfix > +mail_owner = postfix > +setgid_group = postdrop > +unknown_local_recipient_reject_code = 450 > +mynetworks_style = host > +debug_peer_level = 2 > +sendmail_path = /usr/sbin/sendmail > +newaliases_path = /usr/bin/newaliases > +mailq_path = /usr/bin/mailq > + > +smtpd_data_restrictions = > + permit_mynetworks, > + reject_unauth_pipelining, > + permit > + > +smtpd_client_restrictions = > + permit_mynetworks, > + # reject_unknown_client, # This can cause a lot of false rejects. > + reject_invalid_hostname, > + reject_rbl_client list.dsbl.org, > + reject_rbl_client sbl.spamhaus.org, > + reject_rbl_client cbl.abuseat.org, > + reject_rbl_client dul.dnsbl.sorbs.net, > + permit > + > +smtpd_helo_required = yes > +smtpd_helo_restrictions = > + permit_mynetworks, > + reject_unauth_pipelining, > + # reject_non_fqdn_hostname, # This can cause a lot of false rejects. > + # reject_unknown_hostname, # This can cause a lot of false rejects. > + reject_invalid_hostname, > + permit > + > +smtpd_sender_restrictions = > + permit_mynetworks, > + reject_non_fqdn_sender, > + # check_sender_access hash:/etc/postfix/access_domains, > + reject_unknown_sender_domain, > + permit > + > +smtpd_recipient_restrictions = > + permit_mynetworks, > + permit_sasl_authenticated, > + reject_unauth_destination, > + > + # check_recipient_access pcre:/etc/postfix/recipient_checks.pcre, > + # check_helo_access pcre:/etc/postfix/helo_checks.pcre, > + > + # check_client_access hash:/etc/postfix/maps/access_client, > + # check_client_access hash:/etc/postfix/maps/exceptions_client, > + # check_helo_access hash:/etc/postfix/maps/access_helo, > + # check_helo_access hash:/etc/postfix/maps/verify_helo, > + # check_sender_access hash:/etc/postfix/maps/access_sender, > + # check_sender_access hash:/etc/postfix/maps/verify_sender, > + # check_recipient_access hash:/etc/postfix/maps/access_recipient, > + > + # reject_multi_recipient_bounce, > + reject_non_fqdn_recipient, > + reject_unknown_recipient_domain, > + # reject_unlisted_recipient, > + #check_policy_service unix:private/policy, > + > + # check_sender_access hash:/etc/postfix/maps/no_verify_sender, > + # check_sender_access hash:/etc/postfix/access_domains, > + # reject_unverified_sender, > + # reject_unverified_recipient > + check_recipient_access hash:/etc/postfix/internal_recipient > + > +disable_vrfy_command = yes > diff --git a/meta-networking/recipes-daemons/postfix/files/makedefs.patch > b/meta-networking/recipes-daemons/postfix/files/makedefs.patch > new file mode 100644 > index 0000000..32c31b0 > --- /dev/null > +++ b/meta-networking/recipes-daemons/postfix/files/makedefs.patch > @@ -0,0 +1,116 @@ > +1)remove RANLIB, SYSLIBS, AR and get them from env. > + > +2)reference sysroot when searching header files > +3)include sysroot path instead of absolute include path > +for Linux2 and Linux3 systems. > +4)for non-native build, search STAGING_BASELIBDIR/LIBDIR > + native build, search host library path for nsl and resolv library > + which comes from libc > + > +Upstreamstatus: Inappropriate [embedded specific] > + > +Signed-off-by: Yao Zhao <yao.z...@windriver.com> > +--- > + makedefs | 27 +++++++++++---------------- > + 1 files changed, 11 insertions(+), 16 deletions(-) > + > +diff --git a/makedefs b/makedefs > +index dd5f256..e6fb795 100644 > +--- a/makedefs > ++++ b/makedefs > +@@ -87,9 +87,6 @@ > + > + # Defaults for most sane systems > + > +-RANLIB=ranlib > +-SYSLIBS= > +-AR=ar > + ARFL=rv > + > + # Ugly function to make our error message more visible among the > +@@ -293,12 +290,12 @@ case "$SYSTEM.$RELEASE" in > + case "$CCARGS" in > + *-DNO_DB*) ;; > + *-DHAS_DB*) ;; > +- *) if [ -f /usr/include/db.h ] > ++ *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ] > + then > + : we are all set > +- elif [ -f /usr/include/db/db.h ] > ++ elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ] > + then > +- CCARGS="$CCARGS -I/usr/include/db" > ++ CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db" > + else > + # No, we're not going to try db1 db2 db3 etc. > + # On a properly installed system, Postfix builds > +@@ -307,12 +304,12 @@ case "$SYSTEM.$RELEASE" in > + echo "Install the appropriate db*-devel package first." > 1>&2 > + exit 1 > + fi > +- SYSLIBS="-ldb" > ++ SYSLIBS="$SYSLIBS -ldb" > + ;; > + esac > + for name in nsl resolv $GDBM_LIBS > + do > +- for lib in /usr/lib64 /lib64 /usr/lib /lib > ++ for lib in $BUILD_SYSROOT_NSL_PATH > + do > + test -e $lib/lib$name.a -o -e $lib/lib$name.so && { > + SYSLIBS="$SYSLIBS -l$name" > +@@ -332,7 +329,7 @@ case "$SYSTEM.$RELEASE" in > + if [ `expr "X$CCARGS" : "X.*-DNO_EPOLL"` -gt 0 ] > + then > + : > +- elif [ ! -e /usr/include/sys/epoll.h ] > ++ elif [ ! -e "$BUILD_SYSROOT"/usr/include/sys/epoll.h ] > + then > + echo CCARGS="$CCARGS -DNO_EPOLL" > + else > +@@ -356,8 +353,6 @@ int main(int argc, char **argv) > + } > + EOF > + ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1 > +- ./makedefs.test 2>/dev/null || > +- CCARGS="$CCARGS -DNO_EPOLL" > + rm -f makedefs.test makedefs.test.[co] > + fi;; > + esac > +@@ -366,12 +361,12 @@ EOF > + case "$CCARGS" in > + *-DNO_DB*) ;; > + *-DHAS_DB*) ;; > +- *) if [ -f /usr/include/db.h ] > ++ *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ] > + then > + : we are all set > +- elif [ -f /usr/include/db/db.h ] > ++ elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ] > + then > +- CCARGS="$CCARGS -I/usr/include/db" > ++ CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db" > + else > + # On a properly installed system, Postfix builds > + # by including <db.h> and by linking with -ldb > +@@ -379,7 +374,7 @@ EOF > + echo "Install the appropriate db*-devel package first." > 1>&2 > + exit 1 > + fi > +- SYSLIBS="-ldb" > ++ SYSLIBS="$SYSLIBS -ldb" > + ;; > + esac > + for name in nsl resolv > +@@ -415,7 +410,7 @@ EOF > + esac > + for name in nsl resolv > + do > +- for lib in /usr/lib64 /lib64 /usr/lib /lib > ++ for lib in $BUILD_SYSROOT_NSL_PATH > + do > + test -e $lib/lib$name.a -o -e $lib/lib$name.so && { > + SYSLIBS="$SYSLIBS -l$name" > +-- > +1.7.1 > + > diff --git a/meta-networking/recipes-daemons/postfix/files/postfix > b/meta-networking/recipes-daemons/postfix/files/postfix > new file mode 100755 > index 0000000..7bcc816 > --- /dev/null > +++ b/meta-networking/recipes-daemons/postfix/files/postfix > @@ -0,0 +1,85 @@ > +#!/bin/sh > + > +success() { > + echo " Successful" > + exit 0 > +} > + > +fail() { > + echo " Failed" > + exit 1 > + > +} > + > +check_return () { > + local ret="$1" > + > + if [ "$ret" = "0" ]; then > + success > + else > + fail > + fi > +} > + > +PIDFile=/var/spool/postfix/pid/master.pid > +case "$1" in > + > + start) > + echo -n "Starting Postfix..." > + if [ ! -e /etc/aliases.db ]; then > + # The alias database is necessary for postfix to work correctly. > + echo "Creating aliases database ..." > + newaliases > + fi > + if ! postfix status >/dev/null 2>&1; then > + postfix start > + check_return $? > + else > + success > + fi > + ;; > + > + stop) > + echo -n "Stopping Postfix..." > + if postfix status >/dev/null 2>&1; then > + postfix stop > + check_return $? > + else > + success > + fi > + ;; > + > + reload) > + echo -n "Reloading Postfix..." > + if postfix status >/dev/null 2>&1; then > + postfix reload > + check_return $? > + else > + postfix start > + check_return $? > + fi > + ;; > + > + restart) > + $0 stop > + sleep 1 > + $0 start > + ;; > + > + status) > + if postfix status >/dev/null 2>&1; then > + pid=`sed -e 's/\s//g' $PIDFile` > + echo "The Postfix mail system is running (PID: $pid)" > + exit 0 > + else > + echo "The Postfix mail system is not running" > + exit 1 > + fi > + ;; > + > + *) > + echo "Usage: $0 {start|stop|status|reload|restart}" > + exit 1 > + ;; > +esac > + > diff --git > a/meta-networking/recipes-daemons/postfix/files/postfix-add-db6-support.patch > b/meta-networking/recipes-daemons/postfix/files/postfix-add-db6-support.patch > new file mode 100644 > index 0000000..e3e28c8 > --- /dev/null > +++ > b/meta-networking/recipes-daemons/postfix/files/postfix-add-db6-support.patch > @@ -0,0 +1,26 @@ > +Subject: [PATCH] add db6 support db6 > + > +Upstream-Status: Backport > + > +Signed-off-by: Jackie Huang <jackie.hu...@windriver.com> > +--- > + src/util/dict_db.c | 3 ++- > + 1 files changed, 2 insertions(+), 1 deletions(-) > + > +diff --git a/src/util/dict_db.c b/src/util/dict_db.c > +index 93ee480..f1ae66b 100644 > +--- a/src/util/dict_db.c > ++++ b/src/util/dict_db.c > +@@ -693,7 +693,8 @@ static DICT *dict_db_open(const char *class, const char > *path, int open_flags, > + msg_fatal("set DB cache size %d: %m", dict_db_cache_size); > + if (type == DB_HASH && db->set_h_nelem(db, DICT_DB_NELM) != 0) > + msg_fatal("set DB hash element count %d: %m", DICT_DB_NELM); > +-#if DB_VERSION_MAJOR == 5 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR > 0) > ++#if DB_VERSION_MAJOR == 6 || DB_VERSION_MAJOR == 5 || \ > ++ (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR > 0) > + if ((errno = db->open(db, 0, db_path, 0, type, db_flags, 0644)) != 0) > + FREE_RETURN(dict_surrogate(class, path, open_flags, dict_flags, > + "open database %s: %m", db_path)); > +-- > +1.7.1 > + > diff --git a/meta-networking/recipes-daemons/postfix/files/postfix.service > b/meta-networking/recipes-daemons/postfix/files/postfix.service > new file mode 100644 > index 0000000..6ea9214 > --- /dev/null > +++ b/meta-networking/recipes-daemons/postfix/files/postfix.service > @@ -0,0 +1,14 @@ > +[Unit] > +Description=Postfix Mail Transport Agent > +After=syslog.target network.target > +Conflicts=sendmail.service exim.service > + > +[Service] > +Type=forking > +PIDFile=/var/spool/postfix/pid/master.pid > +ExecStart=/usr/sbin/postfix start > +ExecReload=/usr/sbin/postfix reload > +ExecStop=/usr/sbin/postfix stop > + > +[Install] > +WantedBy=multi-user.target > diff --git a/meta-networking/recipes-daemons/postfix/postfix.inc > b/meta-networking/recipes-daemons/postfix/postfix.inc > new file mode 100644 > index 0000000..c58787e > --- /dev/null > +++ b/meta-networking/recipes-daemons/postfix/postfix.inc > @@ -0,0 +1,230 @@ > +SUMMARY = "Postfix Mail Transport Agent" > +DESCRIPTION = "Postfix is Wietse Venema's mail server that started life at \ > +IBM research as an alternative to the widely-used Sendmail program. \ > +Postfix attempts to be fast, easy to administer, and secure. The outsidei \ > +has a definite Sendmail-ish flavor, but the inside is completely different." > + > +HOMEPAGE= "http://www.postfix.org" > +SECTION = "console/network" > +DEPENDS = "virtual/db libpcre openssl postfix-native \ > + ${@base_contains('DISTRO_FEATURES', 'ldap', 'openldap', '', d)} \ > + ${@base_contains('DISTRO_FEATURES', 'sasl', 'cyrus-sasl', '', d)} \ > +" > +DEPENDS_virtclass-native = "virtual/db-native openssl-native libpcre-native" > + > +LICENSE = "IPL-1.0" > +LIC_FILES_CHKSUM = "file://LICENSE;md5=64375f37431336ea1b1b3005fe3fa354" > + > +SRC_URI = > "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz > \ > + file://makedefs.patch \ > + file://install.patch \ > + file://main.cf_2.0 \ > + file://postfix \ > + file://internal_recipient \ > + file://postfix.service \ > + " > + > +S = "${WORKDIR}/postfix-${PV}" > + > +BBCLASSEXTEND = "native" > + > +inherit update-rc.d useradd update-alternatives systemd > + > +INITSCRIPT_NAME = "postfix" > +INITSCRIPT_PARAMS = "start 58 3 4 5 . stop 13 0 1 6 ." > +USERADD_PACKAGES = "${PN}" > +USERADD_PARAM_${PN} = \ > +"-d /var/spool/postfix -r -g postfix --shell /bin/false postfix; \ > + -d /var/spool/vmail -r -u 5000 -g vmail --shell /bin/false vmail \ > +" > +GROUPADD_PARAM_${PN} = "--system postfix;--system postdrop;-g 5000 --system > vmail" > + > +export SYSLIBS = "${LDFLAGS}" > + > +# CCARGS specifies includes, defines > +# AUXLIBS specifies libraries > +# Linux2/Linux3 has HAS_DB defined > +# makedefs will make CC to be CC+CCARGS > + > +# ldap support > +export CCARGS-ldap = "\ > + ${@base_contains('DISTRO_FEATURES', 'ldap', '-DHAS_LDAP', '', d)}" > +export AUXLIBS-ldap = "\ > + ${@base_contains('DISTRO_FEATURES', 'ldap', '-lldap -llber', '', d)}" > + > +# no native openldap > +export CCARGS-ldap_virtclass-native = "" > +export AUXLIBS-ldap_virtclass-native = "" > + > +# SASL support -DUSE_LDAP_SASL -DUSE_SASL_AUTH > +# current openldap didn't enable SASL > +export CCARGS-sasl = "\ > + ${@base_contains('DISTRO_FEATURES', 'sasl', '-DUSE_SASL_AUTH > -DUSE_CYRUS_SASL -I=/usr/include/sasl', '', d)}" > +export AUXLIBS-sasl = "\ > + ${@base_contains('DISTRO_FEATURES', 'sasl', '-lsasl2', '', d)}" > +export CCARGS-sasl_virtclass-native = "" > +export AUXLIBS-sasl_virtclass-native = "" > + > +# PCRE, TLS support default > +export CCARGS = "${CFLAGS} -DHAS_PCRE -DUSE_TLS ${CCARGS-ldap} > ${CCARGS-sasl}" > +export AUXLIBS = "-lpcre -lssl -lcrypto ${AUXLIBS-sasl} ${AUXLIBS-ldap}" > +export POSTCONF = "${STAGING_DIR_NATIVE}${sbindir_native}/postconf" > + > +# OPT,DEBUG is aready in CFLAGS > +# ignore the OPTS="CC=$CC" in Makefile it will not use the CC=$CC $CCARGS > +EXTRA_OEMAKE += "OPT= DEBUG= OPTS= " > + > +do_compile () { > + unset CFLAGS CPPFLAGS CXXFLAGS > + local native_build > + > + native_build="${@['0', '1'][bb.data.inherits_class('native', d) or > bb.data.inherits_class('nativesdk', d)]}" > + > + # if not native build, then pass SYSTEM and RELEASE to makedefs > + if [ "${native_build}" != "1" ]; then > + # uname -s for target > + SYSTEM="Linux" > + > + # uname -r, use 2.6 as bottomline, even target kernel ver > 2.6 > + RELEASE="2.6.34" > + sed -i -e \ > + "s:\$(SHELL) makedefs):\$(SHELL) makedefs $SYSTEM > $RELEASE):" \ > + ${S}/Makefile.in > + export BUILD_SYSROOT="${STAGING_DIR_HOST}" > + export BUILD_SYSROOT_NSL_PATH="${STAGING_BASELIBDIR} \ > + ${STAGING_LIBDIR}" > + else > + # native build > + export BUILD_SYSROOT="${STAGING_DIR_NATIVE}" > + > + # ubuntu x86 host: /lib/x86_64-linux-gnu(64) > /lib/i386-linux-gnu (32) > + # on 64 bits, 32 libs in i386-linux-gnu > + # let makedefs finds nsl and resolv libs, host CC will link > + # the correct libraries > + BUILD_SYSROOT_NSL_PATH="$(${CC} -print-search-dirs 2>/dev/null > | \ > + sed -n '/^libraries: =/s/libraries: =//p' | \ > + sed -e 's/:/\n/g' | xargs -n1 readlink -f | \ > + grep -v 'gcc\|/[0-9.]\+$' | sort -u)" > + if [ -z "$BUILD_SYSROOT_NSL_PATH" ]; then > + BUILD_SYSROOT_NSL_PATH="/usr/lib64 /lib64 \ > + /lib/x86_64-linux-gnu \ > + /usr/lib /lib \ > + /lib/i386-linux-gnu" > + fi > + export BUILD_SYSROOT_NSL_PATH > + fi > + > + oe_runmake makefiles > + oe_runmake > +} > + > +do_install_prepend_virtclass-native() { > + export POSTCONF="bin/postconf" > +} > + > +SYSTEMD_SERVICE_${PN} = "postfix.service" > +SYSTEMD_AUTO_ENABLE = "disable" > + > +do_install () { > + sh ./postfix-install 'install_root=${D}' \ > + 'config_directory=${sysconfdir}/postfix' \ > + 'daemon_directory=${exec_prefix}/libexec/postfix' \ > + 'command_directory=${sbindir}' \ > + 'queue_directory=${localstatedir}/spool/postfix' \ > + 'sendmail_path=${sbindir}/sendmail.postfix' \ > + 'newaliases_path=${bindir}/newaliases' \ > + 'mailq_path=${bindir}/mailq' \ > + 'manpage_directory=${mandir}' \ > + 'readme_directory=${datadir}/doc/postfix' \ > + 'data_directory=${localstatedir}/lib/postfix' \ > + -non-interactive > + rm -rf ${D}${localstatedir}/spool/postfix > + mv ${D}${sysconfdir}/postfix/main.cf > ${D}${sysconfdir}/postfix/sample-main.cf > + install -d ${D}${sysconfdir}/init.d > + install -m 644 ${WORKDIR}/main.cf_2.0 ${D}${sysconfdir}/postfix/main.cf > + install -m 755 ${WORKDIR}/postfix ${D}${sysconfdir}/init.d/postfix > + install -m 644 ${WORKDIR}/internal_recipient > ${D}${sysconfdir}/postfix/internal_recipient > + > + install -d ${D}${systemd_unitdir}/system > + 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 770 -d ${D}${localstatedir}/spool/postfix > + chown postfix:postfix ${D}${localstatedir}/spool/postfix > + chown postfix:postfix ${D}${localstatedir}/lib/postfix > + > + install -m 2755 -d ${D}${localstatedir}/spool/mail > + chown postfix:nogroup ${D}${localstatedir}/spool/mail > + install -m 0755 -d ${D}${localstatedir}/lib/postfix > + chown postfix:nogroup ${D}${localstatedir}/lib/postfix > + install -m 0755 -d ${D}${localstatedir}/spool/postfix > + chown root:postfix ${D}${localstatedir}/spool/postfix > + install -m 0700 -d ${D}${localstatedir}/spool/postfix/active > + chown postfix:root ${D}${localstatedir}/spool/postfix/active > + install -m 0700 -d ${D}${localstatedir}/spool/postfix/bounce > + chown postfix:root ${D}${localstatedir}/spool/postfix/bounce > + install -m 0700 -d ${D}${localstatedir}/spool/postfix/corrupt > + chown postfix:root ${D}${localstatedir}/spool/postfix/corrupt > + install -m 0700 -d ${D}${localstatedir}/spool/postfix/defer > + chown postfix:root ${D}${localstatedir}/spool/postfix/defer > + install -m 0700 -d ${D}${localstatedir}/spool/postfix/deferred > + chown postfix:root ${D}${localstatedir}/spool/postfix/deferred > + install -m 0700 -d ${D}${localstatedir}/spool/postfix/flush > + chown postfix:root ${D}${localstatedir}/spool/postfix/flush > + install -m 0700 -d ${D}${localstatedir}/spool/postfix/hold > + chown postfix:root ${D}${localstatedir}/spool/postfix/hold > + install -m 0700 -d ${D}${localstatedir}/spool/postfix/incoming > + chown postfix:root ${D}${localstatedir}/spool/postfix/incoming > + install -m 0700 -d ${D}${localstatedir}/spool/postfix/saved > + chown postfix:root ${D}${localstatedir}/spool/postfix/saved > + install -m 0700 -d ${D}${localstatedir}/spool/postfix/trace > + chown postfix:root ${D}${localstatedir}/spool/postfix/trace > + install -m 0730 -d ${D}${localstatedir}/spool/postfix/maildrop > + chown postfix:postdrop ${D}${localstatedir}/spool/postfix/maildrop > + install -m 0755 -d ${D}${localstatedir}/spool/postfix/pid > + chown root:root ${D}${localstatedir}/spool/postfix/pid > + install -m 0700 -d ${D}${localstatedir}/spool/postfix/private > + chown postfix:root ${D}${localstatedir}/spool/postfix/private > + install -m 0710 -d ${D}${localstatedir}/spool/postfix/public > + chown postfix:postdrop ${D}${localstatedir}/spool/postfix/public > + install -m 0755 -d ${D}${localstatedir}/spool/vmail > + chown vmail:vmail ${D}${localstatedir}/spool/vmail > + > + chown :postdrop ${D}${sbindir}/postqueue > + chown :postdrop ${D}${sbindir}/postdrop > + chmod g+s ${D}${sbindir}/postqueue > + chmod g+s ${D}${sbindir}/postdrop > +} > + > +do_install_append_class-native() { > + ln -sf ../sbin/sendmail.postfix ${D}${bindir}/newaliases > + ln -sf ../sbin/sendmail.postfix ${D}${bindir}/mailq > +} > + > +NATIVE_INSTALL_WORKS = "1" > + > +ALTERNATIVE_${PN} = "sendmail" > +ALTERNATIVE_TARGET[sendmail] = "${sbindir}/sendmail.postfix" > +ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail" > +ALTERNATIVE_PRIORITY = "120" > + > +pkg_postinst_${PN} () { > + if [ "x$D" = "x" ]; then > + touch /etc/aliases > + newaliases > + > + # generate virtual_alias, default is hash > + touch /etc/postfix/virtual_alias > + postmap /etc/postfix/virtual_alias > + else > + touch $D/etc/aliases > + newaliases -C $D/etc/postfix/main.cf -oA$D/etc/aliases > + touch $D/etc/postfix/virtual_alias > + postmap -c $D/etc/postfix $D/etc/postfix/virtual_alias > + fi > +} > + > +# Exclude .debug directories from the main package > +FILES_${PN} = "${sysconfdir} ${localstatedir} ${bindir}/* ${sbindir}/* \ > + ${exec_prefix}/libexec/postfix/* ${systemd_unitdir}/*" > +FILES_${PN}-dbg += "${exec_prefix}/libexec/postfix/.debug" > diff --git a/meta-networking/recipes-daemons/postfix/postfix_2.11.1.bb > b/meta-networking/recipes-daemons/postfix/postfix_2.11.1.bb > new file mode 100644 > index 0000000..8f237dc > --- /dev/null > +++ b/meta-networking/recipes-daemons/postfix/postfix_2.11.1.bb > @@ -0,0 +1,6 @@ > +require postfix.inc > + > +SRC_URI += "file://postfix-add-db6-support.patch" > + > +SRC_URI[md5sum] = "56ac1f1a79737c4ac1e24535a122a4a6" > +SRC_URI[sha256sum] = > "487f98a73b95a5799409caf21ec065efea91c1dcdfb84c038a0e3a265d6489e2" > -- > 2.0.0 > -- -Joe MacDonald. :wq
signature.asc
Description: Digital signature
-- _______________________________________________ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel