aboutsummaryrefslogblamecommitdiff
path: root/mail/postfix26/scripts/configure.postfix
blob: 744a249a54ebf5e5127cd16bc4e636a580f1f8ad (plain) (tree)
1
2
3
4
5
6
7
8
9
         
                                                                                                                




                                                     
                                       
 

                                 






                          
                                                                         

                                          
                                                                                

                                                                                           
                                                                                       
                                                                                         
                                             
                                             
                                                                                     

                                                                                          
                                                                                          
                                                                                          
                                                                                          
                                                                                          
                                                                                                
                                                 
                                                 
                                                              
                                                                      
            



                                 
                                            




                                            
                                                       

                          
                                              







                                            
                          
 
                    
                   
 

                  
                       

                                                        
                                     
                          
                     



                                                                                                                      





                                                                                                       
                      



                                                                                                                     


                                                                                                        
                                  
                          
                          
                        
                                                                         
                          
                         
                                                                                                 


                                                                







                                                                                        
                                  
                          
                    

                                                                           
                                                                                            
                                                     
                          
                    
                                                            
                                                                                                                                               


                                                                           



                                                                                 
                                        

                          
                                                            
                                                                                                                                               


                                                                           



                                                                                 
                                         

                          
                                                            
                                                                                                                                               


                                                                           



                                                                                   



                                                            
                                                                                                                                               


                                                                           



                                                                                     
                                         
                          





                                                                                                                                               



                                                                                     

                                         
                      


                                                                                                         

                                                                                                                 


                                                                                                

                                  
                                                       
                                            
                          
                      



                                                                                                                      
                          
                         



                                                                                   


                                                                      
                          
                    



                                                                                                          
                          
                    

                                                          
                          
                    


                                                                                          

                          


                                                                                                    
                                   
                          
                  
                                                                  



                                                                   
             

    



                                                                                                                                  


                                                                                                         

                                                                                                                 


                                                                                                





                                  

                                                 


                                                                            
                                                                      
                        
                                                                                                                                                                   
#!/bin/sh
# $FreeBSD: /tmp/pcvs/ports/mail/postfix26/scripts/Attic/configure.postfix,v 1.68 2005-11-30 19:25:11 mnag Exp $

if [ -f ${WRKDIRPREFIX}${CURDIR}/Makefile.inc ]; then
	exit
fi

tempfile=`/usr/bin/mktemp -t checklist`

if [ "${POSTFIX_OPTIONS}" ]; then
	set ${POSTFIX_OPTIONS}
fi

for i; do
	eval status_$i=ON
done

if [ -z "${BATCH}" ]; then
	/usr/bin/dialog --title "Postfix configuration options" --clear \
		--checklist "\n\
Please select desired options:" -1 -1 16 \
NOPCRE		"DISABLE Perl Compatible Regular Expressions" "$status_NOPCRE" \
SASL		"Cyrus SASLv1 (Simple Authentication and Security Layer)" "$status_SASL" \
SASL2		"Cyrus SASLv2 (Simple Authentication and Security Layer)" "$status_SASL2" \
SASLKRB		"If your SASL requires Kerberos select this option" "$status_SASLKRB" \
SASLKRB5	"If your SASL requires Kerberos5 select this option" "$status_SASLKRB5" \
SPF		"SPF support" "$status_SPF" \
TLS		"SSL and TLS" "$status_TLS" \
DB3		"Berkeley DB3 (required if SASL also built with DB3)" "$status_DB3" \
DB40		"Berkeley DB4.0 (required if SASL also built with DB4.0)" "$status_DB40" \
DB41		"Berkeley DB4.1 (required if SASL also built with DB4.1)" "$status_DB41" \
DB42		"Berkeley DB4.2 (required if SASL also built with DB4.2)" "$status_DB42" \
DB43		"Berkeley DB4.3 (required if SASL also built with DB4.3)" "$status_DB43" \
MySQL		"MySQL map lookups (choose version with WITH_MYSQL_VER)" "$status_MySQL" \
PgSQL		"PostgreSQL map lookups (choose with DEFAULT_PGSQL_VER)" "$status_PgSQL" \
OpenLDAP	"OpenLDAP map lookups (choose ver. with WITH_OPENLDAP_VER)" "$status_OpenLDAP" \
CDB		"CDB map lookups" "$status_CDB" \
NIS		"NIS map lookups" "$status_NIS" \
VDA		"VDA (Virtual Delivery Agent)" "$status_VDA" \
Test		"SMTP/LMTP test server and generator" "$status_Test" \
2> $tempfile

	retval=$?

	if [ -s $tempfile ]; then
		set `sed 's/"//g' $tempfile`
	fi
	rm -f $tempfile

	case $retval in
		0)	if [ -z "$*" ]; then
				echo "Nothing selected"
			fi
			;;
		1)	echo "Cancel pressed."
			exit 1
			;;
	esac
fi

${MKDIR} ${WRKDIRPREFIX}${CURDIR}
exec > ${WRKDIRPREFIX}${CURDIR}/Makefile.inc

echo "PREFIX=	${PREFIX}"

SUB_TEST="@comment "
SUB_SPF="@comment "

while [ "$1" ]; do
	case $1 in
		NOPCRE)
			echo "WITHOUT_PCRE=	yes"
			echo "NOPCRE_SUFFIX=	+nopcre"
			SUB_NOPCRE=""
			;;
		SASL)
			echo "LIB_DEPENDS+=	sasl.8:\${PORTSDIR}/security/cyrus-sasl"
			echo "POSTFIX_CCARGS+=	-DUSE_SASL_AUTH -I\${LOCALBASE}/include -I\${LOCALBASE}/include/sasl1"
			echo "POSTFIX_AUXLIBS+=	-L\${LOCALBASE}/lib -lsasl -lpam -lcrypt"
			echo "SASL_SUFFIX=	+sasl"
			if [ -f ${LOCALBASE}/lib/libsasl.a ]; then
				if /usr/bin/nm ${LOCALBASE}/lib/libsasl.a | grep -wq "mysql_init"; then
					SASL_USE_MYSQL="YES"
				fi
			fi
			;;
		SASL2)
			echo "LIB_DEPENDS+=	sasl2.2:\${PORTSDIR}/security/cyrus-sasl2"
			echo "POSTFIX_CCARGS+=	-DUSE_SASL_AUTH -I\${LOCALBASE}/include -I\${LOCALBASE}/include/sasl"
			echo "POSTFIX_AUXLIBS+=	-L\${LOCALBASE}/lib -lsasl2 -lpam -lcrypt"
			echo "SASL_SUFFIX=	+sasl2"
			if [ -f ${LOCALBASE}/lib/libsasl2.a ]; then
				if /usr/bin/nm ${LOCALBASE}/lib/libsasl2.a | grep -wq "mysql_init"; then
					SASL_USE_MYSQL="YES"
				fi
			fi
			;;
		SASLKRB)
			echo "POSTFIX_AUXLIBS+= -lkrb -lcrypto -lcom_err"
			;;
		SASLKRB5)
			echo "POSTFIX_AUXLIBS+= -lkrb5 -lcrypto -lcrypt -lcom_err -lasn1 -lroken"
			;;
		SPF)
			# see http://www.ipnet6.org/postfix/spf/
			echo "LIB_DEPENDS+=	spf2.1:\${PORTSDIR}/mail/libspf2-10"
			echo "PATCH_SITES+=	http://www.ipnet6.org/postfix/download/"
			echo "PATCHFILES+=	postfix-libspf2-2.2.0-5.patch"
			echo "PATCH_DIST_STRIP=	-p1"
			echo "POSTFIX_CCARGS+=	-I\${LOCALBASE}/include"
			echo "POSTFIX_AUXLIBS+=	-L\${LOCALBASE}/lib -lspf2"
			echo "SPF_SUFFIX=	+spf"
			echo ""
			SUB_SPF=""
			;;
		TLS)
			echo "USE_OPENSSL=	yes"
			echo "POSTFIX_CCARGS+=	-DUSE_TLS -I\${OPENSSLINC}"
			echo "POSTFIX_AUXLIBS+=	-L\${OPENSSLLIB} \${LDFLAGS} -lssl -lcrypto"
			echo "TLS_SUFFIX=	+tls"
			;;
		DB3)
			if [ "X$BDB_SELECTED" != "X" ]; then
				/usr/bin/dialog --msgbox "Select exactly one of the DB3, DB40, DB41, DB42 and DB43 options." 5 60 > /dev/stderr
				rm -f ${WRKDIRPREFIX}${CURDIR}/Makefile.inc
				exit 1
			fi
			echo "LIB_DEPENDS+=	db3.3:\${PORTSDIR}/databases/db3"
			echo "POSTFIX_CCARGS+=	-I\${LOCALBASE}/include/db3"
			echo "POSTFIX_AUXLIBS+=	-L\${LOCALBASE}/lib -ldb3"
			echo "DB_SUFFIX=	+db3"
			BDB_SELECTED="3"
			;;
		DB40)
			if [ "X$BDB_SELECTED" != "X" ]; then
				/usr/bin/dialog --msgbox "Select exactly one of the DB3, DB40, DB41, DB42 and DB43 options." 5 60 > /dev/stderr
				rm -f ${WRKDIRPREFIX}${CURDIR}/Makefile.inc
				exit 1
			fi
			echo "LIB_DEPENDS+=	db4.0:\${PORTSDIR}/databases/db4"
			echo "POSTFIX_CCARGS+=	-I\${LOCALBASE}/include/db4"
			echo "POSTFIX_AUXLIBS+=	-L\${LOCALBASE}/lib -ldb4"
			echo "DB_SUFFIX=	+db40"
			BDB_SELECTED="40"
			;;
		DB41)
			if [ "X$BDB_SELECTED" != "X" ]; then
				/usr/bin/dialog --msgbox "Select exactly one of the DB3, DB40, DB41, DB42 and DB43 options." 5 60 > /dev/stderr
				rm -f ${WRKDIRPREFIX}${CURDIR}/Makefile.inc
				exit 1
			fi
			echo "LIB_DEPENDS+=	db41.1:\${PORTSDIR}/databases/db41"
			echo "POSTFIX_CCARGS+=	-I\${LOCALBASE}/include/db41"
			echo "POSTFIX_AUXLIBS+=	-L\${LOCALBASE}/lib -ldb41"
			echo "DB_SUFFIX=	+db41"
			BDB_SELECTED="41"
			;;
		DB42)
			if [ "X$BDB_SELECTED" != "X" ]; then
				/usr/bin/dialog --msgbox "Select exactly one of the DB3, DB40, DB41, DB42 and DB43 options." 5 60 > /dev/stderr
				rm -f ${WRKDIRPREFIX}${CURDIR}/Makefile.inc
				exit 1
			fi
			echo "LIB_DEPENDS+=	db-4.2.2:\${PORTSDIR}/databases/db42"
			echo "POSTFIX_CCARGS+=	-I\${LOCALBASE}/include/db42"
			echo "POSTFIX_AUXLIBS+=	-L\${LOCALBASE}/lib/db42/ -ldb"
			echo "DB_SUFFIX=	+db42"
			BDB_SELECTED="42"
			;;
		DB43)
			if [ "X$BDB_SELECTED" != "X" ]; then
				/usr/bin/dialog --msgbox "Select exactly one of the DB3, DB40, DB41, DB42 and DB43 options." 5 60 > /dev/stderr
				rm -f ${WRKDIRPREFIX}${CURDIR}/Makefile.inc
				exit 1
			fi
			echo "LIB_DEPENDS+=	db-4.3.0:\${PORTSDIR}/databases/db43"
			echo "POSTFIX_CCARGS+=	-I\${LOCALBASE}/include/db43"
			echo "POSTFIX_AUXLIBS+=	-L\${LOCALBASE}/lib/db43/ -ldb"
			echo "DB_SUFFIX=	+db43"
			BDB_SELECTED="43"
			;;
		MySQL)
			echo "USE_MYSQL=YES"
			echo "POSTFIX_CCARGS+=	-DHAS_MYSQL -I\${LOCALBASE}/include/mysql"
			echo "POSTFIX_AUXLIBS+= \${LOCALBASE}/lib/mysql/libmysqlclient.a -lm -lz -lcrypt"
			if [ -f ${LOCALBASE}/lib/mysql/libmysqlclient.a ]; then
				if /usr/bin/nm ${LOCALBASE}/lib/mysql/libmysqlclient.a | grep -wq "SSL_new"; then
					echo "USE_OPENSSL=	yes"
					echo "POSTFIX_CCARGS+=	-I\${OPENSSLLIB}"
					echo "POSTFIX_AUXLIBS+=	-L\${OPENSSLLIB} -lssl -lcrypto"
				fi
			fi
			echo "MYSQL_SUFFIX=	+mysql"
			MYSQL_SELECTED="YES"
			;;
		PgSQL)
			echo "USE_PGSQL=YES"
			echo "POSTFIX_CCARGS+=	-DHAS_PGSQL -I\${LOCALBASE}/include	-I\${LOCALBASE}/pgsql/include"
			echo "POSTFIX_AUXLIBS+= -L\${LOCALBASE}/lib -L\${LOCALBASE}/pgsql/lib -lpq -lcrypt"
			echo "PGSQL_SUFFIX=	+pgsql"
			;;
		OpenLDAP)
			echo "USE_OPENLDAP=YES"
			echo "POSTFIX_CCARGS+=	-DHAS_LDAP -I\${LOCALBASE}/include"
 			echo "POSTFIX_AUXLIBS+=	-L\${LOCALBASE}/lib -lldap -llber"
			echo "OPENLDAP_SUFFIX=	+openldap"
			echo ".if defined(WITH_OPENLDAP_VER)"
			echo "WANT_OPENLDAP_VER=\${WITH_OPENLDAP_VER}"
			echo ".endif"
			;;
		CDB)
			echo "BUILD_DEPENDS+=	\${LOCALBASE}/lib/libcdb.a:\${PORTSDIR}/databases/tinycdb"
			echo "POSTFIX_CCARGS+=	-DHAS_CDB -I\${LOCALBASE}/include"
 			echo "POSTFIX_AUXLIBS+=	-L\${LOCALBASE}/lib -lcdb"
			echo "CDB_SUFFIX=	+cdb"
			;;
		NIS)
			echo "POSTFIX_CCARGS+=	-DHAS_NIS"
			echo "NIS_SUFFIX=	+nis"
			;;
		VDA)
			echo "PATCH_SITES+=	http://web.onda.com.br/nadal/postfix/VDA/"
			echo "PATCHFILES+=	postfix-2.2.5-vda.patch.gz"
			echo "PATCH_DIST_STRIP=	-p1"
			;;
		Test)
			echo "BINTEST=		qmqp-sink qmqp-source smtp-sink smtp-source"
			echo "MANTEST=		qmqp-sink.1 qmqp-source.1 smtp-sink.1 smtp-source.1"
			echo "MAN1+=		\${MANTEST}"
			SUB_TEST=""
			;;
		*)
			echo "Unknown option(s): $*" > /dev/stderr
			rm -f ${WRKDIRPREFIX}${CURDIR}/Makefile.inc
			exit 1
			;;
	esac
	shift
