summaryrefslogtreecommitdiff
path: root/recipes/postfix
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/postfix
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/postfix')
-rw-r--r--recipes/postfix/files/install.patch63
-rw-r--r--recipes/postfix/files/internal_recipient2
-rw-r--r--recipes/postfix/files/main.cf_2.0101
-rw-r--r--recipes/postfix/files/makedefs.patch16
-rwxr-xr-xrecipes/postfix/files/postfix31
-rw-r--r--recipes/postfix/files/volatiles15
-rw-r--r--recipes/postfix/postfix-2.0.20/.mtn2git_empty0
-rw-r--r--recipes/postfix/postfix-native_2.0.20.bb10
-rw-r--r--recipes/postfix/postfix-native_2.2.12.bb10
-rw-r--r--recipes/postfix/postfix.inc81
-rw-r--r--recipes/postfix/postfix_2.0.20.bb3
-rw-r--r--recipes/postfix/postfix_2.2.12.bb1
12 files changed, 333 insertions, 0 deletions
diff --git a/recipes/postfix/files/install.patch b/recipes/postfix/files/install.patch
new file mode 100644
index 0000000000..baffcce0e8
--- /dev/null
+++ b/recipes/postfix/files/install.patch
@@ -0,0 +1,63 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- postfix-2.0.15/postfix-install~install.patch
++++ postfix-2.0.15/postfix-install
+@@ -187,8 +187,8 @@
+ 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
+ }
+
+@@ -336,7 +336,7 @@
+
+ : ${install_root=/}
+ : ${tempdir=`pwd`}
+-: ${config_directory=`bin/postconf -h -d config_directory`}
++: ${config_directory=`$POSTCONF -h -d config_directory`}
+
+ # Find out the location of installed configuration files.
+
+@@ -399,7 +399,7 @@
+ 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
+ }
+@@ -414,7 +414,7 @@
+ case "$junk" in
+ "") eval unset $name;;
+ esac
+- eval : \${$name=\`bin/postconf -d -h $name\`} || exit 1
++ eval : \${$name=\`$POSTCONF -d -h $name\`} || exit 1
+ done
+
+ # Override settings manually.
+@@ -521,6 +521,8 @@
+ SAMPLE_DIRECTORY=$install_root$sample_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
+@@ -639,7 +641,7 @@
+ # 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" \
+ "command_directory = $command_directory" \
+ "queue_directory = $queue_directory" \
diff --git a/recipes/postfix/files/internal_recipient b/recipes/postfix/files/internal_recipient
new file mode 100644
index 0000000000..0d11944beb
--- /dev/null
+++ b/recipes/postfix/files/internal_recipient
@@ -0,0 +1,2 @@
+root@ permit_mynetworks,reject
+
diff --git a/recipes/postfix/files/main.cf_2.0 b/recipes/postfix/files/main.cf_2.0
new file mode 100644
index 0000000000..1a6ddabbf3
--- /dev/null
+++ b/recipes/postfix/files/main.cf_2.0
@@ -0,0 +1,101 @@
+#!/bin/sh
+cat <<EOF
+# Configure your domain and accounts
+mydomain=sample.com
+mynetworks = 127.0.0.1/32 192.168.1.0/24
+
+virtual_mailbox_domains = sample.com, other.net
+virtual_mailbox_maps = hash:/etc/postfix/virtual
+virtual_alias_maps = hash:/etc/postfix/virtual_alias
+
+
+# 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
+mydestination =
+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
+
+EOF
diff --git a/recipes/postfix/files/makedefs.patch b/recipes/postfix/files/makedefs.patch
new file mode 100644
index 0000000000..433b171e5a
--- /dev/null
+++ b/recipes/postfix/files/makedefs.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- postfix-2.0.15/makedefs~makedefs
++++ postfix-2.0.15/makedefs
+@@ -189,7 +189,7 @@
+ echo "No <db.h> include file found." 1>&2
+ echo "Install the appropriate db*-devel package first." 1>&2
+ echo "See the RELEASE_NOTES file for more information." 1>&2
+- exit 1
++ #exit 1
+ fi
+ # GDBM locks the DBM .pag file after open. This breaks postmap.
+ # if [ -f /usr/include/gdbm-ndbm.h ]
diff --git a/recipes/postfix/files/postfix b/recipes/postfix/files/postfix
new file mode 100755
index 0000000000..2fd5ba7007
--- /dev/null
+++ b/recipes/postfix/files/postfix
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+case "$1" in
+
+ start)
+ echo "Starting Postfix..."
+ postfix start
+ ;;
+
+ stop)
+ echo "Stopping Postfix..."
+ postfix stop
+ ;;
+
+ reload)
+ echo "Reloading Postfix..."
+ postfix reload
+ ;;
+
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+
+ *)
+ echo "Usage: $0 {start|stop|reload|restart}"
+ exit 1
+ ;;
+esac
+
diff --git a/recipes/postfix/files/volatiles b/recipes/postfix/files/volatiles
new file mode 100644
index 0000000000..bc330c99bd
--- /dev/null
+++ b/recipes/postfix/files/volatiles
@@ -0,0 +1,15 @@
+d postfix nogroup 2755 /var/spool/mail none
+d root postfix 0755 /var/spool/postfix none
+d postfix root 0700 /var/spool/postfix/active none
+d postfix root 0700 /var/spool/postfix/bounce none
+d postfix root 0700 /var/spool/postfix/corrupt none
+d postfix root 0700 /var/spool/postfix/defer none
+d postfix root 0700 /var/spool/postfix/deferred none
+d postfix root 0700 /var/spool/postfix/flush none
+d postfix root 0700 /var/spool/postfix/hold none
+d postfix root 0700 /var/spool/postfix/incoming none
+d postfix postdrop 0730 /var/spool/postfix/maildrop none
+d root root 0755 /var/spool/postfix/pid none
+d postfix root 0700 /var/spool/postfix/private none
+d postfix postdrop 0710 /var/spool/postfix/public none
+d root root 0755 /var/spool/vmail none
diff --git a/recipes/postfix/postfix-2.0.20/.mtn2git_empty b/recipes/postfix/postfix-2.0.20/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/recipes/postfix/postfix-2.0.20/.mtn2git_empty
diff --git a/recipes/postfix/postfix-native_2.0.20.bb b/recipes/postfix/postfix-native_2.0.20.bb
new file mode 100644
index 0000000000..66ff65de4c
--- /dev/null
+++ b/recipes/postfix/postfix-native_2.0.20.bb
@@ -0,0 +1,10 @@
+require postfix_${PV}.bb
+
+inherit native
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/postfix-${PV}"
+DEPENDS = "virtual/db-native libpcre-native"
+export DIRS = "src/util src/global src/postconf"
+
+do_stage () {
+ install -m 0755 src/postconf/postconf ${STAGING_BINDIR}/
+}
diff --git a/recipes/postfix/postfix-native_2.2.12.bb b/recipes/postfix/postfix-native_2.2.12.bb
new file mode 100644
index 0000000000..66ff65de4c
--- /dev/null
+++ b/recipes/postfix/postfix-native_2.2.12.bb
@@ -0,0 +1,10 @@
+require postfix_${PV}.bb
+
+inherit native
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/postfix-${PV}"
+DEPENDS = "virtual/db-native libpcre-native"
+export DIRS = "src/util src/global src/postconf"
+
+do_stage () {
+ install -m 0755 src/postconf/postconf ${STAGING_BINDIR}/
+}
diff --git a/recipes/postfix/postfix.inc b/recipes/postfix/postfix.inc
new file mode 100644
index 0000000000..0371f62957
--- /dev/null
+++ b/recipes/postfix/postfix.inc
@@ -0,0 +1,81 @@
+SECTION = "console/network"
+DEPENDS = "virtual/db libpcre postfix-native"
+LICENSE = "IPL"
+
+SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \
+ file://${FILESDIR}/makedefs.patch;patch=1 \
+ file://${FILESDIR}/install.patch;patch=1 \
+ file://main.cf_2.0 \
+ file://volatiles \
+ file://postfix \
+ file://internal_recipient \
+ "
+
+S = "${WORKDIR}/postfix-${PV}"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "postfix"
+INITSCRIPT_PARAMS = "start 58 3 4 5 . stop 13 0 1 6 ."
+
+#FIXME: this is broken because the native build won't work on systems where
+# native bdb does not require libpthread. ARM doesn't require libpthread
+# because it uses an assembler mutex implementation.
+LIBBDB_EXTRA = "-lpthread"
+LIBBDB_EXTRA_arm = ""
+LIBBDB_EXTRA_armeb = ""
+
+export SYSLIBS = "-lpcre -ldb ${LIBBDB_EXTRA} -lnsl -lresolv ${LDFLAGS}"
+export EXPORT = "AUXLIBS='-lpcre' CCARGS='-DHAS_PCRE ${CFLAGS}' OPT='' DEBUG='-g'"
+export CC_append = " -DHAS_PCRE ${CFLAGS}"
+export EXTRA_OEMAKE = "-e"
+export POSTCONF = "${STAGING_BINDIR_NATIVE}/postconf"
+
+do_compile () {
+ unset CFLAGS CPPFLAGS CXXFLAGS
+ oe_runmake makefiles
+ oe_runmake
+}
+
+do_install () {
+ sh ./postfix-install 'install_root=${D}' -non-interactive
+ rm -rf ${D}${localstatedir}/spool/postfix
+ mv ${D}${sysconfdir}/postfix/main.cf ${D}${sysconfdir}/postfix/sample-main.cf
+ install -d ${D}${localstatedir}/tmp
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/main.cf_2.0 ${D}${localstatedir}/tmp/main_cf.sh
+ install -m 644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/01_postfix
+ install -m 755 ${WORKDIR}/postfix ${D}${sysconfdir}/init.d/postfix
+ install -m 644 ${WORKDIR}/internal_recipient ${D}${sysconfdir}/postfix/internal_recipient
+ mv ${D}${sbindir}/sendmail ${D}${sbindir}/sendmail.${PN}
+}
+
+pkg_postinst () {
+ update-alternatives --install ${sbindir}/sendmail sendmail sendmail.${PN} 40
+ grep postfix /etc/group || addgroup postfix
+ grep postdrop /etc/group || addgroup postdrop
+ grep vmail /etc/group || addgroup vmail
+ grep postfix /etc/passwd || adduser --disabled-password --home=/var/spool/postfix --ingroup postfix -g "Postfix" postfix
+ grep vmail /etc/passwd || adduser --disabled-password --home=/var/spool/vmail --ingroup vmail -g "Postfix" vmail
+ chgrp postdrop /usr/sbin/postqueue
+ chgrp postdrop /usr/sbin/postdrop
+ chmod g+s /usr/sbin/postqueue
+ chmod g+s /usr/sbin/postdrop
+ /var/tmp/main_cf.sh >/etc/postfix/main.cf
+ rm -f /var/tmp/main_cf.sh
+ chmod 644 /etc/postfix/main.cf
+ [ -d /var/spool/postfix ] && rmdir /var/spool/postfix
+ /etc/init.d/populate-volatile.sh update
+ touch /etc/aliases
+ newaliases
+}
+
+pkg_postrm () {
+ update-alternatives --remove sendmail sendmail.${PN}
+}
+
+# Exclude .debug directories from the main package
+FILES_${PN} = "${sysconfdir} ${localstatedir} ${bindir}/* ${sbindir}/* \
+ ${libexecdir}/postfix/*"
+FILES_${PN}-dbg += "${libexecdir}/postfix/.debug"
diff --git a/recipes/postfix/postfix_2.0.20.bb b/recipes/postfix/postfix_2.0.20.bb
new file mode 100644
index 0000000000..8cafc344f2
--- /dev/null
+++ b/recipes/postfix/postfix_2.0.20.bb
@@ -0,0 +1,3 @@
+require postfix.inc
+
+PR = "r13"
diff --git a/recipes/postfix/postfix_2.2.12.bb b/recipes/postfix/postfix_2.2.12.bb
new file mode 100644
index 0000000000..3f1039a83d
--- /dev/null
+++ b/recipes/postfix/postfix_2.2.12.bb
@@ -0,0 +1 @@
+require postfix.inc