]> git.ipfire.org Git - thirdparty/pdns.git/blame - README.md
Remove latency tracking for TCP again, for now
[thirdparty/pdns.git] / README.md
CommitLineData
a4167e57 1PowerDNS is copyright © 2001-2018 by PowerDNS.COM BV and lots of
79a0f9ff
CH
2contributors, using the GNU GPLv2 license (see NOTICE for the
3exact license and exception used).
bdbf07f0 4
48cfdbc4 5All documentation can be found on http://doc.powerdns.com/
6
1d329048 7This file may lag behind at times. For most recent updates, always check
f778b0f4 8https://doc.powerdns.com/md/changelog/.
1d329048
BH
9
10Another good place to look for information is:
75c698a7 11https://doc.powerdns.com/md/appendix/compiling-powerdns/
1d329048 12
2847a0d2 13To file bugs, head towards:
7d7b7179 14https://github.com/PowerDNS/pdns/issues
2847a0d2 15
7d7b7179 16But please check if the issue is already reported there first.
da5d2b0f 17
48cfdbc4 18SOURCE CODE / GIT
19-----------------
48cfdbc4 20Source code is available on GitHub:
21
6942a39e
PL
22```
23$ git clone https://github.com/PowerDNS/pdns.git
24```
25
26This repository contains the sources for the PowerDNS Recursor, the PowerDNS
27Authoritative Server, and dnsdist (a powerful DNS loadbalancer). All three can
28be built from this repository. However, all three released separately as .tar.bz2,
29.deb and .rpm.
48cfdbc4 30
31COMPILING Authoritative Server
32------------------------------
6942a39e
PL
33The PowerDNS Authoritative Server depends on Boost, OpenSSL and requires a
34compiler with C++-2011 support.
1d329048 35
6942a39e 36On Debian 8.0, the following is useful:
3869cd3b 37
6942a39e 38```
45e4814a 39$ apt-get install g++ libboost-all-dev libtool make pkg-config libmysqlclient-dev libssl-dev virtualenv
6942a39e 40```
3869cd3b 41
6942a39e
PL
42When building from git, the following packages are also required: autoconf, automake,
43ragel, bison and flex, then generate the configure file:
3869cd3b 44
6942a39e
PL
45```
46$ ./bootstrap
47```
3869cd3b 48
d022a079 49To compile a very clean version, use:
2e938e5d 50
6942a39e
PL
51```
52$ ./configure --with-modules="" --without-lua
53$ make
54# make install
55```
2e938e5d 56
4486aaac 57This generates a PowerDNS Authoritative Server binary with no modules built in.
1d329048 58
4486aaac 59When `./configure` is run without `--with-modules`, the bind and gmysql module are
1d329048 60built-in by default and the pipe-backend is compiled for runtime loading.
2e938e5d
BH
61
62To add multiple modules, try:
63
6942a39e
PL
64```
65$ ./configure --with-modules="bind gmysql gpgsql"
66```
2e938e5d 67
6942a39e
PL
68Note that you will need the development headers for PostgreSQL as well in this case.
69
70See https://doc.powerdns.com/md/appendix/compiling-powerdns/ for more details.
343546e5 71
cc2ee9e2
PD
72If you run into C++11-related symbol trouble, please try passing `CPPFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0` (or 1) to `./configure` to make sure you are compatible with the installed dependencies.
73
b1b2586e 74Compiling the Recursor
48cfdbc4 75----------------------
6942a39e 76See the README in pdns/recursordist.
3e69796e 77
b1b2586e
CH
78Compiling dnsdist
79-----------------
6942a39e 80See the README in pdns/dnsdistdist.
e291c62e 81
b1b2586e 82Solaris Notes
343546e5 83-------------
843aae1e 84Use a recent gcc. OpenCSW is a good source, as is Solaris 11 IPS.
152b4591 85
48cfdbc4 86If you encounter problems with the Solaris make, gmake is advised.
343546e5 87
b1b2586e 88FreeBSD Notes
343546e5 89-------------
48cfdbc4 90You need to compile using gmake - regular make only appears to work, but doesn't in fact. Use gmake, not make.
5088e8bc 91
2bf96826
SM
92The clang compiler installed through FreeBSD's package manager does not expose all of the C++11 features needed under `std=gnuc++11`. Force the compiler to use `std=c++11` mode instead.
93
b1b2586e
CH
94```
95$ export CXXFLAGS=-std=c++11
96```
2bf96826 97
b1b2586e
CH
98macOS Notes
99-----------
43a2814f 100PowerDNS Authoritative Server is available through Homebrew:
7d7b7179 101
6942a39e
PL
102```
103$ brew install pdns
104```
7d7b7179
JC
105
106If you want to compile yourself, the dependencies can be installed using
b1b2586e 107Homebrew. You need to tell configure where to find OpenSSL, too.
7d7b7179 108
6942a39e 109```
b1b2586e
CH
110$ brew install boost lua pkg-config ragel openssl
111$ ./configure --with-modules="" --with-lua PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
112$ make -j4
6942a39e 113```
7d7b7179 114
b1b2586e
CH
115Additionally, for PostgreSQL support, run `brew install postgresql` and add `--with-modules="gpsql"` to `./configure`.
116For MySQL support, run `brew install mariadb` and add `--with-modules="gmysql"` to `./configure`.
7d7b7179 117
b1b2586e 118Linux notes
343546e5
BH
119-----------
120None really.