Commit graph

40 commits

Author SHA1 Message Date
schmonz
adf48e84a3 Put ${WRKSRC} in a more natural location. 2004-08-22 12:44:32 +00:00
schmonz
63bf0e3cd6 Using bsd.options.mk, add several common build-time options. The
complete list:

        badrcptto bigdns darwin netqmail nullenvsender
        outgoingip qregex realrcptto smtpauth syncdir
        tls

This obviates the need for a separate netqmail package. As a result,
reintegrate Makefile.common into Makefile, and simplify a handful
of definitions. If you used the netqmail package, set PKG_OPTIONS.qmail
to "netqmail bigdns" to build with the same patches as before.

Note that most of these options result in patches being applied,
and that any given combination of patches may not apply cleanly.
If there's a combination you need that doesn't work, or build
options you need that aren't available, let me know.

On Darwin, the "darwin" option is set by default, as it's needed
in order to build. The patch includes <nameser8_compat.h>, which
is present on Panther, but not on older systems. We provide a
buildlink stand-in where needed.

On Linux, the "netqmail" option is set by default, as with recent
glibc it's necessary to #include <errno.h> in order to build.

On other platforms, no options are set by default.

Bump PKGREVISION.
2004-08-22 00:10:51 +00:00
schmonz
1f5f23cb87 Cosmetic only: tab out the first few lines to the same indentation
level as the rest of the file.
2004-08-02 20:05:42 +00:00
schmonz
58c763f8c3 Add a "README.pkgsrc" document and refer to it in MESSAGE. Ride
the PKGREVISION bump from 12 hours ago.
2004-08-02 17:28:10 +00:00
schmonz
0183ac8132 The Mac OS X Panther patch needs a different PATCH_DIST_STRIP from
the netqmail patch.
2004-08-02 04:53:00 +00:00
schmonz
9da5a78de2 Remove add-on scripts and config files from the qmail and netqmail
packages. They now simply compile and install qmail and its
prerequisites. (The add-on scripts and config files will be revivified
as a separate qmail-run package. Thus, QMAIL_AUTOCONFIG is no longer
needed.)

The user is notified at install time that one popular, well-regarded
way to enable qmail is to follow the directions in "Life with
qmail", and that another way is to install the qmail-run package.

These changes, based on discussion with Charles Cazabon, are intended
to make life easier for the helpful people on the qmail mailing
list by clearly marking custom add-ons as such.

Other changes:

Since netqmail is a tarball containing the qmail tarball plus the
netqmail bits, we can use it for both packages and share more logic
between the two packages: MASTER_SITES, DISTINFO_FILE, WRKSRC, and
the post-extract target.

Now that there's one place to put the distinfo, add Eben Pratt's
simple patch to build and install on Mac OS X 10.3 (the patch is
not applied on other OSes).

Bump PKGREVISION of both packages.
2004-08-02 03:57:17 +00:00
schmonz
f863c03b03 Short story:
1) Mostly conform to hier(7) and honor PKG_SYSCONFDIR.
2) Follow more closely Dave Sill's "Life with qmail" (LWQ).
3) Add a bunch of features to the rc.d scripts.
4) Remove some (but not all) obstacles to binary packaging.
5) Introduce QMAIL_AUTOCONFIG, QMAIL_QUEUE_DIR, and QMAIL_QUEUE_EXTRA.
6) Enable pkgviews installation.
7) Bump PKGREVISION.


Long story:

