#!/bin/sh #DEP:ucspi_tcp #DEP:slackpackage #DEP:libspf2 #NEED:groff #Gemodificeerd door edwin voor mailserver productlijn. #mail gaat nu via amavis en word delivered via dspam. ## Include the slackware-pkg conf file if [ -a /etc/slack-package.conf ]; then . /etc/slack-package.conf else echo "Sorry you need to have the slack-package.conf file to run these" echo "please install the slackbuilds package from LinuxPackages.net" exit 1 fi # Set initial variables: NAME=netqmail VERSION=1.05 BUILD=1DatuX ## Location to download the sources SRC_LOC="http://ds9a.nl/qmail/$NAME-$VERSION.tar.gz" PKG=$TMP/package_$NAME ## Lets Grab the Source if needed if [ -a $CWD/$NAME-$VERSION.tar.gz ]; then echo "Source present not downloading" else $WGET $SRC_LOC || true fi if [ ! -d $TMP ]; then mkdir -p $TMP # location to build the source fi rm -rf $PKG mkdir -p $PKG cd $TMP rm -rf $NAME-$VERSION tar xzvf $CWD/$NAME-$VERSION.tar.gz || exit 1 # Maak die godverredommese users and groups aan!! :-) groupadd -g 55 nofiles useradd -g nofiles -u 50 -d /home/system/qmail/alias alias -s /sbin/false useradd -g nofiles -u 51 -d /var/qmail qmaild -s /usr/bin/false useradd -g nofiles -u 52 -d /var/qmail qmaill -s /usr/bin/false useradd -g nofiles -u 53 -d /var/qmail qmailp -s /usr/bin/false groupadd -g 56 qmail useradd -g qmail -u 54 -d /var/qmail qmailq -s /usr/bin/false useradd -g qmail -u 55 -d /var/qmail qmailr -s /usr/bin/false useradd -g qmail -u 56 -d /var/qmail qmails -s /usr/bin/false # Directory's maken make_dirs() { mkdir -p /var/qmail/supervise/qmail-send/log mkdir -p /var/qmail/supervise/qmail-smtpd/log #mkdir -p /var/qmail/supervise/qmail-pop3d/log mkdir -p /var/log/qmail/qmail-send mkdir -p /var/log/qmail/qmail-smtpd #mkdir -p /var/log/qmail/qmail-pop3d mkdir -p /var/qmail/alias mkdir -p /var/qmail/control mkdir -p /var/qmail/users mkdir -p /home/system/qmail # Files touchen touch /var/qmail/control/rcpthosts touch /var/qmail/control/defaultdomain touch /var/qmail/control/virtualdomains touch /var/qmail/control/locals #touch /var/qmail/alias/.qmail-postmaster #touch /var/qmail/alias/.qmail-root # qmqpservers bestand maken echo "127.0.0.1" > /var/qmail/control/qmqpservers # default alias file voor delivery via dspam naar cyrus echo '|/usr/bin/syn3-dagent "$LOCAL" "$SENDER"' > /var/qmail/alias/.qmail-default # assign bestand aanmaken om delivery naar een maildir te overiden echo '+:alias:50:55:/var/qmail/alias:-:: .' > /var/qmail/users/assign # Rechten goed zetten chmod +t /var/qmail/supervise/qmail-send chmod +t /var/qmail/supervise/qmail-smtpd #chmod +t /var/qmail/supervise/qmail-pop3d chmod 644 /var/qmail/alias/.qmail* chown -R qmaill /var/log/qmail } compile() { cd $NAME-$VERSION || exit 1 #algemene patches netqmail ./collate.sh || exit 1 #qmail tap patch patch -F 3 -d $NAME-$VERSION -p1 < $CWD/qmail-tap.diff || exit 1 #qmail dns patch patch -F 3 -d $NAME-$VERSION -p1 < $CWD/qmail-103.patch || exit 1 #qmail spp patch echo "SPP" tar -xzf $CWD/qmail-spp-0.42.tar.gz || exit 1 patch -d $NAME-$VERSION -F3 -p0 < qmail-spp-0.42/netqmail-spp.diff || exit 1 #### spp plugins mkdir -p $PKG/var/qmail/plugins #helo plugin: gcc -o helodnscheck $CWD/helodnscheck2.c -lresolv || exit 1 mv helodnscheck $PKG/var/qmail/plugins || exit 1 gcc -Wall -o qmail-spp-spf $CWD/qmail-spp-spf-20091020.c -lspf2 -I/usr/include/spf2 || exit 1 mv qmail-spp-spf $PKG/var/qmail/plugins || exit 1 chmod +x $PKG/var/qmail/plugins/* #compile it cd $NAME-$VERSION #large inode support sed 's/O2$/O2 -D_FILE_OFFSET_BITS=64/' conf-cc -i || exit 1 make setup check || exit 1 # Default qmail rules cat < /home/system/qmail/tcp.smtp 127.0.0.1:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 127.0.0.2:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 127.0.0.3:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.16.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.17.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.18.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.19.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.20.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.21.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.22.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.23.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.24.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.25.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.26.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.27.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.28.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.29.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.30.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 172.31.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 192.168.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" 10.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" :allow,QMAILQUEUE="bin/qmail-qmqpc" END #tcprules /home/system/qmail/tcp.smtp.cdb /home/system/qmail/tcp.smtp.tmp < /home/system/qmail/tcp.smtp echo 5 > /var/qmail/control/concurrencyincoming chmod 644 /var/qmail/control/concurrencyincoming #locals is een link naar me rm /var/qmail/control/locals ln -s me /var/qmail/control/locals } make_scripts() { # Create a qmail run script cat > /var/qmail/rc << END #!/bin/sh exec env - PATH="/var/qmail/bin:\$PATH" \ qmail-start '' splogger qmail END chmod +x /var/qmail/rc # Create a qmail-send supervise (including log) run script cat > /var/qmail/supervise/qmail-send/run << END #!/bin/sh #dynamic update of hostname hostname -f > /var/qmail/control/me #zet de assign file om naar binair formaat. /var/qmail/bin/qmail-newu exec /var/qmail/rc END chmod +x /var/qmail/supervise/qmail-send/run cat > /var/qmail/supervise/qmail-send/log/run << END #!/bin/sh exec /usr/bin/setuidgid qmaill /usr/bin/multilog t s2500000 /var/log/qmail/qmail-send END chmod +x /var/qmail/supervise/qmail-send/log/run # Create a qmail-smtpd supervise (including log) run script cat > /var/qmail/supervise/qmail-smtpd/run << END #!/bin/sh QMAILDUID=\`id -u qmaild\` NOFILESGID=\`id -g qmaild\` MAXSMTPD=\`cat /var/qmail/control/concurrencyincoming\` LOCAL=\`head -1 /var/qmail/control/me\` if [ -z "\$QMAILDUID" -o -z "\$NOFILESGID" -o -z "\$MAXSMTPD" -o -z "\$LOCAL" ]; then echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in echo /var/qmail/supervise/qmail-smtpd/run exit 1 fi if [ ! -f /var/qmail/control/rcpthosts ]; then echo "No /var/qmail/control/rcpthosts!" echo "Refusing to start SMTP listener because it'll create an open relay" exit 1 fi exec /usr/bin/softlimit -m 150000000 /usr/bin/tcpserver -v -R -l "\$LOCAL" -x /etc/qmail/tcp.smtp.cdb \ -c "\$MAXSMTPD" -u "\$QMAILDUID" -g "\$NOFILESGID" 0 smtp /usr/bin/rblsmtpd -r cbl.abuseat.org -r bl.spamcop.net /usr/bin/fixcrio /var/qmail/bin/qmail-smtpd 2>&1 END chmod +x /var/qmail/supervise/qmail-smtpd/run cat > /var/qmail/supervise/qmail-smtpd/log/run << END #!/bin/sh exec /usr/bin/setuidgid qmaill /usr/bin/multilog t s2500000 /var/log/qmail/qmail-smtpd END chmod +x /var/qmail/supervise/qmail-smtpd/log/run # Create a qmail-pop3d supervise (including log) run script #cat > /var/qmail/supervise/qmail-pop3d/run << END ##!/bin/sh #exec env - PATH="/var/qmail/bin:\$PATH" \ # tcpserver -vR -l 0 \ # 0 25110 \ # qmail-popup "\`cat /var/qmail/control/me\`" \ # checkpassword qmail-pop3d Maildir \ # 2>&1 #END #chmod +x /var/qmail/supervise/qmail-pop3d/run #cat > /var/qmail/supervise/qmail-pop3d/log/run << END ##!/bin/sh #exec /usr/bin/setuidgid qmaill /usr/bin/multilog t s2500000 /var/log/qmail/qmail-pop3d #END #chmod +x /var/qmail/supervise/qmail-pop3d/log/run } prepare() { #niet met symlink, ivm package removal mkdir -p $PKG/service mkdir -p $PKG/var/log mkdir -p $PKG/var/qmail mkdir -p $PKG/etc mkdir -p $PKG/home/system/qmail mv /var/qmail/control $PKG/home/system/qmail mv /var/qmail/alias $PKG/home/system/qmail mv /var/qmail/queue $PKG/home/system/qmail mv /var/qmail/users $PKG/home/system/qmail cp -a /var/qmail $PKG/var cp -a /var/log/qmail $PKG/var/log ln -sf /home/system/qmail/queue $PKG/var/qmail/queue ln -sf /home/system/qmail/control $PKG/var/qmail/control ln -sf /home/system/qmail/alias $PKG/var/qmail/alias ln -sf /home/system/qmail/users $PKG/var/qmail/users ln -sf /home/system/qmail $PKG/etc/qmail ln -sf /var/qmail/supervise/qmail-send $PKG/service/qmail-send ln -sf /var/qmail/supervise/qmail-smtpd $PKG/service/qmail-smtpd #ln -s /var/qmail/supervise/qmail-pop3d $PKG/service/qmail-pop3d cp -a $CWD/qmail.permissions $PKG/etc cp -a $CWD/qmail.rc.config $PKG/etc cp -a $CWD/qmailctl $PKG/var/qmail/bin/ cp -a /home/system/qmail/tcp.smtp $PKG/home/system/qmail/ cp -a /home/system/qmail/tcp.smtp.cdb $PKG/home/system/qmail/ mkdir -p $PKG/usr/sbin ln -s /var/qmail/bin/sendmail $PKG/usr/sbin/sendmail || exit 1 cat $TMP/$NAME-$VERSION/$NAME-$VERSION/config-fast.sh | sed "s/QMAIL/\/var\/qmail/" > $PKG/var/qmail/bin/config-fast chmod 600 $PKG/etc/qmail.permissions chmod 600 $PKG/etc/qmail.rc.config chmod 755 $PKG/var/qmail/bin/qmailctl chmod 755 $PKG/var/qmail/bin/config-fast mkdir -p $PKG/usr/bin cp $CWD/syn3-dagent $PKG/usr/bin || exit 1 chmod 755 $PKG/usr/bin/syn3-dagent || exit 1 } description() { mkdir -p $PKG/install cat > $PKG/install/slack-desc << END |-----handy-ruler------------------------------------------------------| $NAME: $NAME $VERSION $NAME: $NAME: netqmail is a community-assembled distribution of qmail. $NAME: It includes the untouched source along with a single combined patch. $NAME: Modified by DatuX for Syn-3. $NAME: $NAME: $NAME: $NAME: $NAME: $NAME: END } runscript() { #cat > $PKG/install/doinst.sh << END ##!/bin/sh #/sbin/postinst.sh #END #chmod +x $PKG/install/doinst.sh #postinstall mkdir -p $PKG/etc/postinst.d cat > $PKG/etc/postinst.d/post.qmail << END #!/bin/sh svc -d /service/qmail-* svcstop /service/nscd/ /var/qmail/bin/qmailctl user svcreset /service/nscd/ touch /var/qmail/control/smtpplugins svc -dx /service/qmail-* #update old config? if ! grep "127.0.0.3" /etc/qmail/tcp.smtp; then mv /etc/qmail/tcp.smtp.new /etc/qmail/tcp.smtp fi #regenerate cdb tcprules /etc/qmail/tcp.smtp.cdb /etc/qmail/tcp.smtp.tmp < /etc/qmail/tcp.smtp END chmod +x $PKG/etc/postinst.d/post.qmail } build() { # configfile moeten op .new eindigen find $PKG/etc/qmail.* $PKG/home/system/qmail/control $PKG/home/system/qmail/users $PKG/home/system/qmail/tcp.* -type f -exec mv "{}" "{}.new" \; || exit 1 # Build the package: cd $PKG echo $VERSION > $CWD/$NAME.version echo $ARCH > $CWD/$NAME.arch makepkg -l y -c n $CWD/$NAME.pkg echo "Your $NAME package is complete, make sure you open it up before installing it." } cleanup() { # Delete the temporary users and groups userdel alias userdel qmaild userdel qmaill userdel qmailp userdel qmailq userdel qmailr userdel qmails groupdel nofiles groupdel qmail } make_dirs || exit 1 compile || exit 1 make_scripts || exit 1 prepare || exit 1 description || exit 1 runscript || exit 1 build || exit 1 #cleanup || exit 1