done

if [ -z "${BATCH}" ]; then
	if [ "X$SASL_USE_MYSQL" != "X" ] && [ "$MYSQL_SELECTED" != "YES" ]; then
		/usr/bin/dialog --yesno "Your lib SASL it is compiled with MySQL. It desires to use the MySQL?" 5 80 > /dev/stderr
		if [ $? = 0 ]; then
			echo "USE_MYSQL=YES"
			echo "POSTFIX_CCARGS+=	-DHAS_MYSQL -I\${LOCALBASE}/include/mysql"
			echo "POSTFIX_AUXLIBS+= \${LOCALBASE}/lib/mysql/libmysqlclient.a -lm -lz -lcrypt"
			if [ -f ${LOCALBASE}/lib/mysql/libmysqlclient.a ]; then
				if /usr/bin/nm ${LOCALBASE}/lib/mysql/libmysqlclient.a | grep -wq "SSL_new"; then
					echo "USE_OPENSSL=	yes"
					echo "POSTFIX_CCARGS+=	-I\${OPENSSLLIB}"
					echo "POSTFIX_AUXLIBS+=	-L\${OPENSSLLIB} -lssl -lcrypto"
				fi
			fi
		fi
	fi
fi

echo "PLIST_SUB+=	SUB_TEST=\"${SUB_TEST}\""
echo "PLIST_SUB+=	SUB_SPF=\"${SUB_SPF}\""

# for some reason, if we alter the pkg name this way, the first build (where
# we ask the configure questions) doesn't pick up the extensions, but
# any subsequent build will. so "make; make install" will build twice.
# don't do this for now.
#echo "PKGNAMESUFFIX=	\${NOPCRE_SUFFIX}\${SASL_SUFFIX}\${DB_SUFFIX}\${MYSQL_SUFFIX}\${PGSQL_SUFFIX}\${OPENLDAP_SUFFIX}\${TLS_SUFFIX}\${NIS_SUFFIX}\${SPF_SUFFIX}"