1) Mostly conform to hier(7) and honor PKG_SYSCONFDIR.

     Based on a January 1997 post by mrg to the qmail list: prior
     to installation, we create symlinks in ${QMAILDIR} that point
     into ${LOCALBASE} or ${PKG_SYSCONFDIR}, causing installation
     to place files in those locations while allowing the canonical
     /var/qmail paths to continue to work. The notable deviation
     from hier(7) is that even though some binaries ought to go in
     sbin, they've all been lumped into bin for simplicity.

     Pleasant effects:
     * We no longer need to set LOCALBASE (a big no-no), and as a
       result also no longer need to set NO_MTREE, RCD_SCRIPTS_EXAMPLEDIR,
       or EVAL_PREFIX. This will also allow a few qmail-related
       packages to do likewise.
     * The commands and manual pages are in easily accessible paths
       by default.
     * Package installation and deinstallation work much better.

     Side effects:
     * There were a few minor conflicts with mail/courier-maildirmake,
       mail/mutt, and mail/pulsar. The latest versions of each are
       fine, so we add CONFLICTS only for older versions. (Thanks
       to those packages' maintainers!) There's also a conflict
       with security/mirrordir, which has a "bin/forward" command
       and corresponding section 1 man page.

     * Some directories under ${PREFIX} get chown'd to group qmail.
       Rather than modify the qmail installer, the affected
       directories are simply chown'd back afterward during
       post-install if PKG_INSTALLATION_TYPE is "overwrite". (If
       it's "pkgviews", then only the package's depot directory is
       affected, so we leave it alone.)

2) Follow more closely Dave Sill's "Life with qmail" (LWQ).

     Similarities:
     * Installs into /var/qmail from source.
     * Installs ucspi-tcp and daemontools.
     * Uses tcpserver(1).
     * Uses tcp.smtp.cdb for relay access control.
     * Uses control/defaultdelivery.
     * Uses control/concurrencyincoming.
     * Requires that control/rcpthosts exist to prevent open relays.
     * Uses similar chains of commands in run scripts.
     * Provides a script much like qmailctl.

     Differences:
     * This package does the following work for you automatically:
       * Creates user accounts.
       * Fetches, extracts, patches, configures, and compiles the source.
       * Installs binaries.
       * Runs ./config-fast.
       * Creates tcp.smtp{,cdb} and tcp.pop3d{,cdb}.
       * Creates control/concurrencyincoming.
       * Creates control/defaultdelivery (defaulting to "./Mailbox").
       * Creates the three required system aliases.
     * LWQ suggests doing some things this package doesn't do:
       * Applying patches.
       * Copying a script from /var/qmail/boot to /var/qmail/rc.
       * Configuring svscan(8) to run at boot.
       * Creating and populating /service.
       * Using supervise(8) and multilog(8).
       * Using the qmailctl script to control qmail.
       * Using the inst_check script to verify the installation.
       * Storing tcp.smtp{,cdb} in /etc.
       * Renaming the system sendmail(8) and marking it non-executable.
     * Instead, this package:
       * Builds from unmodified source. (See also mail/netqmail.)
       * Uses NetBSD-style rc.d scripts (including one similar to qmailctl).
       * Sends log messages to syslog(3).
       * Stores tcp.smtp{,cdb} and tcp.pop3{,cdb} in ${PKG_SYSCONFDIR}.
       * Provides an example mailer.conf(5).

3) Add a bunch of features to the rc.d scripts.

     Rename the qmail script and rcvar to qmailsend. Add "doqueue"
     (synonyms: alrm, flush) and "queue" commands, add "hup" as a
     synonym for "reload", and determine default delivery instruction
     from control/defaultdelivery (LWQ). Add control/defaultdelivery
     to required_files. Rename qmailsend_flags to
     qmailsend_defaultdelivery, which overrides control/defaultdelivery
     if set.

     In the qmailpop3d and qmailsmtpd scripts, enforce resource
     limits with softlimit(8) (LWQ). Add dependency on sysutils/daemontools
     for this. Rename qmailfoo_flags to qmailfoo_tcpflags. Add
     qmailfoo_tcphost (default: 0, meaning "any address") and
     qmailfoo_tcpport (default: 110 and 25, respectively). Add
     qmailfoo_softlimit (default: 2000000). Add qmailfoo_pretcpserver
     and qmailfoo_prefoo (default: empty), useful for inserting
     commands such as rblsmtpd(1) or relay-ctrl into the chain.
     Log to splogger's default syslog facility ("mail"), and use
     the name of the script as the tag.

     In the qmailpop3d, qmailsend, and qmailsmtpd scripts, add
     qmailfoo_postenv (defaults: empty, PATH=${PREFIX}/bin:$PATH,
     and QMAILQUEUE=${PREFIX}/bin/qmail-queue, respectively), useful
     primarily for setting environment variables for each service.
     Add "pause" and "cont" commands (LWQ). They send -STOP and
     -CONT signals, respectively. Add "stat" as a synonym for
     "status" (LWQ).

     In the qmailpop3d script, add -x to qmailpop3d_tcpflags and
     add "cdb" command. Add qmailpop3d_checkpassword (useful for
     authenticating against alternate user databases) and
     qmailpop3d_maildirname (useful if your maildirs are named
     something other than "Maildir"). Add tcp.pop3.cdb to
     required_files.

     In the qmailsmtpd script, add -x and remove -H from
     qmailsmtpd_tcpflags, limit the number of incoming connections
     to control/concurrencyincoming, and add "cdb" command (LWQ).
     Add control/concurrencyincoming and tcp.smtp.cdb to required_files.

     Add qmailqread script and ${PREFIX}/bin/qmail-qread-client,
     based on Steinar Haug's example on www.qmail.org. If enabled,
     this allows local non-root users to see the queue.

     Add qmail script (structure copied from net/samba/files/samba.sh).
     Its interface is very similar to LWQ's qmailctl: it provides
     the commands "start stop restart rcvar pause cont stat status
     cdb doqueue reload queue alrm flush hup help". These commands
     can be run either directly from the appropriate service-specific
     script(s), or from this qmail script (which will call the
     right script(s) for you).

