From: Mark Wooding Date: Tue, 14 Feb 2006 01:30:30 +0000 (+0000) Subject: Merge branch 'mdw/bounce-msgid' X-Git-Tag: mdw/1.03-2~2 X-Git-Url: https://git.distorted.org.uk/~mdw/qmail/commitdiff_plain/3abe7b01ff2b4edaa34724277a7ca5ea2cb60304?hp=d67c973726ac0093d30f49af8ea59276c06fdcc5 Merge branch 'mdw/bounce-msgid' * mdw/bounce-msgid: qmail-send: Add message-id to bounce messages. --- diff --git a/binm1+df.sh b/binm1+df.sh index 0ff1a68..f18ceaf 100644 --- a/binm1+df.sh +++ b/binm1+df.sh @@ -5,7 +5,7 @@ # Using binmail to deliver messages to /var/spool/mail/$USER by default. # Using BSD 4.4 binmail interface: /usr/libexec/mail.local -r -exec env - PATH="QMAIL/bin:$PATH" \ +exec env - PATH="/usr/bin:/usr/sbin$PATH" \ qmail-start '|dot-forward .forward |preline -f /usr/libexec/mail.local -r "${SENDER:-MAILER-DAEMON}" -d "$USER"' \ splogger qmail diff --git a/binm1.sh b/binm1.sh index db79cbd..03e5a80 100644 --- a/binm1.sh +++ b/binm1.sh @@ -4,7 +4,7 @@ # Using binmail to deliver messages to /var/spool/mail/$USER by default. # Using BSD 4.4 binmail interface: /usr/libexec/mail.local -r -exec env - PATH="QMAIL/bin:$PATH" \ +exec env - PATH="/usr/bin:/usr/sbin$PATH" \ qmail-start \ '|preline -f /usr/libexec/mail.local -r "${SENDER:-MAILER-DAEMON}" -d "$USER"' \ splogger qmail diff --git a/binm2+df.sh b/binm2+df.sh index 4f78101..0eeae2d 100644 --- a/binm2+df.sh +++ b/binm2+df.sh @@ -5,7 +5,7 @@ # Using binmail to deliver messages to /var/spool/mail/$USER by default. # Using SVR4 binmail interface: /bin/mail -r -exec env - PATH="QMAIL/bin:$PATH" \ +exec env - PATH="/usr/bin:/usr/sbin$PATH" \ qmail-start '|dot-forward .forward |preline -f /bin/mail -r "${SENDER:-MAILER-DAEMON}" -d "$USER"' \ splogger qmail diff --git a/binm2.sh b/binm2.sh index 7905308..5224189 100644 --- a/binm2.sh +++ b/binm2.sh @@ -4,7 +4,7 @@ # Using binmail to deliver messages to /var/spool/mail/$USER by default. # Using SVR4 binmail interface: /bin/mail -r -exec env - PATH="QMAIL/bin:$PATH" \ +exec env - PATH="/usr/bin:/usr/sbin$PATH" \ qmail-start \ '|preline -f /bin/mail -r "${SENDER:-MAILER-DAEMON}" -d "$USER"' \ splogger qmail diff --git a/binm3+df.sh b/binm3+df.sh index 3d69401..686be30 100644 --- a/binm3+df.sh +++ b/binm3+df.sh @@ -5,7 +5,7 @@ # Using binmail to deliver messages to /var/spool/mail/$USER by default. # Using V7 binmail interface: /bin/mail -f -exec env - PATH="QMAIL/bin:$PATH" \ +exec env - PATH="/usr/bin:/usr/sbin$PATH" \ qmail-start '|dot-forward .forward |preline -f /bin/mail -f "${SENDER:-MAILER-DAEMON}" -d "$USER"' \ splogger qmail diff --git a/binm3.sh b/binm3.sh index eb139e6..e2f9254 100644 --- a/binm3.sh +++ b/binm3.sh @@ -4,7 +4,7 @@ # Using binmail to deliver messages to /var/spool/mail/$USER by default. # Using V7 binmail interface: /bin/mail -f -exec env - PATH="QMAIL/bin:$PATH" \ +exec env - PATH="/usr/bin:/usr/sbin$PATH" \ qmail-start \ '|preline -f /bin/mail -f "${SENDER:-MAILER-DAEMON}" -d "$USER"' \ splogger qmail diff --git a/conf-cc b/conf-cc index e58fb9b..0f29a89 100644 --- a/conf-cc +++ b/conf-cc @@ -1,3 +1,3 @@ -cc -O2 +cc -O2 -g This will be used to compile .c files. diff --git a/conf-groups b/conf-groups index cec0845..0c42455 100644 --- a/conf-groups +++ b/conf-groups @@ -1,5 +1,5 @@ qmail -nofiles +nogroup These are the qmail groups. The second group should not have access to any files, but it must be usable for processes; this requirement diff --git a/conf-ld b/conf-ld index a9e796a..0329c85 100644 --- a/conf-ld +++ b/conf-ld @@ -1,3 +1,4 @@ +cc cc -s This will be used to link .o files into an executable. diff --git a/datemail.sh b/datemail.sh index fd28f46..caa2c42 100644 --- a/datemail.sh +++ b/datemail.sh @@ -1 +1 @@ -exec QMAIL/bin/predate QMAIL/bin/sendmail ${1+"$@"} +exec /usr/sbin/predate /usr/sbin/sendmail ${1+"$@"} diff --git a/debian/README b/debian/README new file mode 100644 index 0000000..6ff1a99 --- /dev/null +++ b/debian/README @@ -0,0 +1,7 @@ +Things to do when debianizing a new version of qmail. + Christian Hudon + +* Run debian/debianize-source-tree + +NB Programs are classified as belonging to sbin or bin according to their +manual page section. (section 1: bin; section 8: sbin) diff --git a/debian/README.debian b/debian/README.debian new file mode 100644 index 0000000..f5a17bd --- /dev/null +++ b/debian/README.debian @@ -0,0 +1,64 @@ +WARNING - WARNING - WARNING - WARNING - WARNING - WARNING + + qmail does not support dot-locking internally. + + You are in danger of losing mail if you re-configure + qmail without understanding the implications of this. + +WARNING - WARNING - WARNING - WARNING - WARNING - WARNING + +On Debian the standard location for a users mailbox is + + /var/spool/mail/ + +and when programs write to that file they are expected to lock the +file to prevent another process from accessing it at the same time, and +thus corrupting your mail file. + +For reasons explained in /usr/doc/qmail/INSTALL.mbox, qmail does not do this. + +The default setup uses /usr/sbin/qmail-procmail to perform the final +delivery of mail with apropriate dot-locking to prevent loss of mail. +This is just a script that invokes procmail. + +You should not really need to invoke this as a user, but if you can +think of a reason to do so, a line like this in your .qmail file will +result in normal delivery via procmail: + + |/usr/sbin/qmail-procmail + +If you were to instead put something like: + + /var/spool/mail/phil + +in your .qmail file, it would deliver mail to that file, but would +lock it using flock's rather than dot-lock's. Unless you know +different, that would probably mean that every other program on the +system would consider the file to be unlocked, and would leave you +open to mail loss. + +Personally, I'd recommend moving to Maildir/ format if you can. Read +the files in /usr/doc/qmail to find out more. + +--- + +How the Debian setup differs from standard qmail setups: + + The default setup sets aliasempty (i.e. the default delivery method) + to be /usr/sbin/qmail-procmail, which is a wrapper around procmail. + + This results in delivery into /var/spool/mail. + + To change this to one of the more standard qmail setups edit + /etc/init.d/qmail + + The binaries normail found in /var/qmail/bin have been split between + /usr/bin and /usr/sbin. + + The configuration files have been moved to /etc/qmail and the queue + has been moved to /var/spool/qmail. + + Symbolic links have been placed in /var/qmail to make it look like a + normal qmail setup. + +Phil Hands diff --git a/debian/TODO b/debian/TODO new file mode 100644 index 0000000..432d76b --- /dev/null +++ b/debian/TODO @@ -0,0 +1,4 @@ +* Write nice qmailconfig script +* Add aliases for postmaster, root and mailer-daemon +* Enable pop3d daemon? +* Edit /etc/login.defs:MAIL_DIR/MAIL_FILE ? diff --git a/debian/build-qmail b/debian/build-qmail new file mode 100644 index 0000000..dfcf28b --- /dev/null +++ b/debian/build-qmail @@ -0,0 +1,45 @@ +#!/bin/sh -e + +NEWDIR=./qmail + +cat <<-'!END!' + + This script unpacks the qmail source in /usr/src/qmail-src + into a directory, and compiles it to produce a binary qmail*.deb file + The directory where this is done will end up containing the + source and package files for the qmail binary package, along + with a directory containing the unpacked source. + + !END! + +echo -n "Where would you like to do this [$NEWDIR] " +read line + +NEWDIR="${line:-$NEWDIR}" + +if test -d $NEWDIR +then + echo -n "'$NEWDIR' already exists, should I use it anyway ? [yN] " + read yn + test "$yn" = y -o "$yn" = Y || exit 1 +else + mkdir $NEWDIR +fi + +cd $NEWDIR +dpkg-source -x /usr/src/qmail-src/qmail_*.dsc +cd qmail-* + +BECOMEROOT=fakeroot +cat <<-'!END!' + + For some reason fakeroot causes install to hang on my system, so I'm + giving you the option of running sudo or fakeroot. Give fakeroot a try + but if it does not work use sudo instead. + + !END! +echo -n "Should I use sudo or fakeroot to build the package ? [sF] " +read yn +test "$yn" = s -o "$yn" = S && BECOMEROOT=sudo + +dpkg-buildpackage -us -uc -r$BECOMEROOT diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..d0a6f54 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,41 @@ +qmail (1.03-1) non-free; urgency=low + + * new upstream release + + -- Mark Wooding Sun, 28 Jun 1998 12:41:18 +0100 + +qmail (1.01-2) non-free; urgency=low + + * new maintainer + * qmail-1.01.orig.tar.gz now really is pristine source ;-) + * revert to unpatched source, and get dot-locking by use of procmail + * add creation of qmail-src + + -- Philip Hands Fri, 31 Oct 1997 21:13:40 +0000 + +qmail (1.01-1) experimental; urgency=low + + * New upstream release. + * Gave in and added /usr/lib/sendmail symlink (fixes bugs 10283 and 11347) + * Compiled with libc6. + * qmail-1.01.orig.tar.gz is now pristine source, thanks to dpkg 1.4.0.19 + + -- Christian Hudon Fri, 8 Aug 1997 22:22:24 -0400 + +qmail (1.00-2) experimental; urgency=low + + * Fixed error in sed expression of qmailconfig (Thanks to Philip Hands) + * Made '/etc/init.d/qmail stop' output look prettier. + + -- Christian Hudon Sun, 13 Apr 1997 19:12:59 -0400 + +qmail (1.00-1) experimental; urgency=low + + * Initial release. + + -- Christian Hudon Wed, 26 Mar 1997 00:24:38 -0500 + +Local variables: +mode: debian-changelog +add-log-mailing-address: "phil@hands.com" +End: diff --git a/debian/conffiles b/debian/conffiles new file mode 100644 index 0000000..49c92fe --- /dev/null +++ b/debian/conffiles @@ -0,0 +1 @@ +/etc/init.d/qmail diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..9ede531 --- /dev/null +++ b/debian/control @@ -0,0 +1,67 @@ +Source: qmail +Maintainer: Philip Hands +Section: mail +Priority: extra +Standards-Version: 2.1.2.2 + +Package: qmail +Architecture: any +Section: mail +Priority: extra +Depends: ${shlibs:Depends}, netbase, procmail +Provides: mail-transport-agent +Conflicts: mail-transport-agent +Suggests: pine | mail-reader +Description: Secure, reliable, efficient, simple mail transport system + qmail is a secure, reliable, efficient, simple message transfer agent. It + is meant as a replacement for the entire sendmail-binmail system on typical + Internet-connected UNIX hosts. + . + Reliable: qmail's straight-paper-path philosophy guarantees that a message, + once accepted into the system, will never be lost. qmail also supports + maildir, a new, super-reliable user mailbox format. Maildirs, unlike mbox + files and mh folders, won't be corrupted if the system crashes during + delivery. Even better, not only can a user safely read his mail over NFS, + but any number of NFS clients can deliver mail to him at the same time. + . + Efficient: On a Pentium, qmail can easily sustain 200000 local messages per + day---that's separate messages injected and delivered to mailboxes in a real + test! Although remote deliveries are inherently limited by the slowness of + DNS and SMTP, qmail overlaps 20 simultaneous deliveries by default, so it + zooms quickly through mailing lists. + . + Simple: qmail is vastly smaller than any other Internet MTA. Some reasons why: + (1) Other MTAs have separate forwarding, aliasing, and mailing list + mechanisms. qmail has one simple forwarding mechanism that lets users handle + their own mailing lists. + (2) Other MTAs offer a spectrum of delivery modes, from fast+unsafe to + slow+queued. qmail-send is instantly triggered by new items in the queue, so + the qmail system has just one delivery mode: fast+queued. + (3) Other MTAs include, in effect, a specialized version of inetd that + watches the load average. qmail's design inherently limits the machine load, + so qmail-smtpd can safely run from your system's inetd. + . + Replacement for sendmail: qmail supports host and user masquerading, full + host hiding, virtual domains, null clients, list-owner rewriting, relay + control, double-bounce recording, arbitrary RFC 822 address lists, cross-host + mailing list loop detection, per-recipient checkpointing, downed host + backoffs, independent message retry schedules, etc. In short, it's up to + speed on modern MTA features. qmail also includes a drop-in ``sendmail'' + wrapper so that it will be used transparently by your current UAs. + +Package: qmail-src +Architecture: all +Section: mail +Depends: dpkg-dev, fakeroot | sudo +Priority: extra +Description: Source only package for building qmail binary package + qmail is a secure Secure, reliable, efficient, simple mail transport system. + . + Dan Bernstein (qmail's author) only gives permission for qmail to be + distributed in source form, or binary for by approval. This package + has been put together to allow people to easily build a qmail binary + package for themselves, from source. + . + If there is a package called qmail available, then Dan has approved the + binary version of the package for approval, so you might as well install + that and save yourself some effort. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..4ba0bb1 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,33 @@ +Qmail is Copyright 1996, D. J. Bernstein. +-- + +Unfortunately (from SPI's point of view) Dan Bernstein does not include +a conventional licence for qmail, so instead you must examine his published +documentation on the subject to determine your rights to use his software. + +The right to distribute unmodified copies of the qmail-1.01 source is granted +here: + + ftp://koobera.math.uic.edu/www/qmail/dist.html + +In addition, Dan will approve distribution of specific binary packages, which +he should have done for the Debian package that contains this file by the time +you get to read it. + +He also states (see ftp://koobera.math.uic.edu/www/softwarelaw.html) +the following: + + What does all this mean for the free software world? Once you've legally + downloaded a program, you can compile it. You can run it. You can modify + it. You can distribute your patches for other people to use. If you think + you need a license from the copyright holder, you've been bamboozled by + Microsoft. As long as you're not distributing the software, you have + nothing to worry about. + +Of course, this only applies to people under US jurisdiction, but Dan +claims that similar laws are in effect in most of the countries that +take any notice of copyright, so I suppose that one can assume that +this encapsulates his wishes on the subject. + +Cheers, Phil. + diff --git a/debian/debianize-binary-tree b/debian/debianize-binary-tree new file mode 100644 index 0000000..72dbf6f --- /dev/null +++ b/debian/debianize-binary-tree @@ -0,0 +1,27 @@ +#!/bin/bash + +set -e + +function startofpath() { + if [ -f usr/man/man8/`basename $1`.8 ]; then + echo usr/sbin + elif [ -f usr/man/man1/`basename $1`.1 ]; then + echo usr/bin + else + case `basename $1` in + elq|pinq|qail|qlist2) echo usr/bin;; + datemail|predate|qmail-home|qsmhook|sendmail) echo usr/sbin;; + *) echo 1>&2 Cannot determine if $1 belongs in sbin or bin;exit 2;; + esac + fi +} + +test -d debian/tmp || (echo "Could not find debian/tmp directory.";exit 1) + +cd debian/tmp + +for f in var/qmail/bin/*; do + mv $f `startofpath $f` +done + +rmdir var/qmail/bin || ( echo "Could not remove qmail/bin directory!"; exit 3) diff --git a/debian/debianize-source-tree b/debian/debianize-source-tree new file mode 100644 index 0000000..648e8ab --- /dev/null +++ b/debian/debianize-source-tree @@ -0,0 +1,53 @@ +#!/bin/bash + +set -e + +if [ ! -f qmail-start.c ]; then + echo "This program must be run from the qmail source directory!" + exit 1 +fi + +#if [ ! -f qmail-send.8 ]; then +# make man +#fi + +for f in `fgrep -l QMAIL/bin *.sh`; do + mv $f $f.$$ && sed -e "s,QMAIL/bin/predate,/usr/sbin/predate,g" \ + -e "s,QMAIL/bin/sendmail,/usr/sbin/sendmail,g" \ + -e "s,QMAIL/bin/maildir2mbox,/usr/bin/maildir2mbox,g" \ + -e "s,QMAIL/bin/qmail-inject,/usr/sbin/qmail-inject,g" \ + -e "s,QMAIL/bin/qlist,/usr/bin/qlist,g" \ + -e "s,QMAIL/bin:,/usr/bin:/usr/sbin,g" $f.$$ >$f && \ + rm $f.$$ +done + +if ls *.$$ >/dev/null 2>&1; then + echo Error during debianization! Some temporary files remain. + exit 1 +fi + +if fgrep QMAIL/bin *.sh; then + echo Error during debianization! Some .sh files still have relative paths. + exit 2 +fi + + +if fgrep -q nofiles conf-groups; then + if sed conf-groups.$$ -e '2s/nofiles/nogroup/' && \ + mv -f conf-groups.$$ conf-groups; then + echo The file conf-groups was auto-edited. + echo Please eyeball it to see if the editing was done correctly. + echo --- begin conf-groups ---- + cat conf-groups + echo --- end conf-groups ---- + echo + else + echo Error during auto-editing of conf-groups! + exit 3 + fi +fi + +if grep '\"bin/' *.c | grep -v 'qmail-\(check\|setup\)' >/dev/null; then + echo Remember to replace the relative paths by full paths in the following files: + grep '\"bin/' *.c | grep -v 'qmail-\(check\|setup\)' +fi diff --git a/debian/postinst b/debian/postinst new file mode 100644 index 0000000..8014036 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,57 @@ +#!/usr/bin/perl + +require DebianNet; + +$| = 1; + +my $action = shift; + +if ( $action eq 'configure' or $action eq 'abort-upgrade' or $action eq 'abort-deconfigure' or $action eq 'abort-remove' ) { + my $old_version = shift; + + DebianNet::add_service('smtp stream tcp nowait qmaild /usr/sbin/tcpd /usr/bin/tcp-env /usr/sbin/qmail-smtpd', + "MAIL"); + DebianNet::enable_service('smtp'); + + # Add rc?.d links + system('update-rc.d qmail defaults >/dev/null'); + + if ( ! -r '/var/qmail/control/me' ) { + system("/usr/sbin/qmailconfig"); + } + + if ( !defined($old_version) || $old_version eq '' ) { + print <<'EOT1'; + +By default qmail will deliver mail to ~/Mailbox instead of /var/spool/mail. +To learn how to deal with this, read the file /usr/doc/qmail/INSTALL.mbox. +Disregard the warning in INSTALL.mbox about qmail-alias using flock to lock +the mailbox. + +If you were using sendmail (or smail) previously, you will want to read +the "qmail-upgrade" manpage, which details user-visible differences between +sendmail and qmail. + +If you are new to qmail, you will want to at least peruse the qmail FAQ, which +can be found in /usr/doc/qmail + +EOT1 + print 'Do you want to start qmail now? [y/N] '; + my $answer = ; + if ( $answer =~ /^\s*[yY]/ ) { + system("/etc/init.d/qmail start"); + } + else { + print <<'EOT2'; +Qmail will be started at the next reboot. Or you can start qmail manually when +you are ready by typing (as root) "/etc/init.d/qmail start" at a shell prompt. +EOT2 + } + } + else { + system("/etc/init.d/qmail start"); + } +} + +exit 0; + diff --git a/debian/postrm b/debian/postrm new file mode 100644 index 0000000..0e5686f --- /dev/null +++ b/debian/postrm @@ -0,0 +1,18 @@ +#!/usr/bin/perl + +$| = 1; + +$action = shift @ARGV; + +if ( $action eq 'purge' ) { + system('update-rc.d qmail remove >/dev/null'); + system("rm -rf /var/qmail"); + system("rm -rf /etc/qmail"); + exit $?; +} + +if ( $action eq 'abort-install' ) { + # Put back old inetd.conf (?) + exit 0 +} + diff --git a/debian/preinst b/debian/preinst new file mode 100644 index 0000000..bfacc91 --- /dev/null +++ b/debian/preinst @@ -0,0 +1,218 @@ +#!/usr/bin/perl + +require 5.002; +use strict 'subs'; +use strict 'barewords'; +use English; + +sub check_uid($$$$$$) { + my ($name, $uid, $gid, $gecos, $home, $shell) = @_; + my $ok = 1; + + print "Checking user $name (uid $uid, gid $gid, homedir $home)... "; + @name_entry = getpwnam("$name"); + if ( @name_entry == () ) { + my @uid_entry = getpwuid($uid); + if ( @uid_entry == () ) { + system("adduser --system --quiet --home $home --gid $gid --uid $uid --gecos \'$gecos\' $name >/dev/null 2>&1"); + if ( $? != 0 ) { + print "\n Error while adding user $name!\n"; + $ok = 0; + } + else { + print "added.\n"; + } + system("chsh -s $shell $name"); + } + else { + print "error!\n Uid $uid is being used by user $uid_entry[0]\n"; + $ok = 0; + } + } + else { + if ( $name_entry[3] != $gid ) { + print "error!\n" if $ok; + print " User $name has primary group $name_entry[3] instead of $gid\n"; + $ok = 0; + } + if ( $name_entry[2] != $uid ) { + print "error!\n" if $ok; + print " User $name has uid $name_entry[2] instead of $uid\n"; + $ok = 0; + } + if ( $name_entry[7] ne $home ) { + print "error!\n" if $ok; + print " User $name has home directory $name_entry[7] instead of $home\n"; + $ok = 0; + } + if ( $ok ) { + print "ok.\n"; + } + } + return $ok; +} + +sub check_gid($$@) { + my ($name, $gid, @members) = @_; + my $ok = 1; + + print "Checking group $name (gid $gid)... "; + @name_entry = getgrnam($name); + if ( @name_entry == () ) { + my @gid_entry = getgrgid($gid); + if ( @gid_entry == () ) { + system("addgroup --quiet --gid $gid $name"); + if ( $? != 0 ) { + print "\n Error while adding group $name\n"; + $ok = 0; + } + else { + print "added.\n"; + } + } + else { + print "error!\n Gid $gid is being used by group $gid_entry[0]\n"; + $ok = 0; + } + } + else { + if ( $name_entry[2] != $gid ) { + print "error!\n Group $name has gid $name_entry[2] instead of $gid\n"; + $ok = 0; + } + if ( $ok ) { + print "ok.\n"; + } + } + return $ok; +} + +sub is_qmail_installed { + my $qmail_installed = 0; + + print "Checking if qmail is already installed on this computer... "; + + $qmail_home = ''; + if ( -d '/var/qmail' ) { + print "\n Found /var/qmail directory"; + $qmail_home = '/var/qmail'; + $qmail_installed = 1; + } + else { + $qmail_home = `qmail-home`; + if ( $qmail_home ne '') { + print "\n Found qmail home directory at $qmail_home (using qmail-home program)"; + $qmail_installed = 1; + } + } + + if ( -d '/var/spool/qmail' ) { + print "\n Found qmail spool directory at /var/spool/qmail"; + $qmail_installed = 1; + } + if ( -d '/etc/qmail' ) { + print "\n Found qmail control directory at /etc/qmail"; + $qmail_installed = 1; + } + + if ( (-r '/etc/inetd.conf') and `fgrep -q qmail-smtpd /etc/inetd.conf` ) { + print "\n Found reference to qmail-smtpd in /etc/inetd.conf"; + $qmail_installed = 1; + } + if ( (-r '/etc/xinetd.conf') and `fgrep -q qmail-smtpd /etc/xinetd.conf` ) { + print "\n Found reference to qmail-smtpd in /etc/xinetd.conf"; + $qmail_installed = 1; + } + + if ( -x '/etc/init.d/qmail' ) { + print "\n Found /etc/init.d/qmail script"; + $qmail_installed = 1; + } + elsif ( `fgrep -q qmail-start /etc/init.d/*` ) { + print "\n Found reference to qmail-start in /etc/init.d directory"; + $qmail_installed = 1; + } + if ( -x '/etc/rc.local' and `fgrep -q qmail-start /etc/rc.local` ) { + print "\n Found reference to qmail-start in /etc/rc.local"; + $qmail_installed = 1; + } + + if ( `killall -0 qmail-send >/dev/null 2>&1` ) { + print "\n Found qmail-send process running"; + $qmail_installed = 1; + } + + print 'no.' unless $qmail_installed; + print "\n"; + return $qmail_installed; +} + + +$| = 1; + +$action = shift; + +if ( $action eq 'install' ) { + $old_version = shift; + if ( ! defined $old_version || $old_version eq '' ) { + print "First installation of the Debian qmail package...\n"; + # Check if a non-Debian qmail is installed... + if ( is_qmail_installed() ) { + print "Please remove your copy of qmail before installing the qmail Debian package.\n\n"; + exit 1; + } + # Check for qmail uids and gids + my $errors; + $errors++ unless check_gid('qmail', 70, ()); + #$errors++ unless check_gid('nogroup', 65534, ()); + + $errors++ unless check_uid('alias', 70, 65534, 'qmail alias', '/var/qmail/alias', '/bin/sh'); + $errors++ unless check_uid('qmaild', 71, 65534, 'qmail daemon', '/var/qmail', '/bin/sh'); + $errors++ unless check_uid('qmails', 72, 70, 'qmail send', '/var/qmail', '/bin/sh'); + $errors++ unless check_uid('qmailr', 73, 70, 'qmail remote', '/var/qmail', '/bin/sh'); + $errors++ unless check_uid('qmailq', 74, 70, 'qmail queue', '/var/qmail', '/bin/sh'); + $errors++ unless check_uid('qmaill', 75, 65534, 'qmail log', '/var/qmail', '/bin/sh'); + $errors++ unless check_uid('qmailp', 76, 65534, 'qmail pw', '/var/qmail', '/bin/sh'); + #$errors++ unless check_uid('nobody', 65534, 65534, 'nobody', '/tmp', '/bin/sh'); + + if ( $errors ) { + print "\n$errors entries have errors. Please correct these errors and reinstall qmail.\n"; + exit 2; + } + } + + # Make sure there are no smtp entries in /etc/inetd.conf + # Kludge around smail buggy /etc/inetd.conf handling. (Grr.) + my $fixed_smail = 0; + my $found_commented = 0; + my $found_uncommented = 0; + my $new_inetd = "/etc/inetd.conf.qmail-preinst.$$"; + open I, '$new_inetd" or die "Could not create $new_inetd\n"; + while () { + if ( m|^\# *smtp\s+.*/usr/sbin/in.smtpd.*\(will be restored by smail postinst\)\s*$| ) { + $fixed_smail = 1; + next; + } elsif ( m/^\# *smtp\s+/ ) { + $found_commented= 1; + } elsif ( m/^smtp\s+/ ) { + $found_uncommented= 1; + } + print N or die "Cannot write to $new_inetd\n"; + } + close N or die "Could not close $new_inetd\n"; + close I or die "Could not close /etc/inetd.conf\n"; + if ( $found_commented or $found_uncommented ) { + print "Your /etc/inetd.conf already containts entries for the SMTP service.\n"; + print "Please remove all SMTP entries from /etc/inetd.conf (even those commented out)\n"; + print "and reinstall the qmail package.\n\n"; + exit 1; + } + if ( $fixed_smail ) { + print "Removing commented smtp entry left by buggy version of smail postinst... "; + rename "$new_inetd", '/etc/inetd.conf' or die "failed!\n"; + print "done.\n"; + } +} + +exit 0; diff --git a/debian/prerm b/debian/prerm new file mode 100644 index 0000000..fa2406e --- /dev/null +++ b/debian/prerm @@ -0,0 +1,49 @@ +#!/usr/bin/perl + +require DebianNet; + +$| = 1; + +$action = shift; + +if ( $action eq 'failed-upgrade' ) { + exit 1; +} + +if ( $action eq 'upgrade' or $action eq 'deconfigure' ) { + system("/etc/init.d/qmail stop"); + exit $? if $?; + DebianNet::disable_service('smtp'); + exit 0; +} + +if ( $action eq 'remove' ) { + # Ask for confirmation if there are still messages in qmail's queue. + $mesg_inqueue = `find /var/qmail/queue/mess -type f -print | wc -l`; + $mesg_inqueue =~ s/\s//g; + $mesg_unprocessed = `find /var/qmail/queue/todo -type f -print | wc -l`; + $mesg_unprocessed =~ s/\s//g; + + if ( $mesg_inqueue != 0 || $mesg_unprocessed != 0 ) { + print STDERR <; + exit 1 unless $answer =~ /^\s*[yY]/; + } + + # Remove qmail-smtpd from inetd.conf + DebianNet::remove_service('smtp\s+stream\s+tcp\s+nowait\s+qmaild.*/usr/sbin/qmail-smtpd'); + + # Stop qmail process. + system("/etc/init.d/qmail stop"); + exit $? if $?; +} + +exit 0; diff --git a/debian/qmail b/debian/qmail new file mode 100644 index 0000000..55e7faa --- /dev/null +++ b/debian/qmail @@ -0,0 +1,90 @@ +#!/bin/sh +# +# /etc/init.d/qmail : start or stop the qmail mail subsystem. +# +# Written by Christian Hudon + +# +# Configuration +# + + +# set default delivery method + +alias_empty="|/usr/sbin/qmail-procmail" # procmail delivery to /var/spool/mail +#alias_empty="./Maildir/" # This uses qmail prefered ~/Maildir/ directory +#alias_empty="./Mailbox" # This uses Mailbox file in users $HOME + +logger="splogger qmail" +#logger="|accustamp >>/var/log/qmail.log" # If you have accustamp installed. +#logger=">>/var/log/qmail.log" # Does not give timing info. + +# If you uncommented one of the lines that appends to /var/log/qmail.log, you +# need to uncomment the following two lines. +#touch /var/log/qmail.log +#chown qmaill /var/log/qmail.log + +# +# End of configuration +# + +test -x /usr/sbin/qmail-start || exit 0 +test -x /usr/sbin/qmail-send || exit 0 + +case "$1" in + start) + echo -n "Starting mail-transfer agent: qmail" + sh -c "start-stop-daemon --start --quiet \ + --exec /usr/sbin/qmail-send \ + --startas /usr/sbin/qmail-start -- \"$alias_empty\" $logger &" + echo "." + ;; + stop) + echo -n "Stopping mail-transfer agent: qmail" + if [ "`pidof /usr/sbin/qmail-send`" ] ; then + start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/qmail-send + + # Wait until the timeout for qmail processes to die. + count=120 + numdots=0 + while ([ $count != 0 ]) do + let count=$count-1 + if [ "`pidof /usr/sbin/qmail-send`" ] ; then + echo -n . + let numdots=$numdots+1 + sleep 1 + else + count=0 + fi + done + + # If it's not dead yet, kill it. +# if [ "`pidof /usr/sbin/qmail-send`" ] ; then +# echo -n " TIMEOUT!" +# kill -KILL `pidof /usr/sbin/qmail-send` +# else + case $numdots in + 0) echo "." ;; + 1) echo ;; + *) echo " done." ;; + esac +# fi + else + echo " not running."; + fi + + ;; + restart) + $0 stop + $0 start + ;; + reload) + echo "Reloading 'locals' and 'virtualdomains' control files." + start-stop-daemon --stop --quiet --oknodo --signal HUP --exec /usr/sbin/qmail-send + ;; + *) + echo 'Usage: /etc/init.d/qmail {start|stop|restart|reload}' + exit 1 +esac + +exit 0 diff --git a/debian/qmail-src.README b/debian/qmail-src.README new file mode 100644 index 0000000..f6250c3 --- /dev/null +++ b/debian/qmail-src.README @@ -0,0 +1,9 @@ +This is a feeble little package that just contains a script to unpack +and build qmail from source, so that we don't violate Dan Bernstein's +`no binary distribution, without approval' restriction. + +Hopefully this will help allow a binary package to be approved, but +even if it doesn't it means that Debian users can use qmail without to +much effort. + +Philip Hands diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..30fd481 --- /dev/null +++ b/debian/rules @@ -0,0 +1,100 @@ +#!/usr/bin/make -f +# + +build: + $(checkdir) + if fgrep QMAIL/bin *.sh >/dev/null; then \ + echo >&2 "You must run debian/debianize-source-tree first!"; \ + exit 1; \ + fi + $(MAKE) man + $(MAKE) + touch build + +clean: + $(checkdir) + -rm -f build + -$(MAKE) clean + -rm `find . -name "*~"` + -rm -rf debian/files + -rm -rf `find debian/* ! \( -name CVS -prune \) -type d -prune` + +binary-indep: checkroot build + $(checkdir) + +binary-arch: checkroot build + $(checkdir) + -rm -rf debian/files debian/substvars debian/tmp + -rm -rf `find ! \( -name CVS -prune \) debian/* -type d -prune` +# Make the directory tree and copy qmail files. + install -d debian/tmp/etc/init.d \ + debian/tmp/usr/doc/qmail \ + debian/tmp/var/qmail \ + debian/tmp/var/spool \ + debian/tmp/usr/bin \ + debian/tmp/usr/sbin \ + debian/tmp/usr/lib \ + debian/qmail-src/usr/bin \ + debian/qmail-src/usr/src/qmail-src \ + debian/qmail-src/usr/doc/qmail-src + ./install `pwd`/debian/tmp/var/qmail + mv debian/tmp/var/qmail/queue debian/tmp/var/spool/qmail + mv debian/tmp/var/qmail/control debian/tmp/etc/qmail + (cd debian/tmp/var/qmail && ln -s /var/spool/qmail queue) + (cd debian/tmp/var/qmail && ln -s /etc/qmail control) + mv debian/tmp/var/qmail/man debian/tmp/usr/man && \ + rm -r debian/tmp/usr/man/cat? +# Move /var/qmail/bin programs to either /usr/bin or /usr/sbin + bash debian/debianize-binary-tree +# Create /usr/lib/sendmail symlink for backward compatibility. + (cd debian/tmp/usr/lib && ln -s ../sbin/sendmail) +# Copy qmailconfig and its helper programs... + install -o root -g root -m 755 dnsfq debian/tmp/usr/sbin/qmailconfig-dnsfq + install -o root -g root -m 755 dnsip debian/tmp/usr/sbin/qmailconfig-dnsip + install -o root -g root -m 755 ipmeprint debian/tmp/usr/sbin/qmailconfig-ipmeprint + install -o root -g root -m 755 dnsptr debian/tmp/usr/sbin/qmailconfig-dnsptr +# (This one is a bit of a kludge...) +# Appears to be defunct in 1.03 +# sed -e 's|./hostname|hostname|g' \ +# -e 's|\./dnsptr|/usr/sbin/qmailconfig-dnsptr|g' \ +# -e 's|\./dnsip|/usr/sbin/qmailconfig-dnsip|g' \ +# -e 's|\./dnsfq|/usr/sbin/qmailconfig-dnsfq|g' \ +# -e 's|\./ipmeprint|/usr/sbin/qmailconfig-ipmeprint|g' \ +# qmail-config >debian/tmp/usr/sbin/qmailconfig +# chmod 755 debian/tmp/usr/sbin/qmailconfig +# Install /etc/init.d/qmail + install -o root -g root -m 755 debian/qmail debian/tmp/etc/init.d/qmail +# Copy /usr/doc/qmail files. + install -o root -g root -m 644 debian/changelog debian/tmp/usr/doc/qmail/changelog.Debian + rm -rf debian/tmp/var/qmail/doc +# do the stuff for qmail-src + cp ../qmail_1.03.orig.tar.gz ../qmail_1.03-1.diff.gz \ + ../qmail_1.03-1.dsc debian/qmail-src/usr/src/qmail-src + install -m 755 debian/build-qmail debian/qmail-src/usr/bin + install debian/copyright debian/qmail-src/usr/doc/qmail-src + install debian/qmail-src.README debian/qmail-src/usr/doc/qmail-src/README + debstd -m CHANGES BLURB* FAQ INTERNALS README \ + SECURITY INSTALL.* PIC.* REMOVE.* SYSDEPS THANKS THOUGHTS \ + TODO SENDMAIL TEST.* UPGRADE +# Correct permissions of binaries and manpages... + chmod go+rx debian/tmp/usr/*bin/* + chown -R root.root debian/tmp/usr/man + + dpkg-gencontrol -pqmail +# And finally, build the Debian package! + dpkg --build debian/tmp .. + +define checkdir + test -f qmail-send.c -a -f debian/rules +endef + +binary: binary-indep binary-arch + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +checkroot: + $(checkdir) + test "`whoami`" = root + +.PHONY: binary binary-arch binary-indep clean checkroot diff --git a/debian/substvars b/debian/substvars new file mode 100644 index 0000000..361c161 --- /dev/null +++ b/debian/substvars @@ -0,0 +1 @@ +shlibs:Depends=libc5 (>= 5.4.0-0) diff --git a/debian/suid b/debian/suid new file mode 100644 index 0000000..cfb931e --- /dev/null +++ b/debian/suid @@ -0,0 +1 @@ +off diff --git a/elq.sh b/elq.sh index 7e20262..22a327d 100644 --- a/elq.sh +++ b/elq.sh @@ -1 +1 @@ -QMAIL/bin/maildir2mbox && exec elm ${1+"$@"} +/usr/bin/maildir2mbox && exec elm ${1+"$@"} diff --git a/hier.c b/hier.c index 28e568d..9d6441b 100644 --- a/hier.c +++ b/hier.c @@ -6,7 +6,8 @@ char buf[100 + FMT_ULONG]; -void dsplit(base,uid,mode) +void dsplit(home,base,uid,mode) +char *home; char *base; /* must be under 100 bytes */ int uid; int mode; @@ -14,7 +15,7 @@ int mode; char *x; unsigned long i; - d(auto_qmail,base,uid,auto_gidq,mode); + d(home,base,uid,auto_gidq,mode); for (i = 0;i < auto_split;++i) { x = buf; @@ -23,230 +24,234 @@ int mode; x += fmt_ulong(x,i); *x = 0; - d(auto_qmail,buf,uid,auto_gidq,mode); + d(home,buf,uid,auto_gidq,mode); } } -void hier() +void hier(home) +char *home; { - h(auto_qmail,auto_uido,auto_gidq,0755); - - d(auto_qmail,"control",auto_uido,auto_gidq,0755); - d(auto_qmail,"users",auto_uido,auto_gidq,0755); - d(auto_qmail,"bin",auto_uido,auto_gidq,0755); - d(auto_qmail,"boot",auto_uido,auto_gidq,0755); - d(auto_qmail,"doc",auto_uido,auto_gidq,0755); - d(auto_qmail,"man",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/cat1",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/cat5",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/cat7",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/cat8",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/man1",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/man5",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/man7",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/man8",auto_uido,auto_gidq,0755); - - d(auto_qmail,"alias",auto_uida,auto_gidq,02755); - - d(auto_qmail,"queue",auto_uidq,auto_gidq,0750); - d(auto_qmail,"queue/pid",auto_uidq,auto_gidq,0700); - d(auto_qmail,"queue/intd",auto_uidq,auto_gidq,0700); - d(auto_qmail,"queue/todo",auto_uidq,auto_gidq,0750); - d(auto_qmail,"queue/bounce",auto_uids,auto_gidq,0700); - - dsplit("queue/mess",auto_uidq,0750); - dsplit("queue/info",auto_uids,0700); - dsplit("queue/local",auto_uids,0700); - dsplit("queue/remote",auto_uids,0700); - - d(auto_qmail,"queue/lock",auto_uidq,auto_gidq,0750); - z(auto_qmail,"queue/lock/tcpto",1024,auto_uidr,auto_gidq,0644); - z(auto_qmail,"queue/lock/sendmutex",0,auto_uids,auto_gidq,0600); - p(auto_qmail,"queue/lock/trigger",auto_uids,auto_gidq,0622); - - c(auto_qmail,"boot","home",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","home+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","proc",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","proc+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm1",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm1+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm2",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm2+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm3",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm3+df",auto_uido,auto_gidq,0755); - - c(auto_qmail,"doc","FAQ",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","UPGRADE",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","SENDMAIL",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.alias",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.ctl",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.ids",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.maildir",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.mbox",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.vsm",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","TEST.deliver",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","TEST.receive",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","REMOVE.sendmail",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","REMOVE.binmail",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2alias",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2ext",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2local",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2rem",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2virt",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.nullclient",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.relaybad",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.relaygood",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.rem2local",auto_uido,auto_gidq,0644); - - c(auto_qmail,"bin","qmail-queue",auto_uidq,auto_gidq,04711); - c(auto_qmail,"bin","qmail-lspawn",auto_uido,auto_gidq,0700); - c(auto_qmail,"bin","qmail-start",auto_uido,auto_gidq,0700); - c(auto_qmail,"bin","qmail-getpw",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-local",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-remote",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-rspawn",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-clean",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-send",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","splogger",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-newu",auto_uido,auto_gidq,0700); - c(auto_qmail,"bin","qmail-newmrh",auto_uido,auto_gidq,0700); - c(auto_qmail,"bin","qmail-pw2u",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-inject",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","predate",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","datemail",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","mailsubj",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-showctl",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-qread",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-qstat",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-tcpto",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-tcpok",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-pop3d",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-popup",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-qmqpc",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-qmqpd",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-qmtpd",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-smtpd",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","sendmail",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","tcp-env",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qreceipt",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qsmhook",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qbiff",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","forward",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","preline",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","condredirect",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","bouncesaying",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","except",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","maildirmake",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","maildir2mbox",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","maildirwatch",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qail",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","elq",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","pinq",auto_uido,auto_gidq,0755); - - c(auto_qmail,"man/man5","addresses.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","addresses.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","envelopes.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","envelopes.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","maildir.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","maildir.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","mbox.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","mbox.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","dot-qmail.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","dot-qmail.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","qmail-control.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","qmail-control.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","qmail-header.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","qmail-header.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","qmail-log.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","qmail-log.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","qmail-users.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","qmail-users.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","tcp-environ.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","tcp-environ.0",auto_uido,auto_gidq,0644); - - c(auto_qmail,"man/man7","forgeries.7",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat7","forgeries.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man7","qmail-limits.7",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat7","qmail-limits.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man7","qmail.7",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat7","qmail.0",auto_uido,auto_gidq,0644); - - c(auto_qmail,"man/man1","forward.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","forward.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","condredirect.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","condredirect.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","bouncesaying.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","bouncesaying.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","except.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","except.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","maildirmake.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","maildirmake.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","maildir2mbox.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","maildir2mbox.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","maildirwatch.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","maildirwatch.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","mailsubj.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","mailsubj.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","qreceipt.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","qreceipt.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","qbiff.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","qbiff.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","preline.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","preline.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","tcp-env.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","tcp-env.0",auto_uido,auto_gidq,0644); - - c(auto_qmail,"man/man8","qmail-local.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-local.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-lspawn.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-lspawn.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-getpw.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-getpw.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-remote.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-remote.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-rspawn.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-rspawn.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-clean.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-clean.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-send.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-send.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-start.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-start.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","splogger.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","splogger.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-queue.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-queue.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-inject.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-inject.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-showctl.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-showctl.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-newmrh.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-newmrh.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-newu.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-newu.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-pw2u.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-pw2u.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qread.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qread.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qstat.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qstat.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-tcpok.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-tcpok.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-tcpto.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-tcpto.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-pop3d.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-pop3d.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-popup.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-popup.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qmqpc.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qmqpc.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qmqpd.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qmqpd.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qmtpd.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qmtpd.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-smtpd.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-smtpd.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-command.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-command.0",auto_uido,auto_gidq,0644); + if (!home) + home = auto_qmail; + + h(home,auto_uido,auto_gidq,0755); + + d(home,"control",auto_uido,auto_gidq,0755); + d(home,"users",auto_uido,auto_gidq,0755); + d(home,"bin",auto_uido,auto_gidq,0755); + d(home,"boot",auto_uido,auto_gidq,0755); + d(home,"doc",auto_uido,auto_gidq,0755); + d(home,"man",auto_uido,auto_gidq,0755); + d(home,"man/cat1",auto_uido,auto_gidq,0755); + d(home,"man/cat5",auto_uido,auto_gidq,0755); + d(home,"man/cat7",auto_uido,auto_gidq,0755); + d(home,"man/cat8",auto_uido,auto_gidq,0755); + d(home,"man/man1",auto_uido,auto_gidq,0755); + d(home,"man/man5",auto_uido,auto_gidq,0755); + d(home,"man/man7",auto_uido,auto_gidq,0755); + d(home,"man/man8",auto_uido,auto_gidq,0755); + + d(home,"alias",auto_uida,auto_gidq,02755); + + d(home,"queue",auto_uidq,auto_gidq,0750); + d(home,"queue/pid",auto_uidq,auto_gidq,0700); + d(home,"queue/intd",auto_uidq,auto_gidq,0700); + d(home,"queue/todo",auto_uidq,auto_gidq,0750); + d(home,"queue/bounce",auto_uids,auto_gidq,0700); + + dsplit(home,"queue/mess",auto_uidq,0750); + dsplit(home,"queue/info",auto_uids,0700); + dsplit(home,"queue/local",auto_uids,0700); + dsplit(home,"queue/remote",auto_uids,0700); + + d(home,"queue/lock",auto_uidq,auto_gidq,0750); + z(home,"queue/lock/tcpto",1024,auto_uidr,auto_gidq,0644); + z(home,"queue/lock/sendmutex",0,auto_uids,auto_gidq,0600); + p(home,"queue/lock/trigger",auto_uids,auto_gidq,0622); + + c(home,"boot","home",auto_uido,auto_gidq,0755); + c(home,"boot","home+df",auto_uido,auto_gidq,0755); + c(home,"boot","proc",auto_uido,auto_gidq,0755); + c(home,"boot","proc+df",auto_uido,auto_gidq,0755); + c(home,"boot","binm1",auto_uido,auto_gidq,0755); + c(home,"boot","binm1+df",auto_uido,auto_gidq,0755); + c(home,"boot","binm2",auto_uido,auto_gidq,0755); + c(home,"boot","binm2+df",auto_uido,auto_gidq,0755); + c(home,"boot","binm3",auto_uido,auto_gidq,0755); + c(home,"boot","binm3+df",auto_uido,auto_gidq,0755); + + c(home,"doc","FAQ",auto_uido,auto_gidq,0644); + c(home,"doc","UPGRADE",auto_uido,auto_gidq,0644); + c(home,"doc","SENDMAIL",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL.alias",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL.ctl",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL.ids",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL.maildir",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL.mbox",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL.vsm",auto_uido,auto_gidq,0644); + c(home,"doc","TEST.deliver",auto_uido,auto_gidq,0644); + c(home,"doc","TEST.receive",auto_uido,auto_gidq,0644); + c(home,"doc","REMOVE.sendmail",auto_uido,auto_gidq,0644); + c(home,"doc","REMOVE.binmail",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.local2alias",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.local2ext",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.local2local",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.local2rem",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.local2virt",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.nullclient",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.relaybad",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.relaygood",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.rem2local",auto_uido,auto_gidq,0644); + + c(home,"bin","qmail-queue",auto_uidq,auto_gidq,04711); + c(home,"bin","qmail-lspawn",auto_uido,auto_gidq,0700); + c(home,"bin","qmail-start",auto_uido,auto_gidq,0700); + c(home,"bin","qmail-getpw",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-local",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-remote",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-rspawn",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-clean",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-send",auto_uido,auto_gidq,0711); + c(home,"bin","splogger",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-newu",auto_uido,auto_gidq,0700); + c(home,"bin","qmail-newmrh",auto_uido,auto_gidq,0700); + c(home,"bin","qmail-pw2u",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-inject",auto_uido,auto_gidq,0755); + c(home,"bin","predate",auto_uido,auto_gidq,0755); + c(home,"bin","datemail",auto_uido,auto_gidq,0755); + c(home,"bin","mailsubj",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-showctl",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-qread",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-qstat",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-tcpto",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-tcpok",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-pop3d",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-popup",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-qmqpc",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-qmqpd",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-qmtpd",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-smtpd",auto_uido,auto_gidq,0755); + c(home,"bin","sendmail",auto_uido,auto_gidq,0755); + c(home,"bin","tcp-env",auto_uido,auto_gidq,0755); + c(home,"bin","qreceipt",auto_uido,auto_gidq,0755); + c(home,"bin","qsmhook",auto_uido,auto_gidq,0755); + c(home,"bin","qbiff",auto_uido,auto_gidq,0755); + c(home,"bin","forward",auto_uido,auto_gidq,0755); + c(home,"bin","preline",auto_uido,auto_gidq,0755); + c(home,"bin","condredirect",auto_uido,auto_gidq,0755); + c(home,"bin","bouncesaying",auto_uido,auto_gidq,0755); + c(home,"bin","except",auto_uido,auto_gidq,0755); + c(home,"bin","maildirmake",auto_uido,auto_gidq,0755); + c(home,"bin","maildir2mbox",auto_uido,auto_gidq,0755); + c(home,"bin","maildirwatch",auto_uido,auto_gidq,0755); + c(home,"bin","qail",auto_uido,auto_gidq,0755); + c(home,"bin","elq",auto_uido,auto_gidq,0755); + c(home,"bin","pinq",auto_uido,auto_gidq,0755); + + c(home,"man/man5","addresses.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","addresses.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","envelopes.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","envelopes.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","maildir.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","maildir.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","mbox.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","mbox.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","dot-qmail.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","dot-qmail.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","qmail-control.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","qmail-control.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","qmail-header.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","qmail-header.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","qmail-log.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","qmail-log.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","qmail-users.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","qmail-users.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","tcp-environ.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","tcp-environ.0",auto_uido,auto_gidq,0644); + + c(home,"man/man7","forgeries.7",auto_uido,auto_gidq,0644); + c(home,"man/cat7","forgeries.0",auto_uido,auto_gidq,0644); + c(home,"man/man7","qmail-limits.7",auto_uido,auto_gidq,0644); + c(home,"man/cat7","qmail-limits.0",auto_uido,auto_gidq,0644); + c(home,"man/man7","qmail.7",auto_uido,auto_gidq,0644); + c(home,"man/cat7","qmail.0",auto_uido,auto_gidq,0644); + + c(home,"man/man1","forward.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","forward.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","condredirect.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","condredirect.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","bouncesaying.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","bouncesaying.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","except.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","except.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","maildirmake.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","maildirmake.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","maildir2mbox.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","maildir2mbox.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","maildirwatch.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","maildirwatch.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","mailsubj.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","mailsubj.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","qreceipt.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","qreceipt.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","qbiff.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","qbiff.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","preline.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","preline.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","tcp-env.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","tcp-env.0",auto_uido,auto_gidq,0644); + + c(home,"man/man8","qmail-local.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-local.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-lspawn.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-lspawn.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-getpw.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-getpw.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-remote.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-remote.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-rspawn.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-rspawn.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-clean.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-clean.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-send.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-send.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-start.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-start.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","splogger.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","splogger.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-queue.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-queue.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-inject.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-inject.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-showctl.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-showctl.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-newmrh.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-newmrh.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-newu.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-newu.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-pw2u.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-pw2u.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-qread.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-qread.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-qstat.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-qstat.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-tcpok.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-tcpok.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-tcpto.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-tcpto.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-pop3d.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-pop3d.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-popup.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-popup.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-qmqpc.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-qmqpc.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-qmqpd.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-qmqpd.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-qmtpd.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-qmtpd.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-smtpd.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-smtpd.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-command.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-command.0",auto_uido,auto_gidq,0644); } diff --git a/home+df.sh b/home+df.sh index 7885cdf..591dc2e 100644 --- a/home+df.sh +++ b/home+df.sh @@ -4,6 +4,6 @@ # Using dot-forward to support sendmail-style ~/.forward files. # Using qmail-local to deliver messages to ~/Mailbox by default. -exec env - PATH="QMAIL/bin:$PATH" \ +exec env - PATH="/usr/bin:/usr/sbin$PATH" \ qmail-start '|dot-forward .forward ./Mailbox' splogger qmail diff --git a/home.sh b/home.sh index c96c02b..569e469 100644 --- a/home.sh +++ b/home.sh @@ -3,5 +3,5 @@ # Using splogger to send the log through syslog. # Using qmail-local to deliver messages to ~/Mailbox by default. -exec env - PATH="QMAIL/bin:$PATH" \ +exec env - PATH="/usr/bin:/usr/sbin$PATH" \ qmail-start ./Mailbox splogger qmail diff --git a/install-big.c b/install-big.c index df813df..d5594f9 100644 --- a/install-big.c +++ b/install-big.c @@ -6,7 +6,8 @@ char buf[100 + FMT_ULONG]; -void dsplit(base,uid,mode) +void dsplit(home,base,uid,mode) +char *home; char *base; /* must be under 100 bytes */ int uid; int mode; @@ -14,7 +15,7 @@ int mode; char *x; unsigned long i; - d(auto_qmail,base,uid,auto_gidq,mode); + d(home,base,uid,auto_gidq,mode); for (i = 0;i < auto_split;++i) { x = buf; @@ -23,263 +24,267 @@ int mode; x += fmt_ulong(x,i); *x = 0; - d(auto_qmail,buf,uid,auto_gidq,mode); + d(home,buf,uid,auto_gidq,mode); } } -void hier() +void hier(home) +char *home; { - h(auto_qmail,auto_uido,auto_gidq,0755); + if (!home) + home = auto_qmail; - d(auto_qmail,"control",auto_uido,auto_gidq,0755); - d(auto_qmail,"users",auto_uido,auto_gidq,0755); - d(auto_qmail,"bin",auto_uido,auto_gidq,0755); - d(auto_qmail,"boot",auto_uido,auto_gidq,0755); - d(auto_qmail,"doc",auto_uido,auto_gidq,0755); - d(auto_qmail,"man",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/cat1",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/cat5",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/cat7",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/cat8",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/man1",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/man5",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/man7",auto_uido,auto_gidq,0755); - d(auto_qmail,"man/man8",auto_uido,auto_gidq,0755); + h(home,auto_uido,auto_gidq,0755); - d(auto_qmail,"alias",auto_uida,auto_gidq,02755); + d(home,"control",auto_uido,auto_gidq,0755); + d(home,"users",auto_uido,auto_gidq,0755); + d(home,"bin",auto_uido,auto_gidq,0755); + d(home,"boot",auto_uido,auto_gidq,0755); + d(home,"doc",auto_uido,auto_gidq,0755); + d(home,"man",auto_uido,auto_gidq,0755); + d(home,"man/cat1",auto_uido,auto_gidq,0755); + d(home,"man/cat5",auto_uido,auto_gidq,0755); + d(home,"man/cat7",auto_uido,auto_gidq,0755); + d(home,"man/cat8",auto_uido,auto_gidq,0755); + d(home,"man/man1",auto_uido,auto_gidq,0755); + d(home,"man/man5",auto_uido,auto_gidq,0755); + d(home,"man/man7",auto_uido,auto_gidq,0755); + d(home,"man/man8",auto_uido,auto_gidq,0755); - d(auto_qmail,"queue",auto_uidq,auto_gidq,0750); - d(auto_qmail,"queue/pid",auto_uidq,auto_gidq,0700); - d(auto_qmail,"queue/intd",auto_uidq,auto_gidq,0700); - d(auto_qmail,"queue/todo",auto_uidq,auto_gidq,0750); - d(auto_qmail,"queue/bounce",auto_uids,auto_gidq,0700); + d(home,"alias",auto_uida,auto_gidq,02755); - dsplit("queue/mess",auto_uidq,0750); - dsplit("queue/info",auto_uids,0700); - dsplit("queue/local",auto_uids,0700); - dsplit("queue/remote",auto_uids,0700); + d(home,"queue",auto_uidq,auto_gidq,0750); + d(home,"queue/pid",auto_uidq,auto_gidq,0700); + d(home,"queue/intd",auto_uidq,auto_gidq,0700); + d(home,"queue/todo",auto_uidq,auto_gidq,0750); + d(home,"queue/bounce",auto_uids,auto_gidq,0700); - d(auto_qmail,"queue/lock",auto_uidq,auto_gidq,0750); - z(auto_qmail,"queue/lock/tcpto",1024,auto_uidr,auto_gidq,0644); - z(auto_qmail,"queue/lock/sendmutex",0,auto_uids,auto_gidq,0600); - p(auto_qmail,"queue/lock/trigger",auto_uids,auto_gidq,0622); + dsplit(home,"queue/mess",auto_uidq,0750); + dsplit(home,"queue/info",auto_uids,0700); + dsplit(home,"queue/local",auto_uids,0700); + dsplit(home,"queue/remote",auto_uids,0700); - c(auto_qmail,"boot","home",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","home+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","proc",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","proc+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm1",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm1+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm2",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm2+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm3",auto_uido,auto_gidq,0755); - c(auto_qmail,"boot","binm3+df",auto_uido,auto_gidq,0755); + d(home,"queue/lock",auto_uidq,auto_gidq,0750); + z(home,"queue/lock/tcpto",1024,auto_uidr,auto_gidq,0644); + z(home,"queue/lock/sendmutex",0,auto_uids,auto_gidq,0600); + p(home,"queue/lock/trigger",auto_uids,auto_gidq,0622); - c(auto_qmail,"doc","FAQ",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","UPGRADE",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","SENDMAIL",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.alias",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.ctl",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.ids",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.maildir",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.mbox",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","INSTALL.vsm",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","TEST.deliver",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","TEST.receive",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","REMOVE.sendmail",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","REMOVE.binmail",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2alias",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2ext",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2local",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2rem",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.local2virt",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.nullclient",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.relaybad",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.relaygood",auto_uido,auto_gidq,0644); - c(auto_qmail,"doc","PIC.rem2local",auto_uido,auto_gidq,0644); + c(home,"boot","home",auto_uido,auto_gidq,0755); + c(home,"boot","home+df",auto_uido,auto_gidq,0755); + c(home,"boot","proc",auto_uido,auto_gidq,0755); + c(home,"boot","proc+df",auto_uido,auto_gidq,0755); + c(home,"boot","binm1",auto_uido,auto_gidq,0755); + c(home,"boot","binm1+df",auto_uido,auto_gidq,0755); + c(home,"boot","binm2",auto_uido,auto_gidq,0755); + c(home,"boot","binm2+df",auto_uido,auto_gidq,0755); + c(home,"boot","binm3",auto_uido,auto_gidq,0755); + c(home,"boot","binm3+df",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-queue",auto_uidq,auto_gidq,04711); - c(auto_qmail,"bin","qmail-lspawn",auto_uido,auto_gidq,0700); - c(auto_qmail,"bin","qmail-start",auto_uido,auto_gidq,0700); - c(auto_qmail,"bin","qmail-getpw",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-local",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-remote",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-rspawn",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-clean",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-send",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","splogger",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-newu",auto_uido,auto_gidq,0700); - c(auto_qmail,"bin","qmail-newmrh",auto_uido,auto_gidq,0700); - c(auto_qmail,"bin","qmail-pw2u",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-inject",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","predate",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","datemail",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","mailsubj",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-showctl",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-qread",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-qstat",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-tcpto",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-tcpok",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-pop3d",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-popup",auto_uido,auto_gidq,0711); - c(auto_qmail,"bin","qmail-qmqpc",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-qmqpd",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-qmtpd",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qmail-smtpd",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","sendmail",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","tcp-env",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qreceipt",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qsmhook",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qbiff",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","forward",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","preline",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","condredirect",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","bouncesaying",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","except",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","maildirmake",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","maildir2mbox",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","maildirwatch",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","qail",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","elq",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","pinq",auto_uido,auto_gidq,0755); + c(home,"doc","FAQ",auto_uido,auto_gidq,0644); + c(home,"doc","UPGRADE",auto_uido,auto_gidq,0644); + c(home,"doc","SENDMAIL",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL.alias",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL.ctl",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL.ids",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL.maildir",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL.mbox",auto_uido,auto_gidq,0644); + c(home,"doc","INSTALL.vsm",auto_uido,auto_gidq,0644); + c(home,"doc","TEST.deliver",auto_uido,auto_gidq,0644); + c(home,"doc","TEST.receive",auto_uido,auto_gidq,0644); + c(home,"doc","REMOVE.sendmail",auto_uido,auto_gidq,0644); + c(home,"doc","REMOVE.binmail",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.local2alias",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.local2ext",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.local2local",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.local2rem",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.local2virt",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.nullclient",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.relaybad",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.relaygood",auto_uido,auto_gidq,0644); + c(home,"doc","PIC.rem2local",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","addresses.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","addresses.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","envelopes.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","envelopes.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","maildir.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","maildir.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","mbox.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","mbox.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","dot-qmail.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","dot-qmail.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","qmail-control.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","qmail-control.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","qmail-header.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","qmail-header.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","qmail-log.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","qmail-log.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","qmail-users.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","qmail-users.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man5","tcp-environ.5",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat5","tcp-environ.0",auto_uido,auto_gidq,0644); + c(home,"bin","qmail-queue",auto_uidq,auto_gidq,04711); + c(home,"bin","qmail-lspawn",auto_uido,auto_gidq,0700); + c(home,"bin","qmail-start",auto_uido,auto_gidq,0700); + c(home,"bin","qmail-getpw",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-local",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-remote",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-rspawn",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-clean",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-send",auto_uido,auto_gidq,0711); + c(home,"bin","splogger",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-newu",auto_uido,auto_gidq,0700); + c(home,"bin","qmail-newmrh",auto_uido,auto_gidq,0700); + c(home,"bin","qmail-pw2u",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-inject",auto_uido,auto_gidq,0755); + c(home,"bin","predate",auto_uido,auto_gidq,0755); + c(home,"bin","datemail",auto_uido,auto_gidq,0755); + c(home,"bin","mailsubj",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-showctl",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-qread",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-qstat",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-tcpto",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-tcpok",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-pop3d",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-popup",auto_uido,auto_gidq,0711); + c(home,"bin","qmail-qmqpc",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-qmqpd",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-qmtpd",auto_uido,auto_gidq,0755); + c(home,"bin","qmail-smtpd",auto_uido,auto_gidq,0755); + c(home,"bin","sendmail",auto_uido,auto_gidq,0755); + c(home,"bin","tcp-env",auto_uido,auto_gidq,0755); + c(home,"bin","qreceipt",auto_uido,auto_gidq,0755); + c(home,"bin","qsmhook",auto_uido,auto_gidq,0755); + c(home,"bin","qbiff",auto_uido,auto_gidq,0755); + c(home,"bin","forward",auto_uido,auto_gidq,0755); + c(home,"bin","preline",auto_uido,auto_gidq,0755); + c(home,"bin","condredirect",auto_uido,auto_gidq,0755); + c(home,"bin","bouncesaying",auto_uido,auto_gidq,0755); + c(home,"bin","except",auto_uido,auto_gidq,0755); + c(home,"bin","maildirmake",auto_uido,auto_gidq,0755); + c(home,"bin","maildir2mbox",auto_uido,auto_gidq,0755); + c(home,"bin","maildirwatch",auto_uido,auto_gidq,0755); + c(home,"bin","qail",auto_uido,auto_gidq,0755); + c(home,"bin","elq",auto_uido,auto_gidq,0755); + c(home,"bin","pinq",auto_uido,auto_gidq,0755); - c(auto_qmail,"man/man7","forgeries.7",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat7","forgeries.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man7","qmail-limits.7",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat7","qmail-limits.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man7","qmail.7",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat7","qmail.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","addresses.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","addresses.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","envelopes.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","envelopes.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","maildir.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","maildir.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","mbox.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","mbox.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","dot-qmail.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","dot-qmail.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","qmail-control.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","qmail-control.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","qmail-header.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","qmail-header.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","qmail-log.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","qmail-log.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","qmail-users.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","qmail-users.0",auto_uido,auto_gidq,0644); + c(home,"man/man5","tcp-environ.5",auto_uido,auto_gidq,0644); + c(home,"man/cat5","tcp-environ.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","forward.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","forward.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","condredirect.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","condredirect.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","bouncesaying.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","bouncesaying.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","except.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","except.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","maildirmake.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","maildirmake.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","maildir2mbox.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","maildir2mbox.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","maildirwatch.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","maildirwatch.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","mailsubj.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","mailsubj.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","qreceipt.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","qreceipt.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","qbiff.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","qbiff.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","preline.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","preline.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","tcp-env.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","tcp-env.0",auto_uido,auto_gidq,0644); + c(home,"man/man7","forgeries.7",auto_uido,auto_gidq,0644); + c(home,"man/cat7","forgeries.0",auto_uido,auto_gidq,0644); + c(home,"man/man7","qmail-limits.7",auto_uido,auto_gidq,0644); + c(home,"man/cat7","qmail-limits.0",auto_uido,auto_gidq,0644); + c(home,"man/man7","qmail.7",auto_uido,auto_gidq,0644); + c(home,"man/cat7","qmail.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-local.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-local.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-lspawn.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-lspawn.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-getpw.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-getpw.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-remote.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-remote.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-rspawn.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-rspawn.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-clean.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-clean.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-send.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-send.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-start.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-start.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","splogger.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","splogger.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-queue.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-queue.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-inject.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-inject.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-showctl.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-showctl.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-newmrh.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-newmrh.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-newu.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-newu.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-pw2u.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-pw2u.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qread.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qread.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qstat.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qstat.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-tcpok.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-tcpok.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-tcpto.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-tcpto.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-pop3d.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-pop3d.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-popup.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-popup.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qmqpc.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qmqpc.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qmqpd.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qmqpd.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-qmtpd.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-qmtpd.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-smtpd.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-smtpd.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man8","qmail-command.8",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat8","qmail-command.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","forward.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","forward.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","condredirect.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","condredirect.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","bouncesaying.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","bouncesaying.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","except.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","except.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","maildirmake.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","maildirmake.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","maildir2mbox.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","maildir2mbox.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","maildirwatch.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","maildirwatch.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","mailsubj.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","mailsubj.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","qreceipt.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","qreceipt.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","qbiff.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","qbiff.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","preline.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","preline.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","tcp-env.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","tcp-env.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"bin","dot-forward",auto_uido,auto_gidq,0755); + c(home,"man/man8","qmail-local.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-local.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-lspawn.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-lspawn.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-getpw.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-getpw.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-remote.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-remote.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-rspawn.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-rspawn.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-clean.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-clean.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-send.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-send.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-start.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-start.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","splogger.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","splogger.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-queue.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-queue.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-inject.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-inject.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-showctl.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-showctl.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-newmrh.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-newmrh.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-newu.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-newu.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-pw2u.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-pw2u.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-qread.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-qread.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-qstat.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-qstat.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-tcpok.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-tcpok.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-tcpto.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-tcpto.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-pop3d.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-pop3d.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-popup.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-popup.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-qmqpc.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-qmqpc.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-qmqpd.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-qmqpd.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-qmtpd.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-qmtpd.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-smtpd.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-smtpd.0",auto_uido,auto_gidq,0644); + c(home,"man/man8","qmail-command.8",auto_uido,auto_gidq,0644); + c(home,"man/cat8","qmail-command.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","dot-forward.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","dot-forward.0",auto_uido,auto_gidq,0644); + c(home,"bin","dot-forward",auto_uido,auto_gidq,0755); - d(auto_qmail,"doc/fastforward",auto_uido,auto_gidq,0755); + c(home,"man/man1","dot-forward.1",auto_uido,auto_gidq,0644); + c(home,"man/cat1","dot-forward.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"bin","fastforward",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","printforward",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","setforward",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","newaliases",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","printmaillist",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","setmaillist",auto_uido,auto_gidq,0755); - c(auto_qmail,"bin","newinclude",auto_uido,auto_gidq,0755); + d(home,"doc/fastforward",auto_uido,auto_gidq,0755); - c(auto_qmail,"doc/fastforward","ALIASES",auto_uido,auto_gidq,0644); + c(home,"bin","fastforward",auto_uido,auto_gidq,0755); + c(home,"bin","printforward",auto_uido,auto_gidq,0755); + c(home,"bin","setforward",auto_uido,auto_gidq,0755); + c(home,"bin","newaliases",auto_uido,auto_gidq,0755); + c(home,"bin","printmaillist",auto_uido,auto_gidq,0755); + c(home,"bin","setmaillist",auto_uido,auto_gidq,0755); + c(home,"bin","newinclude",auto_uido,auto_gidq,0755); - c(auto_qmail,"man/man1","fastforward.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","printforward.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","setforward.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","newaliases.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","printmaillist.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","setmaillist.1",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/man1","newinclude.1",auto_uido,auto_gidq,0644); + c(home,"doc/fastforward","ALIASES",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","fastforward.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","printforward.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","setforward.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","newaliases.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","printmaillist.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","setmaillist.0",auto_uido,auto_gidq,0644); - c(auto_qmail,"man/cat1","newinclude.0",auto_uido,auto_gidq,0644); + c(home,"man/man1","fastforward.1",auto_uido,auto_gidq,0644); + c(home,"man/man1","printforward.1",auto_uido,auto_gidq,0644); + c(home,"man/man1","setforward.1",auto_uido,auto_gidq,0644); + c(home,"man/man1","newaliases.1",auto_uido,auto_gidq,0644); + c(home,"man/man1","printmaillist.1",auto_uido,auto_gidq,0644); + c(home,"man/man1","setmaillist.1",auto_uido,auto_gidq,0644); + c(home,"man/man1","newinclude.1",auto_uido,auto_gidq,0644); + + c(home,"man/cat1","fastforward.0",auto_uido,auto_gidq,0644); + c(home,"man/cat1","printforward.0",auto_uido,auto_gidq,0644); + c(home,"man/cat1","setforward.0",auto_uido,auto_gidq,0644); + c(home,"man/cat1","newaliases.0",auto_uido,auto_gidq,0644); + c(home,"man/cat1","printmaillist.0",auto_uido,auto_gidq,0644); + c(home,"man/cat1","setmaillist.0",auto_uido,auto_gidq,0644); + c(home,"man/cat1","newinclude.0",auto_uido,auto_gidq,0644); } diff --git a/install.c b/install.c index 95034f2..5a4b980 100644 --- a/install.c +++ b/install.c @@ -152,13 +152,18 @@ int mode; strerr_die6sys(111,FATAL,"unable to chmod ",home,"/",file,": "); } -void main() +void main(argc,argv) +int argc; +char *argv[]; { + char *home = 0; + if (argc > 1) + home = argv[1]; fdsourcedir = open_read("."); if (fdsourcedir == -1) strerr_die2sys(111,FATAL,"unable to open current directory: "); umask(077); - hier(); + hier(home); _exit(0); } diff --git a/instcheck.c b/instcheck.c index d41efda..b65031d 100644 --- a/instcheck.c +++ b/instcheck.c @@ -101,8 +101,13 @@ int mode; perm("",home,"/",file,S_IFREG,uid,gid,mode); } -void main() +void main(argc,argv) +int argc; +char *argv[]; { - hier(); + char *home = 0; + if (argc > 1) + home = argv[1]; + hier(home); _exit(0); } diff --git a/mailsubj.sh b/mailsubj.sh index a93d3f4..d465b93 100644 --- a/mailsubj.sh +++ b/mailsubj.sh @@ -4,4 +4,4 @@ shift echo To: ${1+"$@"} echo '' cat -) | QMAIL/bin/qmail-inject +) | /usr/sbin/qmail-inject diff --git a/pinq.sh b/pinq.sh index 93e747a..06847d8 100644 --- a/pinq.sh +++ b/pinq.sh @@ -1 +1 @@ -QMAIL/bin/maildir2mbox && exec pine ${1+"$@"} +/usr/bin/maildir2mbox && exec pine ${1+"$@"} diff --git a/proc+df.sh b/proc+df.sh index eb9e92c..ce61f7e 100644 --- a/proc+df.sh +++ b/proc+df.sh @@ -4,6 +4,6 @@ # Using dot-forward to support sendmail-style ~/.forward files. # Using procmail to deliver messages to /var/spool/mail/$USER by default. -exec env - PATH="QMAIL/bin:$PATH" \ +exec env - PATH="/usr/bin:/usr/sbin$PATH" \ qmail-start '|dot-forward .forward |preline procmail' splogger qmail diff --git a/proc.sh b/proc.sh index 3c76220..88cd1ed 100644 --- a/proc.sh +++ b/proc.sh @@ -3,5 +3,5 @@ # Using splogger to send the log through syslog. # Using procmail to deliver messages to /var/spool/mail/$USER by default. -exec env - PATH="QMAIL/bin:$PATH" \ +exec env - PATH="/usr/bin:/usr/sbin$PATH" \ qmail-start '|preline procmail' splogger qmail diff --git a/qail.sh b/qail.sh index 7e31c33..81e3fdb 100644 --- a/qail.sh +++ b/qail.sh @@ -1 +1 @@ -QMAIL/bin/maildir2mbox && exec Mail ${1+"$@"} +/usr/bin/maildir2mbox && exec Mail ${1+"$@"} diff --git a/qmail-lspawn.c b/qmail-lspawn.c index 5109cc3..f3b91ad 100644 --- a/qmail-lspawn.c +++ b/qmail-lspawn.c @@ -139,7 +139,7 @@ char *local; } if (pipe(pi) == -1) _exit(QLX_SYS); - args[0] = "bin/qmail-getpw"; + args[0] = "/usr/sbin/qmail-getpw"; args[1] = local; args[2] = 0; switch(gpwpid = vfork()) @@ -191,7 +191,7 @@ char *s; char *r; int at; x = nughde.s; xlen = nughde.len; - args[0] = "bin/qmail-local"; + args[0] = "/usr/sbin/qmail-local"; args[1] = "--"; args[2] = x; n = byte_chr(x,xlen,0); if (n++ == xlen) _exit(QLX_USAGE); x += n; xlen -= n; diff --git a/qmail.c b/qmail.c index 0fe0dfa..4b7f3ef 100644 --- a/qmail.c +++ b/qmail.c @@ -7,7 +7,7 @@ #include "qmail.h" #include "auto_qmail.h" -static char *binqqargs[2] = { "bin/qmail-queue", 0 } ; +static char *binqqargs[2] = { "/usr/sbin/qmail-queue", 0 } ; int qmail_open(qq) struct qmail *qq; diff --git a/sendmail.c b/sendmail.c index 46d0e4b..d7e3ae3 100644 --- a/sendmail.c +++ b/sendmail.c @@ -19,7 +19,7 @@ void die_usage() _exit(100); } -char *smtpdarg[] = { "bin/qmail-smtpd", 0 }; +char *smtpdarg[] = { "/usr/sbin/qmail-smtpd", 0 }; void smtpd() { if (!env_get("PROTO")) { @@ -37,7 +37,7 @@ void smtpd() _exit(111); } -char *qreadarg[] = { "bin/qmail-qread", 0 }; +char *qreadarg[] = { "/usr/sbin/qmail-qread", 0 }; void mailq() { execv(*qreadarg,qreadarg); @@ -113,7 +113,7 @@ char **argv; if (!qiargv) nomem(); arg = qiargv; - *arg++ = "bin/qmail-inject"; + *arg++ = "/usr/sbin/qmail-inject"; *arg++ = (flagh ? "-H" : "-a"); if (sender) { *arg++ = "-f";