% sudo -s Password: # system_profiler SPSoftwareDataType |grep Version System Version: Mac OS X 10.3.4 (7H63) Kernel Version: Darwin 7.4.0 # umask 022 # mkdir -p /usr/local/src # cd /usr/local/src # curl http://www.qmail.org/netqmail-1.05.tar.gz -RO ... # curl http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz -RO ... # curl http://cr.yp.to/daemontools/daemontools-0.76.tar.gz -RO ... # mkdir /var/qmail # nireport . /groups name gid ... # niload group . <<EOF ? qmail:*:2107: ? nofiles:*:2108: ? EOF # nidump group . >/etc/group # nireport . /users name uid ... # niload passwd . <<EOF ? alias:*:7790:2108::0:0::/var/qmail/alias:/bin/true ? qmaild:*:7791:2108::0:0::/var/qmail:/bin/true ? qmaill:*:7792:2108::0:0::/var/qmail:/bin/true ? qmailp:*:7793:2108::0:0::/var/qmail:/bin/true ? qmailq:*:7794:2107::0:0::/var/qmail:/bin/true ? qmailr:*:7795:2107::0:0::/var/qmail:/bin/true ? qmails:*:7796:2107::0:0::/var/qmail:/bin/true ? EOF # nidump passwd . >/etc/passwd # gunzip -cd netqmail-1.05.tar.gz |tar -xf - # cd netqmail-1.05 # ./collate.sh ... # cd netqmail-1.05 # patch </path/to/panther.patch ... # make setup check ... # ./config ... # cd ../.. # gunzip -cd ucspi-tcp-0.88.tar.gz |tar -xf - # cd ucspi-tcp-0.88 # make setup check ... # cd .. # mkdir -p /package # mv daemontools-0.76.tar.gz /package # chmod 1755 /package # cd /package # gunzip -cd daemontools-0.76.tar.gz |tar -xf - # cd admin/daemontools-0.76 # package/install ... # cat /etc/rc.local csh -cf '/command/svscanboot &' # rm /etc/rc.local # mkdir /Library/StartupItems/svscanboot # cd /Library/StartupItems/svscanboot # cat >svscanboot <<EOF ? #!/bin/sh ? . /etc/rc.common ? StartService( ) ? { ? ConsoleMessage "Starting svscanboot" ? csh -cf '/command/svscanboot &' ? } ? RunService "\$1" ? EOF # chmod 755 svscanboot # cat >StartupParameters.plist <<EOF ? { ? Description = svscanboot; ? Provides = (svscanboot); ? Requires = (Network); ? OrderPreference = None; ? } ? EOF # cat >/var/qmail/rc <<EOF ? #!/bin/sh ? # Using stdout for logging ? # Using control/defaultdelivery from qmail-local to deliver messages by default ? exec env - PATH="/var/qmail/bin:\$PATH" \ ? qmail-start "\`cat /var/qmail/control/defaultdelivery\`" ? EOF # chmod 755 /var/qmail/rc # echo ./Maildir/ >/var/qmail/control/defaultdelivery # cd /var/qmail/bin # rehash # http@ lifewithqmail.org /qmailctl-script-dt70 >qmailctl # chmod 755 qmailctl # ln -s /var/qmail/bin/qmailctl /usr/bin # cp -p /etc/periodic/daily/500.daily /etc/periodic/500.daily.0 # sh -c "cat /etc/periodic/daily/500.daily |sed -e s/mailq/qmailctl\ queue/ >/etc/periodic/daily/500.daily" # mkdir -p /var/qmail/supervise/qmail-send/log # mkdir -p /var/qmail/supervise/qmail-smtpd/log # cat >/var/qmail/supervise/qmail-send/run <<EOF ? #!/bin/sh ? exec /var/qmail/rc ? EOF # cat >/var/qmail/supervise/qmail-send/log/run <<EOF ? #!/bin/sh ? exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail ? EOF # cat >/var/qmail/supervise/qmail-smtpd/run <<EOF ? #!/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/local/bin/softlimit -m 2000000 \ ? /usr/local/bin/tcpserver -v -R -l "\$LOCAL" -x /etc/tcp.smtp.cdb -c "\$MAXSMTPD" \ ? -u "\$QMAILDUID" -g "\$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 ? EOF # echo 20 >/var/qmail/control/concurrencyincoming # chmod 644 /var/qmail/control/concurrencyincoming # cat >/var/qmail/supervise/qmail-smtpd/log/run <<EOF ? #!/bin/sh ? exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd ? EOF # chmod 755 /var/qmail/supervise/qmail-send/run # chmod 755 /var/qmail/supervise/qmail-send/log/run # chmod 755 /var/qmail/supervise/qmail-smtpd/run # chmod 755 /var/qmail/supervise/qmail-smtpd/log/run # mkdir -p /var/log/qmail/smtpd # chown qmaill /var/log/qmail /var/log/qmail/smtpd # ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service # echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp # qmailctl cdb ... # mv /usr/sbin/sendmail /usr/sbin/sendmail.old # chmod 0 /usr/sbin/sendmail.old # ln -s /var/qmail/bin/sendmail /usr/sbin # echo mary >/var/qmail/alias/.qmail-root # echo mary >/var/qmail/alias/.qmail-postmaster # ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon # chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster # sudo -u mary -s % cd ~mary % /var/qmail/bin/maildirmake Maildir % echo ./Maildir/ >.qmail % /Developer/Tools/SetFile -a V Maildir % exit # reboot ... # qmailctl stat /service/qmail-send: up (pid 245) 75 seconds /service/qmail-send/log: up (pid 247) 75 seconds /service/qmail-smtpd: up (pid 248) 75 seconds /service/qmail-smtpd/log: up (pid 253) 75 seconds messages in queue: 0 messages in queue but not yet preprocessed: 0 # |