specify the directory for dcc_db & hash

Vernon Schryver vjs@calcite.rhyolite.com
Wed Nov 12 14:48:57 UTC 2008

> From: Petar Bogdanovic <petar@smokva.net>

> On Wed, Nov 12, 2008 at 09:37:22AM +0200, Thomas Kinghorn - MWEB wrote:

> > On FreeBSD, is it possible to specify the location for the dcc_db?
> > Currently, everything is in /usr/local/dcc
> > I would like to have the dcc_db and dcc_db.hash files in /var/db/dcc

> Have you tried ALT_HOME?
> mail/dcc-dccd/Makefile:
> # ALT_HOME -	DCC keeps its config files in its home direcotry but writes
> #		status and database files there as well.  This latter point
> #		means that the FreeBSD default home directory for DCC,
> #		/usr/local/dcc, cannot be mounted read-only.
> #
> #		DCC's default home dir is /var/dcc breaks FreeBSD hierarchy
> #		conventions, but allows for a read-only /usr.
> #
> #		Setting ALT_HOME on will set DCC's home to /var/dcc, but
> #		keep its binaries in /usr/local/dcc/libexec.  Since this
> #		also means DCC's config files will be in /var/dcc, for
> #		convenience a soft link from /usr/local/etc/dcc to /var/dcc
> #		may be created.

I think that the FreeBSD ALT_HOME `make` variable is used to control
the DCC ./configure program.

If you are not using the FreeBSD "port", then you could instead use
    ./configure --homedir=//var/db/dcc --libexecdir=/usr/local/dcc/libexec
where ./configure is the program from the official source.

If you are using a FreeBSD "port" or "package" that is not more than
a year or two old, you could use updatedcc to fetch, ./configure, 
build, install, and restart the DCC software:
    /usr/local/dcc/libexec/updatedcc -c--homedir=//var/db/dcc  \

In all three cases, you will need to copy the config files to the new
DCC home directory, lest your DCC client or server break.  They include:
    dcc_conf, flod, ids, grey_whitelist, map, map.txt, whiteclnt,
    whitecommon, and whitelist.
It might be easiest to copy everything except dcc_db* and dccifd
(The server database files will be automatically rebuilt from peers.)

Do not forget to fix any cron jobs such as for fetch-testmsg-whitelist,
cron-dccd, fetchblack, and updatedcc.

> #		Note also that dccifd's default socket location is DCC's
> #		home, so if /var/dcc is used for the home, then programs
> #		like SpamAssassin may need to be explicitly told where
> #		to find dccifd's socket.

A very common misconfiguration on Linux is to install a new version of 
the Linux version SpamAssassin and fail to fix the SpamAssassin setting
to match the Linux choice for the DCC home directory.

Vernon Schryver    vjs@rhyolite.com

More information about the DCC mailing list

Contact vjs@rhyolite.com by mail or use the form.