]> git.ipfire.org Git - thirdparty/pdns.git/blame - README.md
Fix warnings reported by GCC 8.1.0
[thirdparty/pdns.git] / README.md
CommitLineData
1e6d9770 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
PL
38```
39$ apt-get install g++ libboost-all-dev libtool make pkg-config libmysqlclient-dev libssl-dev
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
39bea9a7
PD
74On macOS, you may need to `brew install openssl` and set `PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig` during configure.
75
48cfdbc4 76COMPILING THE RECURSOR
77----------------------
6942a39e 78See the README in pdns/recursordist.
3e69796e 79
6942a39e
PL
80COMPILING DNSDIST
81----------------------
82See the README in pdns/dnsdistdist.
e291c62e 83
343546e5
BH
84SOLARIS NOTES
85-------------
843aae1e 86Use a recent gcc. OpenCSW is a good source, as is Solaris 11 IPS.
152b4591 87
48cfdbc4 88If you encounter problems with the Solaris make, gmake is advised.
343546e5
BH
89
90FREEBSD NOTES
91-------------
48cfdbc4 92You need to compile using gmake - regular make only appears to work, but doesn't in fact. Use gmake, not make.
5088e8bc 93
2bf96826
SM
94The 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.
95
96 export CXXFLAGS=-std=c++11
97
7d7b7179
JC
98MAC OS X 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
107Homebrew:
108
6942a39e
PL
109```
110$ brew install boost lua pkg-config ragel
111```
7d7b7179
JC
112
113For PostgreSQL support:
114
6942a39e
PL
115```
116$ brew install postgresql
117```
7d7b7179
JC
118
119For MySQL support:
120
6942a39e
PL
121```
122$ brew install mariadb
123```
7d7b7179 124
343546e5
BH
125LINUX NOTES
126-----------
127None really.