#!/bin/bash # # original script from http://www.slacky.it/download/network/tool/postfix/2.2.10/src/postfix.SlackBuild # changes by rhatto at riseup.net # # TODO: atualizar para o postfix 2.3.0 # slack-required # arrumar pasta de construcao # cat << EOECHO To build postfix with full capabilities (pcre, mysql, sasl, tls, ldap, vda and postfix-anon support, first build/install the following packages: db3 and/or db4 libgpg-error libgcrypt courier-authlib courier-imap gnutls cyrus-sasl openldap-client Type ENTER you have those built and installed. EOECHO read CWD=`pwd` if [ -f "/etc/slackbuildrc" ]; then source /etc/slackbuildrc fi if [ -f "~/.slackbuildrc" ]; then source ~/.slackbuildrc fi # default settings PACKAGE=postfix ARCH=${ARCH:=x86_64} VERSION=${VERSION:=2.2.10} BUILD=${BUILD:=2rha} SRC_DIR=${SRC:=$CWD} TMP=${TMP:=/tmp} REPOS=${REPOS:=$TMP} if [ "$ARCH" == "x86_64" ]; then LIBDIR=/usr/lib64 else LIBDIR=/usr/lib fi # general definitions PACKAGE_EXT="gz" NAME=$PACKAGE DOCDIR=/usr/doc/${NAME}-${VERSION} READMEDIR=${DOCDIR}/README_FILES HTMLDIR=${DOCDIR}/HTML MANDIR=/usr/man TMP="$TMP/$PACKAGE" PKGDIR=${TMP}/package-${NAME} SOURCEDIR=${TMP}/${NAME}-${VERSION} RTOOL="wget" SRC="$PACKAGE-$VERSION.tar.$PACKAGE_EXT" # url definitions VDA="$PACKAGE-$VERSION-vda.patch.gz" VDA_URL="http://web.onda.com.br/nadal/postfix/VDA/$VDA" ANON="postfix-anon-$VERSION.diff" URL="ftp://ftp.pucpr.br/$PACKAGE/official/$SRC" SRC_DIR="$SRC_DIR/$PACKAGE" mkdir -p $SRC_DIR # download sources if [ "$RTOOL" == "wget" ]; then if [ ! -f "$SRC_DIR/$SRC" ]; then wget "$URL" -O "$SRC_DIR/$SRC" fi if [ ! -f "$SRC_DIR/$VDA" ]; then wget "$VDA_URL" -O "$SRC_DIR/$VDA" fi if [ ! -f "$SRC_DIR/$SRC.sig" ]; then wget "$URL.sig" -O "$SRC_DIR/$SRC.sig" fi fi rm -rf ${PKGDIR} mkdir -p ${PKGDIR} cd ${PKGDIR} # install scripts if [ -e ${CWD}/script_${NAME}.tgz ]; then tar zxvf ${CWD}/script_${NAME}.tgz else mkdir -v install fi sleep 1 if [ -e ${CWD}/slack-desc ];then cat ${CWD}/slack-desc | grep ^${NAME} > ${PKGDIR}/install/slack-desc fi # Extract cd ${TMP} rm -rf ${NAME}-${VERSION} ${SOURCEDIR} tar xzvf $SRC_DIR/${NAME}-$VERSION.tar.gz # Patch if [ -f "$SRC_DIR/$VDA" ]; then gzip -dc $SRC_DIR/$VDA | patch -p0 fi if [ -f "$CWD/$ANON" ]; then patch -p0 < $CWD/$ANON fi cd ${SOURCEDIR} sleep 1 # Build # make -f Makefile.init makefiles \ # 'CCARGS=-DUSE_TLS -DHAS_SSL -I/usr/include/openssl -DHAS_MYSQL -I/usr/include/mysql' \ # 'AUXLIBS=-L/usr/lib -lssl -lcrypto -L/usr/lib/mysql -lmysqlclient -lz -lm' # db3 explicit # make -f Makefile.init makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/include/sasl/ -DHAS_MYSQL -I/usr/include/mysql/ -I/usr/include -DHAS_LDAP -DUSE_TLS -I/usr/include/gnutls/ -DHAS_PCRE -I/usr/include -DHAS_DB -I/usr/include/db3" AUXLIBS="-L/usr/lib -lsasl2 -L/usr/lib/mysql/ -lmysqlclient -lz -lm -L/usr/lib -lssl -lcrypto -L/usr/lib -lpcre -L/usr/lib -lldap -L/usr/lib -llber -L/usr/include/db3 -ldb3" make -f Makefile.init makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/include/sasl/ -DHAS_MYSQL -I/usr/include/mysql/ -I/usr/include -DHAS_LDAP -DUSE_TLS -I/usr/include/gnutls/ -DHAS_PCRE -I/usr/include" AUXLIBS="-L/usr/lib -lsasl2 -L/usr/lib/mysql/ -lmysqlclient -lz -lm -L/usr/lib -lssl -lcrypto -L/usr/lib -lpcre -L/usr/lib -lldap -L/usr/lib -llber" make sleep 1 sh postfix-install \ install_root=${PKGDIR} \ tempdir=${SOURCE} \ manpage_directory=${MANDIR} \ readme_directory=${READMEDIR} \ html_directory=${HTMLDIR} \ config_directory=/etc/postfix \ sample_directory=/etc/postfix/sample \ daemon_directory=/usr/libexec/postfix \ command_directory=/usr/sbin/ \ queue_directory=/var/spool/postfix \ sendmail_path=/usr/sbin/sendmail \ newaliases_path=/usr/sbin/newaliases \ mailq_path=/usr/sbin/mailq \ mail_owner=postfix \ setgid_group=postdrop \ -non-interactive cd ${PKGDIR}/etc/postfix for a in access aliases canonical header_checks main.cf makedefs.out master.cf postfix-files relocated transport virtual; do mv ${a} ${a}.new done sleep 2 mkdir -p ${PKGDIR}/${DOCDIR} for file in AUTHORS COPYING HACKING NEWS README TODO INSTALL AAAREADME COMPATIBILITY COPYRIGHT HISTORY LICENSE RELEASE_NOTES* TLS_* US_PATENT_6321267; do if [ -e "${SOURCEDIR}/${file}" ]; then cp -v ${SOURCEDIR}/${file} ${PKGDIR}/${DOCDIR}/ fi done ( cd $PKGDIR find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) find ${PKGDIR}/${DOCDIR} ${PKGDIR}/${MANDIR} -type f | xargs gzip -v find ${PKGDIR}/bin ${PKGDIR}/sbin ${PKGDIR}/usr/bin ${PKGDIR}/usr/sbin -type f | xargs chown -v root.bin # Build the package: cd $PKGDIR #requiredbuilder -v -y -s $CWD $PKGDIR /sbin/makepkg -l n -c n --prepend $REPOS/${NAME}-${VERSION}-${ARCH}-${BUILD}.tgz # Clean up the extra stuff: if [ "$CLEANUP" == "yes" ]; then rm -rf $TMP fi