#!/bin/bash # # slackbuild script for mod_fastcgi # if [ -s "slack-required" ]; then echo Recomended and required packages for building postgrey 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="postgrey" VERSION=${VERSION:=1.27} ARCH="noarch" BUILD=${BUILD:=1rha} TMP=${TMP:=/tmp} SRC_DIR=${SRC:=$CWD} 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 RTOOL="wget" PACKAGE_EXT="gz" SRC="$PACKAGE-$VERSION.tar.$PACKAGE_EXT" URL="http://isg.ee.ethz.ch/tools/postgrey/pub/$SRC" SRC_DIR="$SRC_DIR/$PACKAGE" mkdir -p $SRC_DIR if [ "$RTOOL" == "wget" ] && [ ! -f "$SRC_DIR/$SRC" ]; then wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET fi TMP="$TMP/$PACKAGE" rm -rf $TMP mkdir -p $TMP cd $TMP tar xvf $SRC_DIR/$SRC || exit $ERROR_TAR cd $PACKAGE-$VERSION CWD="`pwd`" mkdir -p $TMP/package-$PACKAGE/$PACKAGE cd $TMP/package-$PACKAGE/$PACKAGE mkdir -p usr/{sbin,bin} mkdir -p etc/postfix cp $CWD/postgrey usr/sbin cp $CWD/postgrey_whitelist_clients etc/postfix/postgrey_whitelist_clients.new cp $CWD/postgrey_whitelist_recipients etc/postfix/postgrey_whitelist_recipients.new cp $CWD/contrib/postgreyreport usr/bin chmod 755 usr/sbin/postgrey usr/bin/postgreyreport mkdir install cat << EOF > install/slack-desc # HOW TO EDIT THIS FILE: # The "handy ruler" below makes it easier to edit a package description. Line # up the first '|' above the ':' following the base package name, and the '|' # on the right side marks the last column you can put a character in. You must # make exactly 11 lines for the formatting to be correct. It's also # customary to leave one space after the ':'. |-----handy-ruler-----------------------------------------------------| postgrey: postgrey (Postfix Greylisting Policy Server) postgrey: postgrey: Postgrey is a Postfix policy server that implements greylisting. When postgrey: a request for mail delivery is received by Postfix via SMTP, the postgrey: triplet CLIENT_IP / SENDER / RECIPIENT is built. If it is the first postgrey: time that this triplet is seen, or if the triplet was first seen less postgrey: than 10 minutes ago, then the mail gets rejected with a temporary postgrey: error. Hopefully, spammers or viruses will not try again later, even postgrey: though such behavior is required per RFC. postgrey: postgrey: EOF # docs mkdir -p usr/doc/$PACKAGE-$VERSION for file in COPYING Changes README; do cp $CWD/$file* usr/doc/$PACKAGE-$VERSION/ done # install script echo '( if [ ! -f "etc/postfix/postgrey_whitelist_recipients" ]; then mv etc/postfix/postgrey_whitelist_recipients.new etc/postfix/postgrey_whitelist_recipients; fi )' > install/doinst.sh echo '( if [ ! -f "etc/postfix/postgrey_whitelist_clients" ]; then mv etc/postfix/postgrey_whitelist_clients.new etc/postfix/postgrey_whitelist_clients; fi )' >> install/doinst.sh makepkg -c y -l y $REPOS/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz || exit $ERROR_MKPKG if [ "$CLEANUP" == "yes" ]; then rm -rf $TMP fi