#!/bin/sh #DEP:ucspi_tcp #DEP:slackpackage #2e instantie van qmail. (ze moeten allemaal apparte users etc. dus vandaar deze extra package. andere mogelijkheid is er niet om qmail 2x te starten) ## 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=netqmail2 VERSION=1.05 BUILD=1DatuX PKG=$TMP/package_$NAME if [ ! -d $TMP ]; then mkdir -p $TMP # location to build the source fi rm -rf $PKG mkdir -p $PKG cd $TMP rm -rf netqmail-$VERSION tar xzvf $CWD/netqmail-$VERSION.tar.gz || exit 1 # Maak die godverredommese users and groups aan!! :-) groupadd -g 65 nofiles2 useradd -g nofiles2 -u 60 -d /home/system/qmail2/alias alias2 -s /usr/bin/false useradd -g nofiles2 -u 61 -d /var/qmail2 qmaild2 -s /usr/bin/false useradd -g nofiles2 -u 62 -d /var/qmail2 qmaill2 -s /usr/bin/false useradd -g nofiles2 -u 63 -d /var/qmail2 qmailp2 -s /usr/bin/false groupadd -g 66 qmail2 useradd -g qmail2 -u 64 -d /var/qmail2 qmailq2 -s /usr/bin/false useradd -g qmail2 -u 65 -d /var/qmail2 qmailr2 -s /usr/bin/false useradd -g qmail2 -u 66 -d /var/qmail2 qmails2 -s /usr/bin/false # Directory's maken make_dirs() { mkdir -p /var/qmail2/supervise/qmail-send/log mkdir -p /var/qmail2/supervise/qmail-smtpd/log #mkdir -p /var/qmail2/supervise/qmail-pop3d/log mkdir -p /var/log/qmail2/qmail-send mkdir -p /var/log/qmail2/qmail-smtpd #mkdir -p /var/log/qmail2/qmail-pop3d mkdir -p /var/qmail2/alias mkdir -p /var/qmail2/control mkdir -p /var/qmail2/users mkdir -p /home/system/qmail2 # Files touchen ln -sf ../../qmail/control/rcpthosts /var/qmail2/control/rcpthosts touch /var/qmail2/control/defaultdomain touch /var/qmail2/control/virtualdomains touch /var/qmail2/control/locals # assign bestand aanmaken om delivery naar een maildir te overiden echo '+:alias2:60:65:/var/qmail2/alias:-:: .' > /var/qmail2/users/assign # Rechten goed zetten chmod +t /var/qmail2/supervise/qmail-send chmod +t /var/qmail2/supervise/qmail-smtpd #chmod +t /var/qmail2/supervise/qmail-pop3d chmod 644 /var/qmail2/alias/.qmail* chown -R qmaill2 /var/log/qmail2 } compile() { cd netqmail-$VERSION || exit 1 #algemene patches netqmail ./collate.sh || exit 1 #qmail tap patch patch -F 3 -d netqmail-$VERSION -p1 < $CWD/qmail-tap.diff || exit 1 #qmail spp patch tar -xzf $CWD/qmail-spp-0.42.tar.gz || exit 1 patch -d netqmail-$VERSION -p0 < qmail-spp-0.42/netqmail-spp.diff || exit 1 #compile it cd netqmail-$VERSION #andere qmail dir: echo /var/qmail2 > conf-qmail #andere users en groups echo "alias2 qmaild2 qmaill2 root qmailp2 qmailq2 qmailr2 qmails2" > conf-users echo "qmail2 nofiles2" > conf-groups make setup check || exit 1 # Default qmail rules cat < /home/system/qmail2/tcp.smtp 127.0.0.1:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.16.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.17.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.18.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.19.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.20.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.21.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.22.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.23.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.24.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.25.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.26.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.27.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.28.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.29.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.30.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 172.31.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 192.168.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" 10.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" :allow,QMAILQUEUE="bin/qmail-queue" END tcprules /home/system/qmail2/tcp.smtp.cdb /home/system/qmail2/tcp.smtp.tmp < /home/system/qmail2/tcp.smtp echo 200 > /var/qmail2/control/concurrencyincoming chmod 644 /var/qmail2/control/concurrencyincoming #by default all mail will be forwarded to the scanning qmail, that does the actual scanning and can thus take long #NOTE: 127.0.0.1 is excluded from scanning, so we send it to 127.0.0.2! echo ":127.0.0.2:26" > /var/qmail2/control/smtproutes chmod 644 /var/qmail2/control/smtproutes #maximum number of parallel 'scans' that the scanning qmail can handle echo 4 > /var/qmail2/control/concurrencyremote chmod 644 /var/qmail2/control/concurrencyremote #locals is een link naar me rm /var/qmail2/control/locals ln -s me /var/qmail2/control/locals } make_scripts() { # Create a qmail run script cat > /var/qmail2/rc << END #!/bin/sh exec env - PATH="/var/qmail2/bin:\$PATH" \ qmail-start '' splogger qmail2 END chmod +x /var/qmail2/rc # Create a qmail-send supervise (including log) run script cat > /var/qmail2/supervise/qmail-send/run << END #!/bin/sh #dynamic update of hostname hostname -f > /var/qmail2/control/me #zet de assign file om naar binair formaat. /var/qmail2/bin/qmail-newu exec /var/qmail2/rc END chmod +x /var/qmail2/supervise/qmail-send/run cat > /var/qmail2/supervise/qmail-send/log/run << END #!/bin/sh exec /usr/bin/setuidgid qmaill2 /usr/bin/multilog t s2500000 /var/log/qmail2/qmail-send END chmod +x /var/qmail2/supervise/qmail-send/log/run # Create a qmail-smtpd supervise (including log) run script cat > /var/qmail2/supervise/qmail-smtpd/run << END #!/bin/sh QMAILDUID=\`id -u qmaild2\` NOFILESGID=\`id -g qmaild2\` MAXSMTPD=\`cat /var/qmail2/control/concurrencyincoming\` LOCAL=\`head -1 /var/qmail2/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/qmail2/supervise/qmail-smtpd/run exit 1 fi if [ ! -f /var/qmail2/control/rcpthosts ]; then echo "No /var/qmail2/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/qmail2/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/qmail2/bin/qmail-smtpd 2>&1 END chmod +x /var/qmail2/supervise/qmail-smtpd/run cat > /var/qmail2/supervise/qmail-smtpd/log/run << END #!/bin/sh exec /usr/bin/setuidgid qmaill2 /usr/bin/multilog t s2500000 /var/log/qmail2/qmail-smtpd END chmod +x /var/qmail2/supervise/qmail-smtpd/log/run } prepare() { #niet met symlink, ivm package removal mkdir -p $PKG/service mkdir -p $PKG/var/log mkdir -p $PKG/var/qmail2 mkdir -p $PKG/etc mkdir -p $PKG/home/system/qmail2 mv /var/qmail2/control $PKG/home/system/qmail2 mv /var/qmail2/alias $PKG/home/system/qmail2 mv /var/qmail2/queue $PKG/home/system/qmail2 mv /var/qmail2/users $PKG/home/system/qmail2 cp -a /var/qmail2 $PKG/var cp -a /var/log/qmail2 $PKG/var/log ln -sf /home/system/qmail2/queue $PKG/var/qmail2/queue ln -sf /home/system/qmail2/control $PKG/var/qmail2/control ln -sf /home/system/qmail2/alias $PKG/var/qmail2/alias ln -sf /home/system/qmail2/users $PKG/var/qmail2/users ln -sf /home/system/qmail2 $PKG/etc/qmail2 ln -sf /var/qmail2/supervise/qmail-send $PKG/service/qmail-send2 ln -sf /var/qmail2/supervise/qmail-smtpd $PKG/service/qmail-smtpd2 cp -a $CWD/qmail2.permissions $PKG/etc cp -a $CWD/qmail2.rc.config $PKG/etc cp -a $CWD/qmailctl $PKG/var/qmail2/bin/ cp -a /home/system/qmail2/tcp.smtp $PKG/home/system/qmail2/ cp -a /home/system/qmail2/tcp.smtp.cdb $PKG/home/system/qmail2/ mkdir -p $PKG/usr/sbin ln -s /var/qmail2/bin/sendmail $PKG/usr/sbin/sendmail || exit 1 cat $TMP/netqmail-$VERSION/netqmail-$VERSION/config-fast.sh | sed "s/QMAIL/\/var\/qmail2/" > $PKG/var/qmail2/bin/config-fast chmod 600 $PKG/etc/qmail2.permissions chmod 600 $PKG/etc/qmail2.rc.config chmod 755 $PKG/var/qmail2/bin/qmailctl chmod 755 $PKG/var/qmail2/bin/config-fast mkdir -p $PKG/usr/bin } 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() { #postinstall mkdir -p $PKG/etc/postinst.d cat > $PKG/etc/postinst.d/post.qmail2 << END #!/bin/sh svc -d /service/qmail-*2 /var/qmail2/bin/qmailctl user touch /var/qmail2/control/smtpplugins svc -dx /service/qmail-*2 END chmod +x $PKG/etc/postinst.d/post.qmail2 } build() { # configfile moeten op .new eindigen find $PKG/etc/qmail2.* $PKG/home/system/qmail2/control $PKG/home/system/qmail2/users $PKG/home/system/qmail2/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." } make_dirs || exit 1 compile || exit 1 make_scripts || exit 1 prepare || exit 1 description || exit 1 runscript || exit 1 build || exit 1