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