#!/bin/bash # Slackware build script for spamassassin # Copyright 2008-2015 LukenShiro, Italy # Copyright 2026 pyllyukko # All rights reserved. # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Thanks to Nishant Limbachia for providing a SQL script to be used with # spamassassin database, and most of spamassassin dependencies' scripts. cd $(dirname $0) ; CWD=$(pwd) PRGNAM=spamassassin VERSION=${VERSION:-4.0.2} BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac fi if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 fi TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} SRC_PRGNAM=Mail-SpamAssassin DOCFILES="Changes CREDITS LICENSE NOTICE PACKAGING procmailrc.example \ README sample-nonspam.txt sample-spam.txt TRADEMARK UPGRADE USAGE sql/" if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -mtune=i686" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" fi set -e rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $SRC_PRGNAM-$VERSION tar xvf $CWD/$SRC_PRGNAM-$VERSION.tar.bz2 cd $SRC_PRGNAM-$VERSION chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ -o -perm 511 \) -exec chmod 755 {} \; -o \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; PERL_MM_USE_DEFAULT=1 \ perl Makefile.PL \ PREFIX=/usr \ INSTALLDIRS=vendor \ INSTALLVENDORMAN1DIR=/usr/man/man1 \ INSTALLVENDORMAN3DIR=/usr/man/man3 make CFLAGS="$SLKCFLAGS" CXXFLAGS="$SLKCFLAGS" make install DESTDIR=$PKG find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true # Remove empty directories find $PKG -depth -type d -empty -delete || true find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true find $PKG/usr/man -type f -exec gzip -9 {} \; for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done # Preserve config files ( cd $PKG/etc/mail/spamassassin mv init.pre init.pre.new mv local.cf local.cf.new mv v310.pre v310.pre.new mv v312.pre v312.pre.new mv v320.pre v320.pre.new mv v330.pre v330.pre.new mv v340.pre v340.pre.new mv v341.pre v341.pre.new mv v342.pre v342.pre.new mv v343.pre v343.pre.new mv v400.pre v400.pre.new mv v401.pre v401.pre.new mv v402.pre v402.pre.new ) # Copy init script to /etc/rc.d and modify it for name consistency mkdir -p $PKG/etc/rc.d/ install -m 0755 spamd/slackware-rc-script.sh $PKG/etc/rc.d/rc.spamd.new sed -i "s#SNAME=rc.spamassassin#SNAME=rc.spamd#g" $PKG/etc/rc.d/rc.spamd.new # Create file for enabling rc.spamd's start cat > $PKG/etc/spamassassin.conf.new << EOF ENABLED=1 EOF # Copy cron script mkdir -p $PKG/etc/cron.weekly/ install -m 0755 $CWD/sa-update.sh $PKG/etc/cron.weekly/ mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a $DOCFILES $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/spamassassin-db.sql > $PKG/usr/doc/$PRGNAM-$VERSION/spamassassin-db.sql cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README.SLACKWARE cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE