This is a proposed update to the mail/dcc-dccd port, both updating the port to the latest DCC release version, 1.3.86 (the current port is stuck at 1.3.50), as well as improving it with the addition of several configuration options.
This work has been done over the last couple of weeks with the intention of assuming the DCC port maintainership, with support and assistance from both Vernon Schryver, DCC's developer, and Michael Scheidell, the current FreeBSD port maintainer of SpamAssassin.
During the course of discussions with Vernon, we were able to sort out a compilation issue on RELENG_7, as well as have implemented a couple of changes to DCC itself for improved compatibility with FreeBSD's ports tree. These changes are reflected in the updated port, and are detailed below.
The current port is monolithic, compiling and installing all DCC's modules regardless of what the admin will be using DCC for. For clarity, the DCC package includes the following modules: the DCC server, dccd; the DCC greylisting server, dccd-grey; the DCC Sendmail milter, dccm; and the DCC client interface daemon, dccifd.
Of the four, dccifd is probably the most commonly used as it is the interface that SpamAssassin preferentially uses to communicate with DCC. Postfix can also use it as a before-queue filter.
The DCC server itself is likely the least used, as most installations will use the public DCC servers instead. Even if the DCC server is run, the site will likely have a single server providing service to multiple clients. As such, both security and simple space concerns would dictate that the DCC server only be compiled and installed on boxes where it will actually be used.
With this in mind, the updated port uses Port's Options capability to allow admins to selectively enable and disable the installation of the individual DCC modules. This was fairly easy to implement as DCC's configure already had such underlying options available.
To support the installation of the individual modules, rcNG scripts were created for each of dccd, dccd-grey, dccm and dccifd. DCC supplies its own startup script, rcDCC, which carries out various checks and sets up the environment for the daemons. Prior, rcDCC would simply automatically start up all DCC daemons, but one of the enhancements that Vernon implemented was the ability to tell rcDCC which daemon to act upon. The rcNG scripts use this to have the daemons start up in the manner the daemons expect, but still within the standard rcNG framework and ultimately controlled through the usual *_enable="YES" entries in /etc/rc.conf.
The other enhancement to DCC was the addition of an optional suffix for installed configuration files. This functionality allows the removal of the Ports tree patch that essentially did the same thing. The configuration files are now installed with the usual .sample extension, and again if the actual configuration file isn't present. For example, on a new installation, dcc_conf is installed as both dcc_conf and dcc_conf.sample, but on an update/reinstall where dcc_conf as previously been modified by the admin (and thus was preserved on deinstall), the updated dcc_conf will only be installed as dcc_conf.sample.
The current port's ability to compile dccm against either a base or ports Sendmail has been preserved, but was added to the Options screen to make it easy for admins to select. Appropriate warnings are issued (via INGORE=) if the selected options don't make sense (e.g. if dccm is selected for installation but neither a base nor ports milter library can be found, or if compilation against ports is selected by a ports Sendmail hasn't been installed).
As per a suggestion by Michael Scheidell, the ability to change DCC's home directory has been added. DCC is relatively inflexible about where some of its files are located; client maps and other status info shared between the DCC modules must be located in the same directory as DCC's config files, which is DCC's homedir. The same goes for dccd's and dccd-grey's databases. As expected, the standard DCC homedir on FreeBSD is /usr/local/dcc, but since the status and database files are written in this directory, this means that /usr cannot be mounted read-only, a concern for some admins.
The libexec and cgi-bin programs, though, have their own directories which can be manipulated via configure. Using this, DCC's homedir can be set to /var/dcc (which is actually DCC's default homedir), while libexec and cgi-bin can be put in /usr/local/dcc/libexec and /usr/local/dcc/cgi-bin respectively.
While this allows the read-only parts to be in /usr and the writable parts to be in /var, it's not perfect in that DCC config files are also now in /var, and rather far away from the expected etc directory. To help ameliorate this, a soft link could be created between /usr/local/etc/dcc and /var/dcc, so at least the config files would appear to be in /usr/local/etc. The port does not do this automatically, though obviously it could if so desired.
The port default is, of course, the same as the current port, with everything in /usr/local/dcc. The alternate home option gives those admins who might need it more flexibility. The option is described in detail within Makefile comments.
Since DCC supports it, the last minor change is to expose an option to disable IPv6 support.
At Vernon's request, I've also updated the Master Sites list, and the name of tarball fetched (dcc-dccd is a legacy name; it's just dcc now).
To eat my own dogfood, I'm current running the new port on RELENG_6 i386, RELENG_6 AMD64, and RELENG_7 i386 boxes.
As this is my first attempt at a port--and a PR for that matter--any comments or criticisms would be appreciated.
I've probably generated the attached patch incorrectly (though 'cd /usr/ports/mail; path -p0 -E < /path/to/patch' works for me); gentle applications of a clue-stick welcome.
If worst comes to worst, a tarball of the updated port is available at:
Patch attached with submission follows:
Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
> -----Original Message-----
> From: Edwin Groothuis [mailto:edwin@FreeBSD.ORG]
> Sent: Wednesday, 19 March 2008 05:40
> To: email@example.com
> Subject: Re: ports/121840: [patch] Proposed update to
> mail/dcc-dccd port
> Maintainer of mail/dcc-dccd,
> Please note that PR ports/121840 has just been submitted.
> If it contains a patch for an upgrade, an enhancement or a bug fix
> you agree on, reply to this email stating that you approve the patch
> and a committer will take care of it.
Please remove me as maintainer for this port. I do not have the
resources to do it anymore. Thanks.
Dean Hollister wishes to be removed as maintainer of the mail/dcc-dccd
port; as I said in my submission, I'm willing to take over.
Unfortunately, I'm not entirely certain what happens now. Any hints
would be appreciated.
> Synopsis: [patch] Proposed update to mail/dcc-dccd port
> State-Changed-From-To: open->feedback
> State-Changed-By: edwin
> State-Changed-When: Tue Mar 18 20:40:10 UTC 2008
> Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
If Dean Hollister doesn't respond, the patch will get sent to a ports
If he doesn't care (and doesn't respond), and since this seems to be an
unmaintained port, likely the ports group will assign it to you.
Michael Scheidell, CTO
>|SECNAP Network Security
Winner 2008 Network Products Guide Hot Companies
FreeBsd SpamAssassin Ports maintainer
Charter member, ICSA labs anti-spam consortium
> From: Craig Green <firstname.lastname@example.org>
> Date: Thu, 20 Mar 2008 10:57:57 -0400
> To: <edwin@FreeBSD.org>
> Cc: Michael Scheidell <email@example.com>
> Subject: Re: ports/121840: [patch] Proposed update to mail/dcc-dccd port
> Dean Hollister wishes to be removed as maintainer of the mail/dcc-dccd
> port; as I said in my submission, I'm willing to take over.
> Unfortunately, I'm not entirely certain what happens now. Any hints
> would be appreciated.
>> Synopsis: [patch] Proposed update to mail/dcc-dccd port
>> State-Changed-From-To: open->feedback
>> State-Changed-By: edwin
>> State-Changed-When: Tue Mar 18 20:40:10 UTC 2008
>> Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
This email has been scanned and certified safe by SpammerTrap(tm).
For Information please see http://www.spammertrap.com
Maintainer has asked to be reset. This port is now available for
pav 2008-03-23 11:08:04 UTC
FreeBSD ports repository
mail/dcc-dccd Makefile distinfo pkg-descr pkg-plist
mail/dcc-dccd/files dccd.sh.in dccgrey.sh.in dccifd.sh.in
mail/dcc-dccd/files dcc-start.sh.in patch-configure
- Update to 1.3.86
- Overhaul the port a great deal
- Take maintainership
Submitted by: Craig Green <firstname.lastname@example.org>
Revision Changes Path
1.38 +128 -35 ports/mail/dcc-dccd/Makefile
1.30 +3 -3 ports/mail/dcc-dccd/distinfo
1.3 +0 -57 ports/mail/dcc-dccd/files/dcc-start.sh.in (dead)
1.1 +72 -0 ports/mail/dcc-dccd/files/dccd.sh.in (new)
1.1 +72 -0 ports/mail/dcc-dccd/files/dccgrey.sh.in (new)
1.1 +63 -0 ports/mail/dcc-dccd/files/dccifd.sh.in (new)
1.1 +63 -0 ports/mail/dcc-dccd/files/dccm.sh.in (new)
1.6 +0 -25 ports/mail/dcc-dccd/files/patch-configure (dead)
1.7 +0 -33 ports/mail/dcc-dccd/files/patch-homedir::Makefile.in (dead)
1.1 +47 -0 ports/mail/dcc-dccd/files/pkg-message.in (new)
1.2 +7 -4 ports/mail/dcc-dccd/pkg-descr
1.14 +46 -37 ports/mail/dcc-dccd/pkg-plist
email@example.com mailing list
To unsubscribe, send any mail to "firstname.lastname@example.org"