4) Remove some (but not all) obstacles to binary packaging.

     Each of these is better explained elsewhere. Summary:
     * Installs into the normal ${LOCALBASE}.
     * /var/qmail paths still work.
     * No patches are applied. (See also mail/netqmail.)

5) Introduce QMAIL_AUTOCONFIG, QMAIL_QUEUE_DIR, and QMAIL_QUEUE_EXTRA.

     QMAIL_AUTOCONFIG (default: YES): whether to automatically
     create basic config files.

     QMAIL_QUEUE_DIR (default: ${VARBASE}/spool/qmail): the path
     to the queue.

     QMAIL_QUEUE_EXTRA (default: empty): an additional recipient
     that will be added to every delivery. This is used primarily
     for logging. If this is set to a non-empty value, the necessary
     dot-qmail(5) file is created automatically at install time.

6) Enable pkgviews installation.

7) Bump PKGREVISION.

     Other user-visible changes:

     This package no longer applies patches to qmail. mail/netqmail,
     to be imported shortly, does.

     Restrictions on the redistribution of modified qmail apply
     not only to binaries but also to source. Clarify this in
     RESTRICTED.

     Add "newaliases", "hoststat", and "purgestat" entries to the
     sample mailer.conf. Install it to ${PREFIX}/share/examples/${PKGBASE},
     as other pkgsrc mailers do. ("newaliases" is actually provided
     by the fastforward package, and isn't needed unless you're
     using it.)

     Explain how to enable qmail in MESSAGE (cribbed from the
     postfix package).

Thanks to zuntum, snj, salo, and jlam for ideas, discussion, and review.
2004-07-21 22:35:59 +00:00
schmonz
d130ecc51b Explain why, after setting "command" in the usual way, we set it
again in foo_precmd() to a different value. This is an unusual
usage, and these comments may help if a future rc.subr isn't as
accommodating to such trickery. Suggested by lukem.
2004-04-27 03:05:09 +00:00
schmonz
f7e542297a Add revision 1.01 of Ward Vandewege's badrcptto patch. With this
patch, qmail-smtpd will reject mail during the SMTP conversation
if a recipient is listed in control/badrcptto. This complements
control/badmailfrom as found in stock qmail. Requested by Nathan
Arthur.

Add an rc.d script for qmail-pop3d. It needs sysutils/checkpassword,
which is so tiny I've added the dependency even as I don't use
qmail-pop3d myself.

In the rc.d script for qmail-smtpd, require control/rcpthosts to
be present. This prevents accidental open relays.

Now that it's used for the path to checkpassword too, rename
LOCALBASE_UCSPI_TCP to LOCALBASE_NORMAL.

Convert to buildlink3.

Bump PKGREVISION.
2004-04-24 05:29:36 +00:00
schmonz
9ea3810929 Remove ${QMAILDIR}/etc/rc.d/qmail{,smtpd} from PLIST, as RCD_SCRIPTS
are now automatically registered with installed packages.
2004-04-24 00:54:42 +00:00
schmonz
d1fca4d138 Take MAINTAINER at zuntum's suggestion. 2004-04-10 14:15:24 +00:00
schmonz
e95a82113e Note that one now has the additional rc.conf option of "qmailsmtpd=YES". 2004-04-10 05:53:31 +00:00
schmonz
fa7fdb69b2 Russ Nelson, Charles Cazabon, Dave Sill, Peter Samuel, and Henning
Brauer have prepared a distribution of qmail, called "netqmail":

    "We have done this because in our opinion, too many new users
    are confused by the out-of-date INSTALL file, and too much time
    is spent arguing on the mailing list over bugs.  We have tried
    to stick to the barest minimum number of changes.  We have
    fixed only those things which are out-and-out wrong, or which
    have been approved by djb (specifically QMAILQUEUE)."

This package already includes the QMAILQUEUE patch. Add netqmail
1.05's other patches, with the exception that patches to documentation
files which are not installed have been lovingly omitted.

This package also already includes a patch to handle oversized DNS
packets. It's still here, too.

