postfix stable port information

Info2: <<
Package: postfix%type_pkg[-mysql]%type_pkg[-ldap]
Version: 2.9.0
Revision: 1
Type: -mysql (boolean), -ldap (boolean)
Distribution: 10.5, 10.6

Homepage: http://www.postfix.org/
Description: Mail transfer agent that's fast and secure
DescDetail: <<
Postfix is Wietse Venema's mailer that started life as an alternative to
the widely-used Sendmail program. Postfix attempts to be fast, easy to
administer, and secure, while at the same time being sendmail compatible
enough to not upset existing users. Thus, the outside has a sendmail-ish
flavor, but the inside is completely different.

This package provides TLS encryption and SASL authentication.
<<
DescUsage: <<
You need to do a few things to set Postfix up before you can use it:

1) Edit %p/etc/postfix/main.cf. In particular, edit myorigin,
mydestination and mynetworks in that file. The file is well commented.
More configuration options are documented in postconf(5). Information
on setting up TLS encryption can be found in
%p/share/doc/postfix/tls.

2) Edit the aliases in %p/etc/postfix/aliases so that mail to root,
and your user, go to your real email address. Run 'sudo newaliases'
to update the alias database file.

3) Run 'sudo mta-switch fink' to move the old sendmail from Apple's Postfix
out of the way and place symlinks to Fink's Postfix in its place. You may
need to do this after upgrades of Mac OS X from Apple. If you are running
the system's Postfix, you must stop it before starting the Fink installed
one or things could get very confused: 'sudo /usr/sbin/postfix stop'.

4) Run 'sudo daemonic enable postfix'. This will create a Postfix startup
item, but it won't actually start Postfix. To do that, you can run
'sudo postfix start'.

If you're upgrading from postfix 2.1.x, please read RELEASE_NOTES about
configuration changes and adjust main.cf accordingly. The installation
process will try to upgrade conf files automatically, but they should
still be checked by hand.

Removing postfix via Fink will automatically disable it and re-enable
Apple's postfix.
<<
DescPackaging: <<
Adds startup item via daemonic, and an mta-switch shell script.
NetInfo support disabled since Apple has depreciated it and no longer supplies
the necessary header files.

Now uses system's OpenSSL (via system-openssl-dev) and removed from crypto
tree. Yay!

Added -ldap variant. (Previously added -mysql variant).
Refactored CompileScript to allow easy adding of new variants.
Note to self: must add new variants to the upgrade SplitOffs and Replaces. :/

Original maintainer: Daniel Parks
<<
License: OSI-Approved
Maintainer: Daniel Johnson

Depends: <<
cyrus-sasl2-shlibs,
daemonic,
db53-aes-shlibs,
(%type_raw[-mysql] = -mysql) mysql-unified-shlibs,
(%type_raw[-ldap] = -ldap) openldap24-shlibs,
libpcre1-shlibs
<<
BuildDepends: <<
cyrus-sasl2-dev,
db53-aes,
fink (>= 0.24.12),
(%type_raw[-mysql] = -mysql) mysql-unified-dev,
(%type_raw[-ldap] = -ldap) openldap24-dev,
libpcre1,
system-openssl-dev
<<
Conflicts: <<
postfix-release,
postfix,
postfix-mysql,
postfix-ldap,
postfix-mysql-ldap
<<
Replaces: <<
postfix-release,
postfix,
postfix-mysql,
postfix-ldap,
postfix-mysql-ldap,
postfix-tls (<< %v-%r),
postfix-mysql-tls (<< %v-%r),
postfix-unified (<< %v-%r),
postfix-mysql-unified (<< %v-%r),
postfix-ldap-tls (<< %v-%r),
postfix-mysql-ldap-tls (<< %v-%r),
postfix-ldap-unified (<< %v-%r),
postfix-mysql-ldap-unified (<< %v-%r)
<<
Recommends: cyrus-sasl2

Source: ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-%v.tar.gz
Source-MD5: 43a5ea2d6fb39185a60b4635e016967e

