#!/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 # if [ -s "slack-required" ]; then echo Recomended and required packages for building postfix are: cat slack-required | sed -e 's/^/\t/' if [ "$INTERACT" != "no" ]; then echo If you dont have those installed, press Ctrl-C. Otherwise, hit ENTER. read crap # else # echo Sleeping 3 seconds... # sleep 3 fi fi CWD=`pwd` if [ -f ~/.slackbuildrc ]; then source ~/.slackbuildrc elif [ -f /etc/slackbuildrc ]; then source /etc/slackbuildrc fi # default settings PACKAGE=postfix ARCH=${ARCH:=i486} VERSION=${VERSION:=2.3.4} BUILD=${BUILD:=2rha} SRC_DIR=${SRC:=$CWD} TMP=${TMP:=/tmp} REPOS=${REPOS:=$TMP} # ------- error codes for createpkg -------------- ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 ERROR_PATCH=40 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" || exit $ERROR_WGET fi # if [ ! -f "$SRC_DIR/$VDA" ]; then # wget "$VDA_URL" -O "$SRC_DIR/$VDA" # || exit $ERROR_WGET # fi if [ ! -f "$SRC_DIR/$SRC.sig" ]; then wget "$URL.sig" -O "$SRC_DIR/$SRC.sig" || exit $ERROR_WGET fi fi #gpg --import << EOGPG #-----BEGIN PGP PUBLIC KEY BLOCK----- #Version: GnuPG v1.4.5 (GNU/Linux) # #mQENA0Ije1oAAAEIALlEqB1UICFF3dfwDij9LHtBhtiEfGnv0PL5rRmSJ4rA9pqs #oM3oc0nfgnB502XpeCkT1RW5ymQggEx7+8fXnWhNUAmNGPrbmWzymvrdr4XnPOoB #ODlnVYkc9Gt5BLRNSfuLbc1G3nH+FDzhpuJ5zqtb8RrYm5FOPU7eC9QnVoC2nXPW #fPfTWVXQoCOEuQQ3zZHEculWQYhRVgxI+CFZjWzWgwZq3wWi/nGGZcFYRtCfodH4 #UiP0lvj8tOEhD8vUGQKiQGwiw/BBbiCm5ZPcCkSOWxXbZTUrkfTzwse9Ka2blmgH #AhlySLtSD/tCX2ykzQEK9JJDw4++By9g8MErzZkABRG0JFdpZXRzZSBWZW5lbWEg #PHdpZXRzZUBwb3JjdXBpbmUub3JnPokBFQMFEEIje1oHL2DwwSvNmQEBA8oIALG7 #Un8SRtlQ+EXMSK/MyJLD9+T/tS1vq2Z6BwN6oZ0G21VvbMdhXvOEjPUFXhJPIFs8 #pNIYtUV/uQMiMZsATOlJObe3ZkXazdbpGcGAekO0G158CYy2mH50hqYLewTYCt3T #TNf6fSu+bVFrrQ8S/89QDceN0M+WFECgjlYHMTMqB2Ye2KZRWAQG1S8hLLFG42HV #QaWAVG4yR4xZEC0sYuMBZQTJlJXWb/CnhdlcdS2y5DRq/UYZ5oM/ZilKnIxnWzvf #zZM/5+5d7DA0YLjY2uIiSGWs9MfQv1MwvAPjTs/Aiz0j3y5lCa3lVObGskroUhN6 #Pf14rTC6p585H3mQBRs= #=uI0x #-----END PGP PUBLIC KEY BLOCK----- #-----BEGIN PGP PUBLIC KEY BLOCK----- #Version: GnuPG v1.4.5 (GNU/Linux) # #mQCNAirDhV8AAAED/i4LrhQ/mwOgam8ZfQpEcxYoE9kru5oRDGtoVeKae/4bUver #aGX7qVtskD6vwPwr2FF6JW2c+z2oY4JGPGUArORiigoT82/q6vqT0Wm1jIPsXQSB #ZCkBoyvBcmXEi+J7eDBbWLPDxeDimgrORbAIQ4uikRafs8KlpNyA8qbVMny5AAUR #tCR3aWV0c2UgdmVuZW1hIDx3aWV0c2VAcG9yY3VwaW5lLm9yZz6JAJUDBRA02Qb0 #3IDyptUyfLkBAaETA/0ZI0+GLRf5bQTflXgi79u9qcWaN/CSWRBsloOEEx12EO2s #lXNtkS970CxDESEr2Z75eqXtlDM4CPIzhzVoU7b6yrr0fzP576k6RX/JadEohf2V #VXhgmkpktRKMqdXZO+qj0QpekXCOm079hTU9kUSpd7+LeIhF5xI4skuoq83dm7Ql #d2lldHNlIHZlbmVtYSA8d2lldHNlQHd6di53aW4udHVlLm5sPokAlQMFEC99Gmfc #gPKm1TJ8uQEBJzsD+waYQmJKG0btGU0+GUTg+bRMSfCGwb9p9vbwnXQIPlQrsF8B #ozm8IyFGWxsfKT8dRljqmAEwKLhaFgYdFrnliuYfmVMw+nSpdpTDVE0N4d7hd8mT #N+WCvY0g6x9rv1uBPKK6lPgWoZHskbzNLwiDXZ5vPKdoSCCIi3aQkCQd+6qx #=FFWq #-----END PGP PUBLIC KEY BLOCK----- #EOGPG # #gpg --verify $SRC_DIR/$SRC.sig $SRC_DIR/$SRC || exit $ERROR_GPG rm -rf ${PKGDIR} mkdir -p ${PKGDIR} cd ${PKGDIR} # install scripts if [ -e ${CWD}/script_${NAME}.tgz ]; then tar zxvf ${CWD}/script_${NAME}.tgz || exit $ERROR_TAR 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 || exit $ERROR_TAR # Patch if [ -s "$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" || exit $ERROR_CONF make || exit $ERROR_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 || exit $ERROR_INSTALL 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 || exit $ERROR_MKPKG # Clean up the extra stuff: if [ "$CLEANUP" == "yes" ]; then rm -rf $TMP fi