pkgsrc changes:
* Add qmail-smtpd rc.d script (and ensuing dependency on net/ucspi-tcp).
* Update qmail rc.d script: respect $qmail_flags, treating it as the
    default delivery instruction.
* Remove non-working MASTER_SITES.

From the netqmail changelog:

20040121 code: qmail-smtpd is protected from exceedingly long (eg 2GB)
         header lines
20040121 code: qmail_lspawn, qmail-newmrh, qmail-newu, and qmail-rspawn
         are protected from misbehaving on hosts where the size of an
         integer is not the same as the size of a character pointer
         (eg 64 bit hosts with 32 bit ints)
20031027 doc: qmail.7 identifies installation as netqmail and points to
         http://qmail.org/
20031027 doc: qmail-queue.8 adds explanation of $QMAILQUEUE
20031027 doc: qmail-log.5 adds reference to errors from $QMAILQUEUE script
20031027 code: qmail-smtpd identifies itself as netqmail
20031027 code: if $QMAILQUEUE is set, it's invoked instead of qmail-queue
20031024 code: changed errno from int to #include.
20031024 code: fixed .qmail parsing bug.
20031024 code: recognize 0.0.0.0 as a local address.
20031024 code: sendmail's -f flag now overrides environment variables.

And for all this, bump PKGREVISION.

Pre-flight checks by snj@.
2004-04-10 05:30:06 +00:00
snj
9a86f09f51 Supply a default mailq entry in mailer.conf.
Fixes PR pkg/21591.
2004-03-29 05:10:04 +00:00
jlam
b2677a2cb0 Add definitions for DEINSTALL_EXTRA_TMPL and INSTALL_EXTRA_TMPL if
USE_PKGINSTALL is "YES".  bsd.pkg.install.mk will no longer automatically
pick up a INSTALL/DEINSTALL script in the package directory and assume that
you want it for the corresponding *_EXTRA_TMPL variable.
2003-08-30 22:51:11 +00:00
grant
0155927c43 s/netbsd.org/NetBSD.org/ 2003-07-17 21:41:05 +00:00
jlam
d7f69e47ce Instead of including bsd.pkg.install.mk directly in a package Makefile,
have it be automatically included by bsd.pkg.mk if USE_PKGINSTALL is set
to "YES".  This enforces the requirement that bsd.pkg.install.mk be
included at the end of a package Makefile.  Idea suggested by Julio M.
Merino Vidal <jmmv at menta.net>.
2003-01-28 22:03:00 +00:00
wiz
e8817c9088 Complete standardization of messages according to latest pkglint. 2002-09-24 12:29:55 +00:00
grant
0c5bb6abcc Make these scripts more portable by taking advantage of automatic rc.d
script handling and using @RCD_SCRIPTS_SHELL@.

as discussed with jlam.
2002-09-20 02:01:54 +00:00
jlam
5c053dd06a Take advantage of the auto-generation and installation of rc.d scripts. 2002-09-19 09:04:02 +00:00
jlam
e507190d0d When using bsd.pkg.install.mk, if a DEINSTALL or INSTALL file already
exists, then use it as the default value of DEINSTALL_EXTRA_TMPL or
INSTALL_EXTRA_TMPL.
2002-09-18 21:15:07 +00:00
schmonz
f87c58f411 Sort PLIST. 2002-07-28 01:56:14 +00:00
schmonz
26b3b0e6b7 Add rc.d script to control qmail, provided by Lubomir Sedlacik
<salo@Xtrmntr.org> in pkg/15326.

Add example mailer.conf.

Bump PKGREVISION.

Clarify binary package situation: We don't allow binary packages
to be created because they don't currently work. Additionally, if
someone were to make them work, we'd be unable to distribute them
because we apply a few patches to the qmail source.

Thanks to zuntum and jlam for discussion and assistance.
2002-07-28 01:54:37 +00:00
wiz
07ee15b39b MKDIR -> INSTALL_DATA_DIR
From the [pkgviews] branch.
2002-07-22 23:30:29 +00:00
zuntum
efd2204448 Store patches locally instead of fetching them from PATCH_SITES - fixes
problem with qmailqueue patch unexpectedly differing over time
2002-05-03 10:39:00 +00:00
yyamano
832ad2bf5b Create conf-ld to make it build on Darwin. 2002-04-05 15:22:31 +00:00
zuntum
6270866043 Switch second patch site from qmail.obeer.com to www.qmail.org as the latter
works better
2002-01-28 20:39:35 +00:00
zuntum
0099b1b9d2 Use += instead of = in second PATCH_SITE 2002-01-28 19:39:00 +00:00
zuntum
d6ff77a116 Apply QMAILQUEUE patch:
Bruce Guenter has written a patch which causes any program that would
run qmail-queue to look for an environment variable QMAILQUEUE.
If it is present, it is used in place of the string "bin/qmail-queue"
when running qmail-queue. This could be used, for example, to add a program
into the qmail-smtpd->qmail-queue pipeline that could do filtering,
rewrite broken headers, etc.

