#!/bin/sh #DEP:ucspi_tcp #DEP:slackpackage #DEP:libspf2 #NEED:groff #DEP:libdomainkeys #DEP:libsrs2 #DEP:openssl #DEP:vpopmail #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.06 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 $NAME-$VERSION tar xvf $CWD/$NAME-$VERSION.tar || exit 1 # Maak users and group 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 true } 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 #TESTEN OF NIEWUER WERKT! #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 ### all important qmail patches # above is all replaced by the great uberpatch from http://notes.sagredo.eu/en/qmail-notes-185/patching-qmail-82.html THANKS Roberto Puzzanghera! ROBVERSION="rob20180403" patch < /tmp/build/roberto-netqmail-1.06.patch-latest || exit 1 ln -s /usr/include/srs2.h /usr/local/include/srs2.h # #### 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 # echo '#define CHKUSER_ENABLE_ALIAS_DEFAULT' >> chkuser_settings.h || exit 1 #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 true; } 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 rm -rf $PKG/var/qmail/{queue,alias,control} # 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 } 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 svcrestart /service/qmail-smtpd svcrestart /service/qmail-send 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"_"$ROBVERSION > $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