Skip to content
C++ C DIGITAL Command Language Shell JavaScript Python Other
Find file
Latest commit f2772ba @ahupowerdns ahupowerdns Merge pull request #3338 from cmouse/geoip-weights
Add weight feature to GeoIP backend
Failed to load latest commit information.
build-aux Build release packages properly
build-scripts Merge pull request #3283 from pieterlexis/bye-bye-cryptopp
codedocs update our doxygen configuration
contrib Move pdns-recursor contrib to recursordist
docs Update documentation on weight feature
ext LuaWrapper turned out not to have been 0-byte clean when pushing std:…
m4 Merge pull request #3283 from pieterlexis/bye-bye-cryptopp
modules Add weight support for record(s)
pdns Merge pull request #3344 from rgacogne/dnsdist-client-bind-error
regression-tests.api Add the 'CSK' (Combined Signing Key) nomenclature
regression-tests.dnsdist Merge pull request #3124 from pieterlexis/single-zsk-fixes
regression-tests.nobackend Merge pull request #3124 from pieterlexis/single-zsk-fixes
regression-tests.recursor Only output shell commands on PDNS_DEBUG=YES
regression-tests Add the 'CSK' (Combined Signing Key) nomenclature
.gitignore Set the source version number in a clean fashion
.travis.yml Test if we can temporarily use external libsodium in travis
.valgrindrc Add suppression file for valgrind, and turn it on
AUTHORS and auto* loves authors too Update
COPYING update GPLv2 license text, thanks Morten Stevens
INSTALL Various documentation cleanups Fix auth make dist
NEWS Various documentation cleanups
NOTICE limit accidental scope expansion, thanks @zeha
README Create soft link from README to Improve for recursor compilation
bootstrap Don't run automake twice Merge pull request #3172 from Whissi/complete-geobackend-removal
pdns.supp Add suppression file for valgrind, and turn it on

PowerDNS is copyright Ⓒ 2002-2015 by PowerDNS.COM BV and lots of contributors, using the GNU GPLv2 license (see NOTICE for the exact license and exception used).

All documentation can be found on

This file may lag behind at times. For most recent updates, always check

Another good place to look for information is:

To file bugs, head towards:

But please check if the issue is already reported there first.


Source code is available on GitHub:

$ git clone

This repository contains the sources both for the PowerDNS Recursor and for PowerDNS Authoritative Server, and both can be built from this repository. Both are released separately as .tar.bz2, .deb and .rpm however!

COMPILING Authoritative Server

PowerDNS Authoritative Server 3.0 and beyond depend on Boost.

On Debian 7.0, the following is useful:

apt-get install autoconf automake bison flex g++ git libboost-all-dev libtool make pkg-config ragel libmysqlclient-dev

If you build from git, first build configure:

$ ./bootstrap

(You may need to do that twice. You also need libtool-1.4, 1.3 won't work. Autoconf 2.61 or newer and Automake 1.11 or newer are required, too.)

To compile a very clean version, use:

$ ./configure --with-modules="" --without-lua
$ make
# make install

This generates a PowerDNS Authoritative Server binary with no modules built in.

When ./configure is run without --with-modules, the bind and gmysql module are built-in by default and the pipe-backend is compiled for runtime loading.

To add multiple modules, try:

$ ./configure --with-modules="bind gmysql gpgsql"

See for more details.


The portable, and supported, way to build the recursor is:

$ cd pdns/recursordist
$ ./bootstrap
$ ./configure
$ make
# make install

You need autoconf, libtool and automake installed to bootstrap it. Furthermore, when building from git boost, pandoc, ragel and zip are build dependencies.


Use a recent gcc. OpenCSW is a good source, as is Solaris 11 IPS.

If you encounter problems with the Solaris make, gmake is advised.


You need to compile using gmake - regular make only appears to work, but doesn't in fact. Use gmake, not make.


PowerDNS Authoritative Server is available through Homebrew:

$ brew install pdns

If you want to compile yourself, the dependencies can be installed using Homebrew:

$ brew install boost lua pkg-config ragel

For PostgreSQL support:

$ brew install postgresql

For MySQL support:

$ brew install mariadb


None really.

Something went wrong with that request. Please try again.