]> git.ipfire.org Git - thirdparty/pdns.git/blobdiff - README.md
Merge pull request #9601 from omoerbeek/rec-backport-to-4.1.x-sec-2020-07
[thirdparty/pdns.git] / README.md
index f1f3d854492e7e3f1fd6312047f2c7a8cc801596..fa2f7f1cb6e01f0e9fa7e7d57e9c446873d74a06 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-PowerDNS is copyright © 2002-2016 by PowerDNS.COM BV and lots of
+PowerDNS is copyright © 2001-2018 by PowerDNS.COM BV and lots of
 contributors, using the GNU GPLv2 license (see NOTICE for the
 exact license and exception used).
 
@@ -17,34 +17,42 @@ But please check if the issue is already reported there first.
 
 SOURCE CODE / GIT
 -----------------
-
 Source code is available on GitHub:
 
-    $ git clone https://github.com/PowerDNS/pdns.git
-    
-This repository contains the sources both for the PowerDNS Recursor and for PowerDNS Authoritative Server,
-and both can be built from this repository. Both are released separately as .tar.bz2, .deb and .rpm however!
+```
+$ git clone https://github.com/PowerDNS/pdns.git
+```
+
+This repository contains the sources for the PowerDNS Recursor, the PowerDNS
+Authoritative Server, and dnsdist (a powerful DNS loadbalancer). All three can
+be built from this repository. However, all three released separately as .tar.bz2,
+.deb and .rpm.
 
 COMPILING Authoritative Server
 ------------------------------
-PowerDNS Authoritative Server 3.0 and beyond depend on Boost.
-
-On Debian 7.0, the following is useful:
+The PowerDNS Authoritative Server depends on Boost, OpenSSL and requires a
+compiler with C++-2011 support.
 
-    apt-get install autoconf automake bison flex g++ git libboost-all-dev libtool make pkg-config ragel libmysqlclient-dev
+On Debian 8.0, the following is useful:
 
-If you build from git, first build configure:
+```
+$ apt-get install g++ libboost-all-dev libtool make pkg-config libmysqlclient-dev libssl-dev
+```
 
-    $ ./bootstrap
+When building from git, the following packages are also required: autoconf, automake,
+ragel, bison and flex, then generate the configure file:
 
-(You may need to do that twice. You also need libtool-1.4, 1.3 won't work.
-Autoconf 2.61 or newer and Automake 1.11 or newer are required, too.)
+```
+$ ./bootstrap
+```
 
 To compile a very clean version, use:
 
-    $ ./configure --with-modules="" --without-lua
-    $ make
-    # make install
+```
+$ ./configure --with-modules="" --without-lua
+$ make
+# make install
+```
 
 This generates a PowerDNS Authoritative Server binary with no modules built in.
 
@@ -53,27 +61,25 @@ built-in by default and the pipe-backend is compiled for runtime loading.
 
 To add multiple modules, try:
 
-    $ ./configure --with-modules="bind gmysql gpgsql"
+```
+$ ./configure --with-modules="bind gmysql gpgsql"
+```
 
-See http://doc.powerdns.com/compiling-powerdns.html for more details.
-
-COMPILING THE RECURSOR
-----------------------
+Note that you will need the development headers for PostgreSQL as well in this case.
 
-On Ubuntu 14.04, the following is useful:
+See https://doc.powerdns.com/md/appendix/compiling-powerdns/ for more details.
 
-    apt-get install git libboost1.55-dev autoconf libtool pandoc ragel zip automake pkg-config g++ libssl-dev make
+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.
 
-The portable, and supported, way to build the recursor is:
+On macOS, you may need to `brew install openssl` and set `PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig` during configure.
 
-    $ cd pdns/recursordist
-    $ ./bootstrap
-    $ ./configure
-    $ make
-    # make install
+COMPILING THE RECURSOR
+----------------------
+See the README in pdns/recursordist.
 
-You need `autoconf`, `libtool` and `automake` installed to bootstrap it.
-Furthermore, when building from git `boost`, `pandoc`, `ragel` and `zip` are build dependencies. 
+COMPILING DNSDIST
+----------------------
+See the README in pdns/dnsdistdist.
 
 SOLARIS NOTES
 -------------
@@ -85,24 +91,36 @@ FREEBSD NOTES
 -------------
 You need to compile using gmake - regular make only appears to work, but doesn't in fact. Use gmake, not make.
 
+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.
+
+    export CXXFLAGS=-std=c++11
+
 MAC OS X NOTES
 --------------
 PowerDNS Authoritative Server is available through Homebrew:
 
-    $ brew install pdns
+```
+$ brew install pdns
+```
 
 If you want to compile yourself, the dependencies can be installed using
 Homebrew:
 
-    $ brew install boost lua pkg-config ragel
+```
+$ brew install boost lua pkg-config ragel
+```
 
 For PostgreSQL support:
 
-    $ brew install postgresql
+```
+$ brew install postgresql
+```
 
 For MySQL support:
 
-    $ brew install mariadb
+```
+$ brew install mariadb
+```
 
 LINUX NOTES
 -----------