This does not break anything, and is required by some programs, for instance
qmail-scanner.

Bump PKGREVISION - we are at qmail-1.03nb2 now.
2002-01-28 18:28:09 +00:00
zuntum
3d427e643e Remove IS_INTERACTIVE setting as this package should now build just fine in BATCH
builds!
2002-01-28 17:57:08 +00:00
zuntum
10436ee8ae Alter DEINSTALL comment:
${ECHO} You may want to remove qmail-users package now, as it is no longer needed.
->
	${ECHO} You may remove qmail-users package now, as it is no longer needed.
2002-01-28 17:56:19 +00:00
zuntum
c8ef30ea37 Major rewrite of qmail package.
By default (the one set in bsd.pkg.defaults.mk) qmail installs into /var/qmail.
This can be changed by setting QMAILDIR in /etc/mk.conf to another directory,
for example /usr/qmail.

If you want to user non-standard path of installation, make sure to set it in
/etc/mk.conf *before* attempting to install any of qmail packages,
and do not change it in the mean time (if you install qmail with QMAILDIR set to
/var/qmail, change it to another dir and try to install qmail-conf, you will lose).

Slave packages will soon be updated to use this feature.
2002-01-21 18:45:03 +00:00
zuntum
f81afb6438 Handle ${QMAILDIR} properly in MESSAGE file; first part of pkg/15308
by Lubomir Sedlacik <salo@Xtrmntr.org>
2002-01-21 16:00:51 +00:00
zuntum
d516380156 o switched to bsd.pkg.install.mk logic -- now it depends on qmail-users package 2001-11-26 22:22:19 +00:00
zuntum
dfcac94b61 Add MESSAGE file that reminds to alter either /etc/man.conf or MANPATH
environment variable.

PR pkg/14715 by Sen Nagata <sen@eccosys.com>
2001-11-25 08:57:29 +00:00
zuntum
c72c1cf5f9 Move pkg/ files into package's toplevel directory 2001-11-01 00:57:41 +00:00
jlam
f79573370a Mechanical changes to 375 files to change dependency patterns of the form
foo-* to foo-[0-9]*.  This is to cause the dependencies to match only the
packages whose base package name is "foo", and not those named "foo-bar".
A concrete example is p5-Net-* matching p5-Net-DNS as well as p5-Net.  Also
change dependency examples in Packages.txt to reflect this.
2001-09-27 23:17:41 +00:00
zuntum
90d7f05cfb Create symlink from /var/qmail to ${PREFIX}/qmail, so we can list files in PLIST.
Yes, it isn't very clear idea, but better than empty PLIST and a bunch
of @unexec rm -rf's in it.
2001-08-13 14:17:11 +00:00
zuntum
b2d8be281c When cleaning up ${QMAILDIR}/bin, remove only binaries that belong to qmail package,
as support packages may install files there. In preparation for qmail-conf pkg.
2001-08-13 10:05:13 +00:00
zuntum
8e8fc9dbc9 Initial import of qmail-1.03 -- SECURE, reliable, efficient, simple, and FAST MTA for UNIX systems
qmail checks for qmail users' existance at compile time, so this package
must be built as root (it tries to add necessary users and groups),
thus NO_PACKAGE and IS_INTERACTIVE are set. PLIST file is left
empty intentionally, because qmail installs itself to /var/qmail,
outside ${PREFIX}.

The qmail program is a secure, reliable, efficient simple message
transfer agent.  It is meant to be a replacement for the entire
sendmail-binmail system that most UNIX hosts use.

Although qmail holds security and reliability as its top two
priorities, it is also fast.  On a Pentium under BSD/OS, qmail can
easily handle 200000 separate messages per day that are injected
and must then be delivered to local mailboxes!

Security and reliability are qmail's two strengths, however.  The
qmail package ensures a message, once accepted, will never be lost.
An optional new mailbox format, maildir, even lets users safely
read their mail over NFS, while still accepting new mail deliveries.

The following features are supported: 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, a drop-in sendmail replacement, and more!

The package is still being worked on.
2001-08-13 09:10:10 +00:00