]>
Commit | Line | Data |
---|---|---|
2b1c8d9a | 1 | PowerDNS is copyright © 2002-2016 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 | ||
48cfdbc4 | 74 | COMPILING THE RECURSOR |
75 | ---------------------- | |
6942a39e | 76 | See the README in pdns/recursordist. |
3e69796e | 77 | |
6942a39e PL |
78 | COMPILING DNSDIST |
79 | ---------------------- | |
80 | See the README in pdns/dnsdistdist. | |
e291c62e | 81 | |
343546e5 BH |
82 | SOLARIS NOTES |
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 BH |
87 | |
88 | FREEBSD NOTES | |
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 | ||
94 | export CXXFLAGS=-std=c++11 | |
95 | ||
7d7b7179 JC |
96 | MAC OS X NOTES |
97 | -------------- | |
43a2814f | 98 | PowerDNS Authoritative Server is available through Homebrew: |
7d7b7179 | 99 | |
6942a39e PL |
100 | ``` |
101 | $ brew install pdns | |
102 | ``` | |
7d7b7179 JC |
103 | |
104 | If you want to compile yourself, the dependencies can be installed using | |
105 | Homebrew: | |
106 | ||
6942a39e PL |
107 | ``` |
108 | $ brew install boost lua pkg-config ragel | |
109 | ``` | |
7d7b7179 JC |
110 | |
111 | For PostgreSQL support: | |
112 | ||
6942a39e PL |
113 | ``` |
114 | $ brew install postgresql | |
115 | ``` | |
7d7b7179 JC |
116 | |
117 | For MySQL support: | |
118 | ||
6942a39e PL |
119 | ``` |
120 | $ brew install mariadb | |
121 | ``` | |
7d7b7179 | 122 | |
343546e5 BH |
123 | LINUX NOTES |
124 | ----------- | |
125 | None really. |