
Problems
========

If you have trouble, then subscribe and send mail to
dents-list@lists.mindspring.com. We are more than happy to help people
with compilation problems. Happy hacking!

Source from CVS
===============

If you have downloaded the source from our CVS-server or got a tarball
with a CVS-snapshot keep in mind that many generated files are missing
and some generated files are not meant to be used by normal users.

If the common gnu development tools are installed on your host you can
run "automake" and "autoconf". If they're not installed you have to
run "make distcheck" on a developer-host to get a dist-tarball.

We will try to configure our webserver to build a distribution-tarball
regulary. Look for something named "dents_<date>-<version>.tar.gz".
You can visit http://www-cip.prakinf.tu-ilmenau.de/~kunysch/ to get
dist-tarballs until we finished configuring "http://www.dents.org".

Prerequisites
=============

You have to install glib from the GNOME project (ftp.gtk.org/pub/gtk).
It should contain support for POSIX-threads to be thread-safe.  Our
"./configure" will disable threads if glib doesn't use pthreads.
If you would like to use the control facility, you will also need
ORBit (also from the GNOME project) and support for POSIX-threads.

The versions being used by some of the developers are:

  glib-1.2.4
  ORBit-0.4.3 (optional)

but prior versions will also likely work.


Hacking code
============

If a .debug file exists in the top level directory when configure is run,
some useful things can happen:

o It will define DENTS_DEBUG which will include special debugging code.
o It will default to bind()'ing on port 5053 instead of port 53. Useful
   for coding when not root.
o Debug enables warnings by default.
o It will also source the .debug file and special variables will control
   the default behaviour of the configure script:
    o pthreads=yes|no
    o warnings=yes|no
    o ctl=yes|no
    o ipv6=yes|no
    o etcdir=<path>
    o piddir=<path>
    o debug=no         (turn off -DDENTS_DEBUG again)

If you want to run GDB try "./libtool gdb src/dents".


Configure-options
=================

  --enable-debug          Turn on debugging.
  --enable-warnings       Enable -Wall if using gcc.
  --disable-ipv6          Don't try to compile in IPv6.
  --enable-ctl            Try to compile in the control facility
  --without-pthreads      Don't use pthreads
  --with-etcdir=PATH      Full path for main configfile
  --with-static=MOD1 ...  Use these static driver-modules
  --with-shared=MOD1 ...  Use these shared driver-modules

I you want static modules list all in the same commandline.

Example:  --with-static="mod_stddb mod_recursive"

Alternative: edit modules.conf


Testing
=======

I also use dig @localhost -p 5053 to use the higher port. dig also
does zone transfers, so I use it to test most things with dents. Just
make sure not to use -t axfr to do zone transfer as that will initiate
a UDP zone transfer (which both dents and BIND will ignore for DoS
reasons).


Patches
=======

Also, if you make any patches and would like to submit them, please
send a unified diff (diff -u) to dents-list@lists.mindspring.com or
johannes@sventech.com.  If you would like to be in the CREDITS file,
just add yourself and submit that as part of the patch.  If you added
more than ten lines you have to mention your name in the AUTHORS file.
