]>
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 | ||
6942a39e PL |
22 | ``` |
23 | $ git clone https://github.com/PowerDNS/pdns.git | |
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 | |
6942a39e | 36 | On 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 |
42 | When building from git, the following packages are also required: autoconf, automake, |
43 | ragel, bison and flex, then generate the configure file: | |
3869cd3b | 44 | |
6942a39e PL |
45 | ``` |
46 | $ ./bootstrap | |
47 | ``` | |
3869cd3b | 48 | |
d022a079 | 49 | To 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 | 57 | This generates a PowerDNS Authoritative Server binary with no modules built in. |
1d329048 | 58 | |
4486aaac | 59 | When `./configure` is run without `--with-modules`, the bind and gmysql module are |
1d329048 | 60 | built-in by default and the pipe-backend is compiled for runtime loading. |
2e938e5d BH |
61 | |
62 | To add multiple modules, try: | |
63 | ||
6942a39e PL |
64 | ``` |
65 | $ ./configure --with-modules="bind gmysql gpgsql" | |
66 | ``` | |
2e938e5d | 67 | |
6942a39e PL |
68 | Note that you will need the development headers for PostgreSQL as well in this case. |
69 | ||
70 | See https://doc.powerdns.com/md/appendix/compiling-powerdns/ for more details. | |
343546e5 | 71 | |
cc2ee9e2 PD |
72 | 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. |
73 | ||
b1b2586e | 74 | Compiling the Recursor |
48cfdbc4 | 75 | ---------------------- |
6942a39e | 76 | See the README in pdns/recursordist. |
3e69796e | 77 | |
b1b2586e CH |
78 | Compiling dnsdist |
79 | ----------------- | |
6942a39e | 80 | See the README in pdns/dnsdistdist. |
e291c62e | 81 | |
b1b2586e | 82 | Solaris Notes |
343546e5 | 83 | ------------- |
843aae1e | 84 | Use a recent gcc. OpenCSW is a good source, as is Solaris 11 IPS. |
152b4591 | 85 | |
48cfdbc4 | 86 | If you encounter problems with the Solaris make, gmake is advised. |
343546e5 | 87 | |
b1b2586e | 88 | FreeBSD Notes |
343546e5 | 89 | ------------- |
48cfdbc4 | 90 | You need to compile using gmake - regular make only appears to work, but doesn't in fact. Use gmake, not make. |
5088e8bc | 91 | |
2bf96826 SM |
92 | 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. |
93 | ||
b1b2586e CH |
94 | ``` |
95 | $ export CXXFLAGS=-std=c++11 | |
96 | ``` | |
2bf96826 | 97 | |
b1b2586e CH |
98 | macOS Notes |
99 | ----------- | |
43a2814f | 100 | PowerDNS Authoritative Server is available through Homebrew: |
7d7b7179 | 101 | |
6942a39e PL |
102 | ``` |
103 | $ brew install pdns | |
104 | ``` | |
7d7b7179 JC |
105 | |
106 | If you want to compile yourself, the dependencies can be installed using | |
b1b2586e | 107 | Homebrew. 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 |
115 | Additionally, for PostgreSQL support, run `brew install postgresql` and add `--with-modules="gpsql"` to `./configure`. |
116 | For MySQL support, run `brew install mariadb` and add `--with-modules="gmysql"` to `./configure`. | |
7d7b7179 | 117 | |
b1b2586e | 118 | Linux notes |
343546e5 BH |
119 | ----------- |
120 | None really. |