PatchFile: %{ni}.patch
PatchFile-MD5: 1061d35968cd907c2a975347a848137c
PatchScript: <<
#!/bin/bash -ev
sed 's|@FINKPREFIX@|%p|g ' <%{PatchFile} | patch -p1
perl -pi -e 's,/(etc|var/spool)/postfix,%p/\1/postfix,g; s,/etc/aliases,%p/etc/postfix/aliases,g' man/man1/* man/man5/* man/man8/* conf/* html/*.html README_FILES/*
let version=`uname -r | cut -f 1 -d .`
if [ $version -ge 10 ]; then
perl -pi -e 's/^#define RESOLVE_H_NEEDS_NAMESER8_COMPAT_H$//' src/util/sys_defs.h
fi
<<

NoSetCPPFLAGS: true
NoSetLDFLAGS: true
CompileScript: <<
#!/bin/sh -ev
#General build settings
export build_args='-DDEF_COMMAND_DIR=\"%p/sbin\" \
-DDEF_CONFIG_DIR=\"%p/etc/postfix\" \
-DDEF_DAEMON_DIR=\"%p/lib/postfix\" \
-DDEF_MAILQ_PATH=\"%p/bin/mailq\" \
-DDEF_MANPAGE_DIR=\"%p/share/man\" \
-DDEF_NEWALIAS_PATH=\"%p/bin/newaliases\" \
-DDEF_README_DIR=\"%p/share/doc/%n/README_FILES\" \
-DDEF_HTML_DIR=\"%p/share/doc/%n/html\" \
-DDEF_QUEUE_DIR=\"%p/var/spool/postfix\" \
-DDEF_SENDMAIL_PATH=\"%p/sbin/sendmail\" \
-DUSE_TLS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL \
-I. -I../../include'
#General libraries
export lib_args="-L%p/lib/system-openssl/lib -L%p/lib -lssl -lcrypto -ldb -lsasl2 -lresolv"

#MySQL build settings
if [ "%type_raw[-mysql]" == "-mysql" ]; then
export build_args="$build_args -DHAS_MYSQL -I%p/include/mysql"
export lib_args="$lib_args -lmysqlclient"
fi

#More general build settings
export build_args="$build_args -I%p/lib/system-openssl/include -I%p/include/db5 -I%p/include/sasl -I%p/include"

#LDAP build settings
if [ "%type_raw[-ldap]" == "-ldap" ]; then
export build_args="$build_args -DHAS_LDAP"
export lib_args="$lib_args -lldap -llber"
fi

make makefiles CCARGS="$build_args" AUXLIBS="$lib_args"
make
<<

InstallScript: <<
make non-interactive-package install_root="%d" mail_owner="_postfix" setgid_group="_postdrop" data_directory="%p/var/lib/postfix"
install -m0755 mta-switch %i/sbin
<<
DocFiles: AAAREADME COMPATIBILITY COPYRIGHT HISTORY IPv6-ChangeLog LICENSE RELEASE_NOTES* TLS_* US_PATENT_6321267
ConfFiles: <<
%p/etc/postfix/main.cf
%p/etc/postfix/master.cf
%p/etc/postfix/access
%p/etc/postfix/aliases
%p/etc/postfix/canonical
%p/etc/postfix/generic
%p/etc/postfix/header_checks
%p/etc/postfix/relocated
%p/etc/postfix/transport
%p/etc/postfix/virtual
<<
DaemonicName: postfix
DaemonicFile: <<

Postfix Mail Transfer Agent
Postfix


%p/lib/postfix/master
%p/etc/postfix/main.cf
%p/var/spool/postfix/pid/master.pid


<<

PreInstScript: <<
echo 'Stopping postfix in case you are upgrading from an old version.'
{ [ -x %p/sbin/postfix ] && %p/sbin/postfix stop ; } || true
<<
PostInstScript: <<
%p/sbin/postconf -e "html_directory=%p/share/doc/%n/html"
%p/sbin/postconf -e "readme_directory=%p/share/doc/%n/README_FILES"
%p/sbin/postconf -e "data_directory=%p/var/lib/postfix"
%p/sbin/postfix set-permissions upgrade-configuration
<<
PreRmScript: <<
if [ $1 != "upgrade" ]; then
daemonic remove postfix
echo "Stopping postfix..."
%p/sbin/postfix stop >& /dev/null || true
yes 'n' | mta-switch apple
fi
<<
SplitOff: <<
Package: postfix%type_pkg[-mysql]%type_pkg[-ldap]-tls
Description: OBSOLETE use package 'postfix%type_pkg[-mysql]%type_pkg[-ldap]' instead
Depends: %N (= %v-%r), fink-obsolete-packages
DocFiles: LICENSE
<<
SplitOff2: <<
Package: postfix%type_pkg[-mysql]%type_pkg[-ldap]-unified
Description: OBSOLETE use package 'postfix%type_pkg[-mysql]%type_pkg[-ldap]' instead
Depends: %N (= %v-%r), fink-obsolete-packages
DocFiles: LICENSE
<<
<<

postfix stable port .patch

diff -Nur postfix-2.9.0.orig/conf/main.cf postfix-2.9.0/conf/main.cf
--- postfix-2.9.0.orig/conf/main.cf 2011-11-17 13:23:48.000000000 -0500
+++ postfix-2.9.0/conf/main.cf 2012-02-05 12:59:59.000000000 -0500
@@ -655,3 +655,13 @@
#
readme_directory =
inet_protocols = ipv4
+
+# THE FOLLOWING DEFAULTS ARE SET BY APPLE
+#
+# bind to localhost only
+#
+inet_interfaces = localhost
+
+# turn off relaying for local subnet
+#
+mynetworks_style = host
diff -Nur postfix-2.9.0.orig/conf/post-install postfix-2.9.0/conf/post-install
--- postfix-2.9.0.orig/conf/post-install 2012-01-18 13:44:17.000000000 -0500
+++ postfix-2.9.0/conf/post-install 2012-02-05 12:57:42.000000000 -0500
@@ -188,7 +188,7 @@

umask 022

-PATH=/bin:/usr/bin:/usr/sbin:/usr/etc:/sbin:/etc:/usr/contrib/bin:/usr/gnu/bin:/usr/ucb:/usr/bsd
+PATH=@FINKPREFIX@/bin:@FINKPREFIX@/sbin:/bin:/usr/bin:/usr/sbin:/usr/etc:/sbin:/etc:/usr/contrib/bin:/usr/gnu/bin:/usr/ucb:/usr/bsd
SHELL=/bin/sh
IFS="
"
diff -Nur postfix-2.9.0.orig/makedefs postfix-2.9.0/makedefs
--- postfix-2.9.0.orig/makedefs 2012-01-17 20:19:48.000000000 -0500
+++ postfix-2.9.0/makedefs 2012-02-05 12:57:42.000000000 -0500
@@ -456,7 +456,7 @@
case $RELEASE in
1.[0-3]) AWK=gawk;;
*) AWK=awk
- SYSLIBS=-flat_namespace;;
+ #SYSLIBS=-flat_namespace;;
esac
# Darwin 7 adds IPv6 support, BIND_8_COMPAT, NO_NETINFO
case $RELEASE in
diff -Nur postfix-2.9.0.orig/mta-switch postfix-2.9.0/mta-switch
--- postfix-2.9.0.orig/mta-switch 1969-12-31 19:00:00.000000000 -0500
+++ postfix-2.9.0/mta-switch 2012-02-05 12:57:42.000000000 -0500
@@ -0,0 +1,140 @@
+#!/bin/sh
+
+# Moves /usr/sbin/sendmail out of the way for Fink Postfix install
+
+PREFIX="@FINKPREFIX@"
+
+function sendmailPointsToPostfix () {
+ if [ -L /usr/sbin/sendmail -a "`/bin/ls -l /usr/sbin/sendmail | sed -e 's|.* -> \(.*\)$|\1|'`x" == "${PREFIX}/sbin/sendmailx" ] ; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+case "$1" in
+ install|setup|enable|activate|start|postfix|fink)
+ /bin/echo 'Checking if we need to move /usr/sbin/sendmail out of the way... \c'
+
+ if sendmailPointsToPostfix ; then
+ echo 'no.'
+ echo 'Fink Postfix is already in place.'
+ else
+ echo 'yes.'
+
+ if [ -f /usr/sbin/sendmail.old ] ; then
+ /bin/echo '/usr/sbin/sendmail.old already exists. Would you like to overwrite it [yN]? \c'
+
+ read ANS
+ case "$ANS" in
+ y*|Y*) rm -f /usr/sbin/sendmail.old || exit 1 ;;
+ *) echo '/usr/sbin/sendmail.old in the way. Failed.' ; exit 1 ;;
+ esac
+ fi
+
+ echo
+ echo 'Backing up the old sendmail to /usr/sbin/sendmail.old.'
+ mv /usr/sbin/sendmail /usr/sbin/sendmail.old || exit 1
+ echo "Putting a link to Fink Postfix's sendmail in its place."
+ ln -s "${PREFIX}/sbin/sendmail" /usr/sbin/sendmail || exit 1
+ echo 'Succeeded.'
+ echo
+
+ if [ "x$2" == "x-n" ] ; then
+ echo "Won't try to disable Apple's postfix."
+ exit;
+ fi
+
+ if [ -x /bin/launchctl ] ; then # For 10.4 and later
+ echo 'Disabling postfix LaunchDaemon.'
+ /bin/launchctl unload -w /System/Library/LaunchDaemons/org.postfix.master.plist
+ echo 'Succeeded.'
+ else # For 10.3 and earlier
+ echo 'Now we will take a crack at /etc/hostconfig.'
+ if grep '^[[:space:]]*MAILSERVER=-\(YES\|AUTOMATIC\)-' /etc/hostconfig > /dev/null ; then
+ echo "Backing up /etc/hostconfig to /etc/hostconfig.old."
+ echo 'Turning off the mail server in /etc/hosconfig.'
+ perl -pi.old -e's,MAILSERVER=-(YES|AUTOMATIC)-,MAILSERVER=-NO-,' /etc/hostconfig || exit 1
+ echo 'Succeeded.'
+ else
+ echo '/etc/hostconfig already has the mail server disabled.'
+ fi
+ fi
+ fi
+ ;;
+
+ stop|remove|uninstall|delete|rm|disable|sendmail|apple)
+ /bin/echo 'Checking if /usr/sbin/sendmail points to Fink Postfix... \c'
+
+ if sendmailPointsToPostfix ; then
+ echo 'yes.'
+
+ if [ ! -f /usr/sbin/sendmail.old ] ; then
+ echo '/usr/sbin/sendmail.old does not exist; cannot restore sendmail.'
+ exit 1;
+ fi
+
+ echo
+ echo 'Replacing /usr/sbin/sendmail with sendmail.old'
+ mv /usr/sbin/sendmail.old /usr/sbin/sendmail || exit 1
+ echo 'Succeeded.'
+ echo
+
+ if [ "x$2" == "x-n" ] ; then
+ echo "Won't try to disable Apple's postfix."
+ exit;
+ fi
+
+ if [ -x /bin/launchctl ] ; then # For 10.4 and later
+ echo 'Enabling postfix LaunchDaemon.'
+ /bin/launchctl load -w /System/Library/LaunchDaemons/org.postfix.master.plist
+ echo 'Succeeded.'
+ else # For 10.3 and earlier
+ echo 'Now we will take a crack at /etc/hostconfig.'
+ if grep '^[[:space:]]*MAILSERVER=-\(YES\|AUTOMATIC\)-' /etc/hostconfig > /dev/null ; then
+ echo 'Mail server is already enabled in /etc/hostconfig.'
+ else
+ echo "Backing up /etc/hostconfig to /etc/hostconfig.old."
+ cp -p /etc/hostconfig /etc/hostconfig.old || exit 1
+
+ if ! grep '^[[:space:]]*MAILSERVER=' /etc/hostconfig > /dev/null ; then
+ echo '/etc/hostconfig does not include a MAILSERVER= line.'
+ /bin/echo 'Would you like to add one[Yn]? \c'
+
+ ANS='?';
+ while [ $ANS == '?' ] ; do
+ read ANS
+ case "$ANS" in
+ y*|Y*)
+ echo 'MAILSERVER=-YES-' >> /etc/hostconfig || exit 1
+ ;;
+
+ n*|N*)
+ echo 'Leaving /etc/hostconfig as it is, removing backup.'
+ rm /etc/hostconfig.old || exit 1
+ ;;
+
+ *)
+ ANS='?'
+ ;;
+ esac
+ done
+ else
+ echo 'Turning on the mail server in /etc/hosconfig.'
+ perl -pi.old -e's,MAILSERVER=-NO-,MAILSERVER=-YES-,' /etc/hostconfig || exit 1
+ echo 'Succeeded.'
+ fi
+ fi
+ fi
+ else
+ echo 'no.'
+ echo 'Not making any changes.'
+ fi
+ ;;
+
+ *) echo "mta-switch -- Switches between Fink's and Apple's Postfix."
+ echo 'usage: mta-switch {fink|apple} [-n]'
+ echo " -n don't try to disable Apple's postfix"
+ exit 1
+ ;;
+esac
diff -Nur postfix-2.9.0.orig/src/util/sys_defs.h postfix-2.9.0/src/util/sys_defs.h
--- postfix-2.9.0.orig/src/util/sys_defs.h 2012-01-17 11:29:55.000000000 -0500
+++ postfix-2.9.0/src/util/sys_defs.h 2012-02-05 12:57:42.000000000 -0500
@@ -216,9 +216,9 @@
#define HAS_DB
#define HAS_SA_LEN
#define DEF_DB_TYPE "hash"
-#define ALIAS_DB_MAP "hash:/etc/aliases"
+#define ALIAS_DB_MAP "hash:@FINKPREFIX@/etc/postfix/aliases"
#define GETTIMEOFDAY(t) gettimeofday(t,(struct timezone *) 0)
-#define ROOT_PATH "/bin:/usr/bin:/sbin:/usr/sbin"
+#define ROOT_PATH "@FINKPREFIX@/bin:@FINKPREFIX@/sbin:/bin:/usr/bin:/sbin:/usr/sbin"
#define USE_STATFS
#define STATFS_IN_SYS_MOUNT_H
#define HAS_POSIX_REGEXP

postfix _unstable_ port .patch