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