chiark / gitweb /
Debianization for 1.03-1 debian debian/1.03-1
authorMark Wooding <mdw@distorted.org.uk>
Sun, 28 Jun 1998 15:21:03 +0000 (15:21 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Tue, 14 Feb 2006 00:11:57 +0000 (00:11 +0000)
44 files changed:
binm1+df.sh
binm1.sh
binm2+df.sh
binm2.sh
binm3+df.sh
binm3.sh
conf-cc
conf-groups
conf-ld
datemail.sh
debian/README [new file with mode: 0644]
debian/README.debian [new file with mode: 0644]
debian/TODO [new file with mode: 0644]
debian/build-qmail [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/conffiles [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/debianize-binary-tree [new file with mode: 0644]
debian/debianize-source-tree [new file with mode: 0644]
debian/postinst [new file with mode: 0644]
debian/postrm [new file with mode: 0644]
debian/preinst [new file with mode: 0644]
debian/prerm [new file with mode: 0644]
debian/qmail [new file with mode: 0644]
debian/qmail-src.README [new file with mode: 0644]
debian/rules [new file with mode: 0755]
debian/substvars [new file with mode: 0644]
debian/suid [new file with mode: 0644]
elq.sh
hier.c
home+df.sh
home.sh
install-big.c
install.c
instcheck.c
mailsubj.sh
pinq.sh
proc+df.sh
proc.sh
qail.sh
qmail-lspawn.c
qmail.c
sendmail.c

index 0ff1a6803c50831676a590ccd1695bedec47ee43..f18ceaf7e69e6b92520cfb72546153e6f4b0765f 100644 (file)
@@ -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
index db79cbd5fe6ad9c4a42803d10dd4148ac49c3cde..03e5a808e65ff322db8f95fc4f7bad58d6cc1df2 100644 (file)
--- 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
index 4f7810149a3396aa72fb1d9b670170e78351a408..0eeae2d622a8aa52a4ae12fda948d8131c5dad2c 100644 (file)
@@ -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
index 7905308193b41a79a274f09c4089224e10a6f200..52241898179b5b97630e6d2252b95d35f775c640 100644 (file)
--- 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
index 3d6940134ddad3e588a59c8005c8809b49c755c0..686be30f6afbc17643269ea305b4b1564f6a50ab 100644 (file)
@@ -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
index eb139e6b7f974e1b150e4683ccf16df3e340d16e..e2f9254eb851722f7ce6b4460877e640b0ddffac 100644 (file)
--- 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 e58fb9bbab13783353b0be906ec38e31b3404c52..0f29a89a62239528543516f81db61db4e1d25a53 100644 (file)
--- a/conf-cc
+++ b/conf-cc
@@ -1,3 +1,3 @@
-cc -O2
+cc -O2 -g
 
 This will be used to compile .c files.
index cec08455b015ee11840d18afb3a63705d817794a..0c424557df3f5374ba887cadc07c079b9a7377d9 100644 (file)
@@ -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 a9e796a591d78084a9a102889a2e8f4ba7f9b776..0329c85d90a22863dc55a9810c86c1e286f84e8b 100644 (file)
--- a/conf-ld
+++ b/conf-ld
@@ -1,3 +1,4 @@
+cc
 cc -s
 
 This will be used to link .o files into an executable.
index fd28f46d4edb20af8c17a449920c7bcc1c9f6453..caa2c42affcbe3f82dd980c4fac520134a02605b 100644 (file)
@@ -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 (file)
index 0000000..6ff1a99
--- /dev/null
@@ -0,0 +1,7 @@
+Things to do when debianizing a new version of qmail.
+ Christian Hudon <chrish@debian.org>
+
+* 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 (file)
index 0000000..f5a17bd
--- /dev/null
@@ -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/<username>
+
+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 <phil@hands.com>
diff --git a/debian/TODO b/debian/TODO
new file mode 100644 (file)
index 0000000..432d76b
--- /dev/null
@@ -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 (file)
index 0000000..dfcf28b
--- /dev/null
@@ -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 (file)
index 0000000..d0a6f54
--- /dev/null
@@ -0,0 +1,41 @@
+qmail (1.03-1) non-free; urgency=low
+
+  * new upstream release
+
+ -- Mark Wooding <mdw@excessus.demon.co.uk>  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 <phil@hands.com>  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 <chrish@debian.org>  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 <chrish@debian.org>  Sun, 13 Apr 1997 19:12:59 -0400
+
+qmail (1.00-1) experimental; urgency=low
+
+  * Initial release.
+
+ -- Christian Hudon <chrish@debian.org>  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 (file)
index 0000000..49c92fe
--- /dev/null
@@ -0,0 +1 @@
+/etc/init.d/qmail
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..9ede531
--- /dev/null
@@ -0,0 +1,67 @@
+Source: qmail
+Maintainer: Philip Hands <phil@hands.com>
+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 (file)
index 0000000..4ba0bb1
--- /dev/null
@@ -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.
+<phil@hands.com>
diff --git a/debian/debianize-binary-tree b/debian/debianize-binary-tree
new file mode 100644 (file)
index 0000000..72dbf6f
--- /dev/null
@@ -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 (file)
index 0000000..648e8ab
--- /dev/null
@@ -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 >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 (file)
index 0000000..8014036
--- /dev/null
@@ -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 = <STDIN>;
+       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 (file)
index 0000000..0e5686f
--- /dev/null
@@ -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 (file)
index 0000000..bfacc91
--- /dev/null
@@ -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, '</etc/inetd.conf' or die "Could not open /etc/inetd.conf\n";
+    open N, ">$new_inetd" or die "Could not create $new_inetd\n";
+    while (<I>) {
+       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 (file)
index 0000000..fa2406e
--- /dev/null
@@ -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 <<EOT;
+There are still messages in qmail's queue. You probably want to wait until
+qmail's queue is empty before removing the qmail package. Otherwise 
+the messages currently waiting in the queue will not be delivered or will be 
+lost. (\`qmail-qstat' will tell you the number of messages in qmail's queue.)
+
+EOT
+
+        print STDERR 'Do you still want to proceed and remove the qmail package? [y/N] ';
+       my $answer = <STDIN>;
+       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 (file)
index 0000000..55e7faa
--- /dev/null
@@ -0,0 +1,90 @@
+#!/bin/sh
+#
+# /etc/init.d/qmail : start or stop the qmail mail subsystem.
+#
+# Written by Christian Hudon <chrish@debian.org>
+
+#
+# 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 (file)
index 0000000..f6250c3
--- /dev/null
@@ -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 <phil@hands.com>
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..30fd481
--- /dev/null
@@ -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 (file)
index 0000000..361c161
--- /dev/null
@@ -0,0 +1 @@
+shlibs:Depends=libc5 (>= 5.4.0-0)
diff --git a/debian/suid b/debian/suid
new file mode 100644 (file)
index 0000000..cfb931e
--- /dev/null
@@ -0,0 +1 @@
+off
diff --git a/elq.sh b/elq.sh
index 7e20262d810617ce2417d0be3ef03d69a3285aa2..22a327d43bc546d37a83ba068d8c87fc6cbe080d 100644 (file)
--- 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 28e568dea42111306cc3f3a038d0f84ba237d2bf..9d6441b829464372ae27b47513a1b309da703192 100644 (file)
--- 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);
 }
index 7885cdf67ac6b5143d7127d0b65f8224d2106aab..591dc2e43f912a090a6475b4a6f33fcdaafe221c 100644 (file)
@@ -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 c96c02b62460d222d358ef2bb6e34ac5df21b68a..569e469c6f20240530cc2c6a6bcf4fb4bada741e 100644 (file)
--- 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
index df813dfdcbe2a84d772a4b60f6f14f4854ee8d91..d5594f9930cef30da6497d81717af256bab0d7e6 100644 (file)
@@ -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);
 }
index 95034f21a3cdee34fb3a98d7af7f46202d47bd9c..5a4b9802d37240a527e23e17df737fba704d85b3 100644 (file)
--- 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);
 }
index d41efda9b21a6be197de3f589766aae75f31354b..b65031d90d64afdf8368339e894e4f1bc92629b2 100644 (file)
@@ -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);
 }
index a93d3f45a43ba187209502c21900eadaff7cafaa..d465b93dcc5fa28c3ff025752bdb544190966369 100644 (file)
@@ -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 93e747a2503e49621fa15c5d8ddcd82b71506b9f..06847d8cd630e3e683944078c441632d9ee4e289 100644 (file)
--- a/pinq.sh
+++ b/pinq.sh
@@ -1 +1 @@
-QMAIL/bin/maildir2mbox && exec pine ${1+"$@"}
+/usr/bin/maildir2mbox && exec pine ${1+"$@"}
index eb9e92c3c255629892a7430cdf67538cf386ef77..ce61f7ed522d4673389b18c7713470c3f30a1581 100644 (file)
@@ -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 3c7622059d31ffd41abe5fc9fd37c1599e0cb681..88cd1ed4dd5bfb65884658dbf84631e76debc0c8 100644 (file)
--- 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 7e31c335d1e144647a2e41935b4cbab6fcbc9523..81e3fdb18eaff26708c77cef779bcf1439df4cee 100644 (file)
--- a/qail.sh
+++ b/qail.sh
@@ -1 +1 @@
-QMAIL/bin/maildir2mbox && exec Mail ${1+"$@"}
+/usr/bin/maildir2mbox && exec Mail ${1+"$@"}
index 5109cc350a90f423e77f0eb6e6cea5bf1753c2cb..f3b91ad3e390936f6f37861d087a7080323b0bb5 100644 (file)
@@ -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 0fe0dfaf70f4ef62670ebddb80ea661eebe7d3a1..4b7f3ef33cec1a862178a23a444854f1f7402233 100644 (file)
--- 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;
index 46d0e4bfa69bc156302cf4041af39fc87911323e..d7e3ae3a7262519796613ed5377a81bac9490c32 100644 (file)
@@ -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";