Browse Source

New upstream version 4.2.0~alpha1

tags/upstream/4.2.0_alpha1^0
Chris Hofstaedtler 1 year ago
parent
commit
ac87721e76
381 changed files with 41028 additions and 25025 deletions
  1. +0
    -1
      .version
  2. +0
    -1
      AUTHORS
  3. +131
    -39
      INSTALL
  4. +4
    -6
      Makefile.am
  5. +61
    -41
      Makefile.in
  6. +0
    -1
      NEWS
  7. +131
    -39
      README
  8. +242
    -104
      aclocal.m4
  9. +5
    -4
      build-aux/compile
  10. +125
    -72
      build-aux/config.guess
  11. +60
    -23
      build-aux/config.sub
  12. +3
    -3
      build-aux/depcomp
  13. +0
    -39
      build-aux/gen-version
  14. +171
    -204
      build-aux/install-sh
  15. +3505
    -2013
      build-aux/ltmain.sh
  16. +3
    -3
      build-aux/missing
  17. +14
    -5
      build-aux/test-driver
  18. +3
    -3
      build-aux/ylwrap
  19. +65
    -0
      builder-support/gen-version
  20. +36
    -15
      codedocs/Makefile.in
  21. +136
    -5
      config.h.in
  22. +15489
    -12712
      configure
  23. +22
    -21
      configure.ac
  24. +22
    -0
      docs/Makefile.am
  25. +114
    -29
      docs/Makefile.in
  26. +25
    -4
      docs/calidns.1
  27. +2
    -4
      docs/dnsbulktest.1
  28. +2
    -4
      docs/dnsgram.1
  29. +57
    -0
      docs/dnspcap2calidns.1
  30. +2
    -5
      docs/dnspcap2protobuf.1
  31. +5
    -4
      docs/dnsreplay.1
  32. +2
    -4
      docs/dnsscan.1
  33. +14
    -4
      docs/dnsscope.1
  34. +2
    -4
      docs/dnstcpbench.1
  35. +2
    -4
      docs/dnswasher.1
  36. +2
    -4
      docs/dumresp.1
  37. +74
    -0
      docs/ixfrdist.1
  38. +153
    -0
      docs/ixfrdist.yml.5
  39. +2
    -4
      docs/ixplore.1
  40. +1
    -1
      docs/nproxy.1
  41. +2
    -4
      docs/nsec3dig.1
  42. +2
    -4
      docs/pdns_control.1
  43. +2
    -4
      docs/pdns_notify.1
  44. +2
    -4
      docs/pdns_server.1
  45. +14
    -7
      docs/pdnsutil.1
  46. +2
    -4
      docs/saxfr.1
  47. +2
    -4
      docs/sdig.1
  48. +2
    -4
      docs/zone2json.1
  49. +2
    -4
      docs/zone2ldap.1
  50. +2
    -4
      docs/zone2sql.1
  51. +36
    -15
      ext/Makefile.in
  52. +37
    -16
      ext/json11/Makefile.in
  53. +137
    -9
      ext/luawrapper/include/LuaContext.hpp
  54. +36
    -15
      ext/yahttp/Makefile.in
  55. +37
    -16
      ext/yahttp/yahttp/Makefile.in
  56. +71
    -0
      m4/ac_pthread_set_name.m4
  57. +128
    -16
      m4/boost.m4
  58. +272
    -0
      m4/libcurl.m4
  59. +1459
    -1087
      m4/libtool.m4
  60. +90
    -37
      m4/ltoptions.m4
  61. +4
    -3
      m4/ltsugar.m4
  62. +6
    -6
      m4/ltversion.m4
  63. +4
    -3
      m4/lt~obsolete.m4
  64. +1
    -0
      m4/pdns_check_libcrypto.m4
  65. +36
    -0
      m4/pdns_check_libcrypto_eddsa.m4
  66. +4
    -2
      m4/pdns_check_lua_hpp.m4
  67. +2
    -2
      m4/pdns_check_ragel.m4
  68. +18
    -0
      m4/pdns_enable_backend_unit_tests.m4
  69. +0
    -17
      m4/pdns_enable_botan.m4
  70. +11
    -0
      m4/pdns_enable_fuzz_targets.m4
  71. +18
    -0
      m4/pdns_enable_ixfrdist.m4
  72. +7
    -0
      m4/pdns_enable_kiss.m4
  73. +1
    -11
      m4/pdns_enable_unit_tests.m4
  74. +41
    -2
      m4/pdns_with_geo.m4
  75. +8
    -8
      m4/pdns_with_libdecaf.m4
  76. +10
    -10
      m4/pdns_with_libsodium.m4
  77. +54
    -28
      m4/pdns_with_lua.m4
  78. +21
    -0
      m4/pdns_with_lua_records.m4
  79. +0
    -22
      m4/pdns_with_luajit.m4
  80. +2
    -2
      m4/pdns_with_postgresql.m4
  81. +1
    -0
      modules/Makefile.am
  82. +37
    -15
      modules/Makefile.in
  83. +37
    -16
      modules/bindbackend/Makefile.in
  84. +67
    -65
      modules/bindbackend/bindbackend2.cc
  85. +2
    -3
      modules/bindbackend/bindbackend2.hh
  86. +2
    -2
      modules/bindbackend/binddnssec.cc
  87. +6
    -3
      modules/geoipbackend/Makefile.am
  88. +51
    -21
      modules/geoipbackend/Makefile.in
  89. +1
    -1
      modules/geoipbackend/OBJECTFILES
  90. +1
    -1
      modules/geoipbackend/OBJECTLIBS
  91. +183
    -381
      modules/geoipbackend/geoipbackend.cc
  92. +11
    -38
      modules/geoipbackend/geoipbackend.hh
  93. +481
    -0
      modules/geoipbackend/geoipinterface-dat.cc
  94. +278
    -0
      modules/geoipbackend/geoipinterface-mmdb.cc
  95. +67
    -0
      modules/geoipbackend/geoipinterface.cc
  96. +71
    -0
      modules/geoipbackend/geoipinterface.hh
  97. +3
    -0
      modules/gmysqlbackend/4.1.0_to_4.2.0_schema.mysql.sql
  98. +1
    -0
      modules/gmysqlbackend/Makefile.am
  99. +39
    -16
      modules/gmysqlbackend/Makefile.in
  100. +5
    -8
      modules/gmysqlbackend/gmysqlbackend.cc
  101. +1
    -2
      modules/gmysqlbackend/schema.mysql.sql
  102. +11
    -3
      modules/gmysqlbackend/smysql.cc
  103. +1
    -0
      modules/godbcbackend/4.0.0_to_4.2.0_schema.mssql.sql
  104. +2
    -1
      modules/godbcbackend/Makefile.am
  105. +41
    -17
      modules/godbcbackend/Makefile.in
  106. +5
    -8
      modules/godbcbackend/godbcbackend.cc
  107. +0
    -1
      modules/godbcbackend/schema.mssql.sql
  108. +1
    -1
      modules/godbcbackend/sodbc.cc
  109. +4
    -4
      modules/godbcbackend/sodbc.hh
  110. +38
    -16
      modules/goraclebackend/Makefile.in
  111. +5
    -8
      modules/goraclebackend/goraclebackend.cc
  112. +0
    -1
      modules/goraclebackend/schema.goracle.sql
  113. +2
    -2
      modules/goraclebackend/soracle.cc
  114. +1
    -0
      modules/gpgsqlbackend/4.1.0_to_4.2.0_schema.pgsql.sql
  115. +2
    -1
      modules/gpgsqlbackend/Makefile.am
  116. +40
    -17
      modules/gpgsqlbackend/Makefile.in
  117. +5
    -8
      modules/gpgsqlbackend/gpgsqlbackend.cc
  118. +0
    -1
      modules/gpgsqlbackend/schema.pgsql.sql
  119. +13
    -2
      modules/gpgsqlbackend/spgsql.cc
  120. +139
    -0
      modules/gsqlite3backend/3.4.0_to_4.0.0_schema.sqlite3.sql
  121. +39
    -0
      modules/gsqlite3backend/4.0.0_to_4.2.0_schema.sqlite3.sql
  122. +2
    -0
      modules/gsqlite3backend/Makefile.am
  123. +40
    -16
      modules/gsqlite3backend/Makefile.in
  124. +5
    -8
      modules/gsqlite3backend/gsqlite3backend.cc
  125. +0
    -1
      modules/gsqlite3backend/schema.sqlite3.sql
  126. +1
    -0
      modules/ldapbackend/Makefile.am
  127. +43
    -18
      modules/ldapbackend/Makefile.in
  128. +1
    -1
      modules/ldapbackend/OBJECTFILES
  129. +6
    -0
      modules/ldapbackend/exceptions.hh
  130. +120
    -81
      modules/ldapbackend/ldapauthenticator.cc
  131. +14
    -9
      modules/ldapbackend/ldapauthenticator_p.hh
  132. +128
    -627
      modules/ldapbackend/ldapbackend.cc
  133. +54
    -29
      modules/ldapbackend/ldapbackend.hh
  134. +2
    -2
      modules/ldapbackend/ldaputils.cc
  135. +160
    -0
      modules/ldapbackend/master.cc
  136. +446
    -0
      modules/ldapbackend/native.cc
  137. +26
    -0
      modules/ldapbackend/pdns-domaininfo.schema
  138. +143
    -9
      modules/ldapbackend/powerldap.cc
  139. +26
    -3
      modules/ldapbackend/powerldap.hh
  140. +13
    -0
      modules/lua2backend/Makefile.am
  141. +820
    -0
      modules/lua2backend/Makefile.in
  142. +1
    -0
      modules/lua2backend/OBJECTFILES
  143. +1
    -0
      modules/lua2backend/OBJECTLIBS
  144. +30
    -0
      modules/lua2backend/lua2api2.cc
  145. +419
    -0
      modules/lua2backend/lua2api2.hh
  146. +73
    -0
      modules/lua2backend/lua2backend.cc
  147. +30
    -0
      modules/lua2backend/lua2backend.hh
  148. +37
    -16
      modules/luabackend/Makefile.in
  149. +29
    -29
      modules/luabackend/dnssec.cc
  150. +5
    -5
      modules/luabackend/lua_functions.cc
  151. +1
    -1
      modules/luabackend/luabackend.cc
  152. +1
    -3
      modules/luabackend/luabackend.hh
  153. +4
    -4
      modules/luabackend/master.cc
  154. +11
    -11
      modules/luabackend/minimal.cc
  155. +1
    -1
      modules/luabackend/private.cc
  156. +2
    -2
      modules/luabackend/reload.cc
  157. +15
    -50
      modules/luabackend/slave.cc
  158. +4
    -4
      modules/luabackend/supermaster.cc
  159. +38
    -16
      modules/mydnsbackend/Makefile.in
  160. +14
    -14
      modules/mydnsbackend/mydnsbackend.cc
  161. +1
    -0
      modules/mydnsbackend/mydnsbackend.hh
  162. +37
    -16
      modules/opendbxbackend/Makefile.in
  163. +64
    -95
      modules/opendbxbackend/odbxbackend.cc
  164. +2
    -3
      modules/opendbxbackend/odbxbackend.hh
  165. +20
    -15
      modules/opendbxbackend/odbxprivate.cc
  166. +38
    -17
      modules/oraclebackend/Makefile.in
  167. +13
    -58
      modules/oraclebackend/oraclebackend.cc
  168. +0
    -2
      modules/oraclebackend/oraclebackend.hh
  169. +0
    -1
      modules/oraclebackend/schema.oracle.sql
  170. +37
    -16
      modules/pipebackend/Makefile.in
  171. +2
    -2
      modules/pipebackend/coprocess.cc
  172. +16
    -16
      modules/pipebackend/pipebackend.cc
  173. +37
    -16
      modules/randombackend/Makefile.in
  174. +1
    -1
      modules/randombackend/randombackend.cc
  175. +2
    -2
      modules/remotebackend/Gemfile.lock
  176. +1
    -1
      modules/remotebackend/Makefile.am
  177. +49
    -28
      modules/remotebackend/Makefile.in
  178. +8
    -17
      modules/remotebackend/httpconnector.cc
  179. +4
    -4
      modules/remotebackend/pipeconnector.cc
  180. +9
    -55
      modules/remotebackend/remotebackend.cc
  181. +1
    -3
      modules/remotebackend/remotebackend.hh
  182. +0
    -16
      modules/remotebackend/test-remotebackend.cc
  183. +0
    -5
      modules/remotebackend/unittest.rb
  184. +7
    -7
      modules/remotebackend/unixconnector.cc
  185. +7
    -7
      modules/remotebackend/zmqconnector.cc
  186. +37
    -16
      modules/tinydnsbackend/Makefile.in
  187. +2
    -2
      modules/tinydnsbackend/cdb.cc
  188. +15
    -20
      modules/tinydnsbackend/tinydnsbackend.cc
  189. +286
    -43
      pdns/Makefile.am
  190. +763
    -361
      pdns/Makefile.in
  191. +15
    -7
      pdns/anadns.hh
  192. +23
    -27
      pdns/arguments.cc
  193. +9
    -5
      pdns/auth-carbon.cc
  194. +4
    -4
      pdns/auth-packetcache.cc
  195. +4
    -4
      pdns/auth-querycache.cc
  196. +40
    -94
      pdns/backends/gsql/gsqlbackend.cc
  197. +1
    -8
      pdns/backends/gsql/gsqlbackend.hh
  198. +1
    -1
      pdns/backends/gsql/ssql.hh
  199. +204
    -210
      pdns/bindlexer.c
  200. +32
    -31
      pdns/bindparser.cc
  201. +2
    -2
      pdns/bindparser.h
  202. +2
    -2
      pdns/bindparser.hh
  203. +2
    -1
      pdns/bindparser.yy
  204. +1
    -1
      pdns/bindparserclasses.hh
  205. +0
    -263
      pdns/botansigners.cc
  206. +227
    -44
      pdns/calidns.cc
  207. +51
    -19
      pdns/common_startup.cc
  208. +3
    -0
      pdns/common_startup.hh
  209. +10
    -7
      pdns/communicator.cc
  210. +11
    -4
      pdns/communicator.hh
  211. +28
    -27
      pdns/dbdnsseckeeper.cc
  212. +0
    -189
      pdns/delaypipe.cc
  213. +0
    -86
      pdns/delaypipe.hh
  214. +19
    -17
      pdns/distributor.hh
  215. +10
    -3
      pdns/dns.cc
  216. +17
    -11
      pdns/dns.hh
  217. +256
    -51
      pdns/dns_random.cc
  218. +3
    -2
      pdns/dns_random.hh
  219. +2
    -0
      pdns/dns_random_urandom.cc
  220. +10
    -59
      pdns/dnsbackend.cc
  221. +13
    -11
      pdns/dnsbackend.hh
  222. +1
    -1
      pdns/dnsdemog.cc
  223. +467
    -0
      pdns/dnsdist-cache.cc
  224. +126
    -0
      pdns/dnsdist-cache.hh
  225. +734
    -0
      pdns/dnsdist-ecs.cc
  226. +45
    -0
      pdns/dnsdist-ecs.hh
  227. +1
    -1
      pdns/dnsgram.cc
  228. +3
    -1
      pdns/dnsmessage.proto
  229. +1
    -1
      pdns/dnsname.cc
  230. +7
    -12
      pdns/dnsname.hh
  231. +35
    -45
      pdns/dnspacket.cc
  232. +6
    -4
      pdns/dnspacket.hh
  233. +127
    -70
      pdns/dnsparser.cc
  234. +40
    -27
      pdns/dnsparser.hh
  235. +41
    -6
      pdns/dnspcap.cc
  236. +1
    -1
      pdns/dnspcap.hh
  237. +121
    -0
      pdns/dnspcap2calidns.cc
  238. +82
    -64
      pdns/dnsproxy.cc
  239. +1
    -0
      pdns/dnsproxy.hh
  240. +66
    -13
      pdns/dnsrecords.cc
  241. +50
    -10
      pdns/dnsrecords.hh
  242. +30
    -16
      pdns/dnsreplay.cc
  243. +2
    -4
      pdns/dnsscan.cc
  244. +126
    -75
      pdns/dnsscope.cc
  245. +17
    -15
      pdns/dnssecinfra.cc
  246. +1
    -1
      pdns/dnssecinfra.hh
  247. +6
    -9
      pdns/dnsseckeeper.hh
  248. +8
    -4
      pdns/dnssecsigner.cc
  249. +3
    -1
      pdns/dnstcpbench.cc
  250. +20
    -9
      pdns/dnswriter.cc
  251. +24
    -1
      pdns/dnswriter.hh
  252. +7
    -7
      pdns/dynhandler.cc
  253. +34
    -32
      pdns/dynlistener.cc
  254. +5
    -5
      pdns/ednsoptions.cc
  255. +9
    -2
      pdns/ednsoptions.hh
  256. +1
    -1
      pdns/ednssubnet.cc
  257. +22
    -5
      pdns/filterpo.hh
  258. +47
    -0
      pdns/fuzz_dnsdistcache.cc
  259. +63
    -0
      pdns/fuzz_moadnsparser.cc
  260. +57
    -0
      pdns/fuzz_packetcache.cc
  261. +60
    -0
      pdns/fuzz_zoneparsertng.cc
  262. +12
    -17
      pdns/gss_context.cc
  263. +101
    -0
      pdns/histog.hh
  264. +18
    -6
      pdns/iputils.cc
  265. +78
    -25
      pdns/iputils.hh
  266. +37
    -20
      pdns/ixfr.cc
  267. +2
    -1
      pdns/ixfr.hh
  268. +108
    -0
      pdns/ixfrdist-stats.cc
  269. +98
    -0
      pdns/ixfrdist-stats.hh
  270. +49
    -0
      pdns/ixfrdist-web.cc
  271. +10
    -16
      pdns/ixfrdist-web.hh
  272. +1359
    -0
      pdns/ixfrdist.cc
  273. +95
    -0
      pdns/ixfrdist.example.yml
  274. +24
    -0
      pdns/ixfrdist.service.in
  275. +181
    -0
      pdns/ixfrutils.cc
  276. +57
    -0
      pdns/ixfrutils.hh
  277. +175
    -321
      pdns/ixplore.cc
  278. +6
    -2
      pdns/lock.hh
  279. +43
    -22
      pdns/logger.cc
  280. +12
    -9
      pdns/logger.hh
  281. +0
    -253
      pdns/lua-auth.cc
  282. +83
    -183
      pdns/lua-auth4.cc
  283. +14
    -12
      pdns/lua-auth4.hh
  284. +251
    -0
      pdns/lua-base4.cc
  285. +33
    -0
      pdns/lua-base4.hh
  286. +0
    -293
      pdns/lua-iputils.cc
  287. +0
    -465
      pdns/lua-pdns.cc
  288. +0
    -64
      pdns/lua-pdns.hh
  289. +913
    -0
      pdns/lua-record.cc
  290. +33
    -24
      pdns/mastercommunicator.cc
  291. +129
    -0
      pdns/minicurl.cc
  292. +44
    -0
      pdns/minicurl.hh
  293. +119
    -19
      pdns/misc.cc
  294. +10
    -7
      pdns/misc.hh
  295. +6
    -18
      pdns/mplexer.hh
  296. +2
    -2
      pdns/mtasker.cc
  297. +22
    -23
      pdns/nameserver.cc
  298. +1
    -1
      pdns/nameserver.hh
  299. +0
    -1
      pdns/notify.cc
  300. +9
    -5
      pdns/nproxy.cc
  301. +3
    -3
      pdns/nsecrecords.cc
  302. +370
    -174
      pdns/opensslsigners.cc
  303. +1
    -0
      pdns/opensslsigners.hh
  304. +1
    -1
      pdns/packetcache.hh
  305. +210
    -112
      pdns/packethandler.cc
  306. +2
    -3
      pdns/packethandler.hh
  307. +196
    -181
      pdns/pdnsutil.cc
  308. +86
    -34
      pdns/pkcs11signers.cc
  309. +1
    -0
      pdns/pkcs11signers.hh
  310. +188
    -0
      pdns/pollmplexer.cc
  311. +15
    -3
      pdns/protobuf.cc
  312. +5
    -3
      pdns/protobuf.hh
  313. +7
    -1
      pdns/qtype.hh
  314. +0
    -40
      pdns/randomhelper.cc
  315. +67
    -19
      pdns/rcpgenerator.cc
  316. +15
    -2
      pdns/rcpgenerator.hh
  317. +36
    -5
      pdns/rec-lua-conf.hh
  318. +57
    -88
      pdns/receiver.cc
  319. +39
    -21
      pdns/recursor_cache.hh
  320. +106
    -100
      pdns/resolver.cc
  321. +11
    -13
      pdns/resolver.hh
  322. +94
    -118
      pdns/rfc2136handler.cc
  323. +0
    -1
      pdns/saxfr.cc
  324. +35
    -9
      pdns/sdig.cc
  325. +5
    -5
      pdns/secpoll-auth.cc
  326. +0
    -131
      pdns/selectmplexer.cc
  327. +77
    -81
      pdns/serialtweaker.cc
  328. +3
    -3
      pdns/signingpipe.cc
  329. +142
    -127
      pdns/slavecommunicator.cc
  330. +1
    -1
      pdns/sortlist.hh
  331. +14
    -5
      pdns/ssqlite3.cc
  332. +6
    -6
      pdns/ssqlite3.hh
  333. +6
    -29
      pdns/sstuff.hh
  334. +13
    -16
      pdns/statnode.cc
  335. +8
    -7
      pdns/statnode.hh
  336. +0
    -1
      pdns/stubquery.cc
  337. +64
    -29
      pdns/stubresolver.cc
  338. +112
    -115
      pdns/tcpreceiver.cc
  339. +1
    -1
      pdns/test-base64_cc.cc
  340. +3
    -2
      pdns/test-bindparser_cc.cc
  341. +0
    -79
      pdns/test-delaypipe_hh.cc
  342. +130
    -3
      pdns/test-dns_random_hh.cc
  343. +12
    -3
      pdns/test-dnsname_cc.cc
  344. +487
    -0
      pdns/test-dnsparser_cc.cc
  345. +306
    -175
      pdns/test-dnsrecords_cc.cc
  346. +158
    -5
      pdns/test-iputils_hh.cc
  347. +1
    -1
      pdns/test-ixfr_cc.cc
  348. +11
    -2
      pdns/test-lock_hh.cc
  349. +73
    -0
      pdns/test-lua_auth4_cc.cc
  350. +1
    -1
      pdns/test-misc_hh.cc
  351. +1
    -8
      pdns/test-nameserver_cc.cc
  352. +0
    -142
      pdns/test-nmtree.cc
  353. +5
    -4
      pdns/test-packetcache_cc.cc
  354. +32
    -0
      pdns/test-packetcache_hh.cc
  355. +1
    -1
      pdns/test-rcpgenerator_cc.cc
  356. +5
    -25
      pdns/test-signers.cc
  357. +1
    -1
      pdns/test-statbag_cc.cc
  358. +1
    -1
      pdns/test-tsig.cc
  359. +6
    -0
      pdns/testrunner.cc
  360. +69
    -0
      pdns/threadname.cc
  361. +25
    -0
      pdns/threadname.hh
  362. +1
    -1
      pdns/tkey.cc
  363. +1
    -2
      pdns/tsig-tests.cc
  364. +58
    -0
      pdns/tsigutils.cc
  365. +26
    -0
      pdns/tsigutils.hh
  366. +1
    -1
      pdns/tsigverifier.cc
  367. +50
    -31
      pdns/ueberbackend.cc
  368. +4
    -2
      pdns/ueberbackend.hh
  369. +1
    -1
      pdns/unix_semaphore.cc
  370. +13
    -13
      pdns/unix_utility.cc
  371. +52
    -87
      pdns/validate.cc
  372. +2
    -1
      pdns/validate.hh
  373. +38
    -19
      pdns/version.cc
  374. +40
    -43
      pdns/webserver.cc
  375. +43
    -0
      pdns/webserver.hh
  376. +75
    -49
      pdns/ws-api.cc
  377. +0
    -1
      pdns/ws-api.hh
  378. +343
    -98
      pdns/ws-auth.cc
  379. +123
    -14
      pdns/zone2ldap.cc
  380. +3
    -3
      pdns/zone2sql.cc
  381. +9
    -9
      pdns/zoneparser-tng.cc

+ 0
- 1
.version View File

@@ -1 +0,0 @@
4.1.5

+ 0
- 1
AUTHORS View File

@@ -1 +0,0 @@
PowerDNS.COM BV and a cast of thousands ;-)

+ 131
- 39
INSTALL View File

@@ -19,8 +19,8 @@ SOURCE CODE / GIT
-----------------
Source code is available on GitHub:

```
$ git clone https://github.com/PowerDNS/pdns.git
```sh
git clone https://github.com/PowerDNS/pdns.git
```

This repository contains the sources for the PowerDNS Recursor, the PowerDNS
@@ -33,95 +33,187 @@ COMPILING Authoritative Server
The PowerDNS Authoritative Server depends on Boost, OpenSSL and requires a
compiler with C++-2011 support.

On Debian 8.0, the following is useful:
On Debian 9, the following is useful:

```sh
apt install g++ libboost-all-dev libtool make pkg-config default-libmysqlclient-dev libssl-dev virtualenv
```
$ apt-get install g++ libboost-all-dev libtool make pkg-config libmysqlclient-dev libssl-dev

When building from git, the following packages are also required:

```sh
apt install autoconf automake ragel bison flex
```

When building from git, the following packages are also required: autoconf, automake,
ragel, bison and flex, then generate the configure file:
For Ubuntu 18.04 (Bionic Beaver), the following packages should be installed:

```sh
apt install libcurl4-openssl-dev luajit lua-yaml-dev libyaml-cpp-dev libtolua-dev lua5.3 autoconf automake ragel bison flex g++ libboost-all-dev libtool make pkg-config libssl-dev virtualenv lua-yaml-dev libyaml-cpp-dev libluajit-5.1-dev libcurl4 gawk
# For DNSSEC ed25519 (algorithm 15) support with --with-libsodium
apt install libsodium-dev
# If using the gmysql (Generic MySQL) backend
apt install default-libmysqlclient-dev
# If using the gpgsql (Generic PostgreSQL) backend
apt install postgresql-server-dev-10
# If using --enable-systemd (will create the service scripts so it can be managed with systemctl/service)
apt install libsystemd0 libsystemd-dev
# If using the geoip backend
apt install libmaxminddb-dev libmaxminddb0 libgeoip1 libgeoip-dev
```
$ ./bootstrap

Then generate the configure file:

```sh
autoreconf -vi
```

To compile a very clean version, use:

```
$ ./configure --with-modules="" --without-lua
$ make
```sh
./configure --with-modules="" --without-lua --disable-lua-records
make
# make install
```

This generates a PowerDNS Authoritative Server binary with no modules built in.

See https://doc.powerdns.com/authoritative/backends/index.html for a list of available modules.

When `./configure` is run without `--with-modules`, the bind and gmysql module are
built-in by default and the pipe-backend is compiled for runtime loading.

To add multiple modules, try:

```
$ ./configure --with-modules="bind gmysql gpgsql"
```sh
./configure --with-modules="bind gmysql gpgsql"
```

Note that you will need the development headers for PostgreSQL as well in this case.

See https://doc.powerdns.com/md/appendix/compiling-powerdns/ for more details.
See https://doc.powerdns.com/authoritative/appendices/compiling.html for more details.

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.

On macOS, you may need to `brew install openssl` and set `PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig` during configure.

COMPILING THE RECURSOR
Compiling the Recursor
----------------------
See the README in pdns/recursordist.

COMPILING DNSDIST
----------------------
Compiling dnsdist
-----------------
See the README in pdns/dnsdistdist.

SOLARIS NOTES
-------------
Use a recent gcc. OpenCSW is a good source, as is Solaris 11 IPS.
Building the HTML documentation
-------------------------------

If you encounter problems with the Solaris make, gmake is advised.
The HTML documentation (as seen [on the PowerDNS docs site](https://doc.powerdns.com/authoritative/)) is built from ReStructured Text (rst) files located in `docs`. They are compiled into HTML files using [Sphinx](http://www.sphinx-doc.org/en/master/index.html), a documentation generator tool which is built in Python.

FREEBSD NOTES
-------------
You need to compile using gmake - regular make only appears to work, but doesn't in fact. Use gmake, not make.
**Using a normal Python installation**

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.
For those simply contributing to the documentation, this avoids needing to install the various build
tools and other dependencies.

export CXXFLAGS=-std=c++11
Install Python 2.7 or Python 3 (preferable) if you don't yet have it installed. On some operating
systems you may also have to install `python3-pip` or similarly named.

MAC OS X NOTES
--------------
PowerDNS Authoritative Server is available through Homebrew:
Ubuntu 16.04 / 18.04

```sh
apt update
apt install python3 python3-pip python3-venv
```
$ brew install pdns

macOS (using homebrew)

```sh
brew install python3
```

If you want to compile yourself, the dependencies can be installed using
Homebrew:
Update your `pip` and install/update `virtualenv` to avoid problems:

```sh
# for python2, use "pip" instead of "pip3"
pip3 install -U pip
pip3 install -U virtualenv
```
$ brew install boost lua pkg-config ragel

Enter the repository's `docs` folder, set up the virtualenv, and install the requirements

```sh
cd docs
# for python2, use "virtualenv .venv" instead
python3 -m venv .venv
source .venv/bin/activate
# The virtualenv may use an older pip, so upgrade it again
pip3 install -U pip setuptools setuptools-git
# Now you can install the requirements
pip3 install -r requirements.txt
```

For PostgreSQL support:
Finally, you can build the documentation:

```sh
sphinx-build . html-docs
```
$ brew install postgresql

Note: If your shell has problems finding sphinx-build, try using `.venv/bin/sphinx-build` instead.

The HTML documentation is now available in `html-docs`.

**Using the build tools**

This method is preferable for those who already have a working build environment for PowerDNS.

Install the dependencies under "COMPILING", and run autoreconf if you haven't already:

```sh
autoreconf -vi
```

Enter the `docs` folder, and use make to build the HTML docs.

```
cd docs
make html-docs
```

The HTML documentation will now be available in `html-docs`.

Solaris Notes
-------------
Use a recent gcc. OpenCSW is a good source, as is Solaris 11 IPS.

If you encounter problems with the Solaris make, gmake is advised.

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.

```sh
export CXXFLAGS=-std=c++11
```

For MySQL support:
macOS Notes
-----------
PowerDNS Authoritative Server is available through Homebrew:

```
$ brew install mariadb
brew install pdns
```

If you want to compile yourself, the dependencies can be installed using
Homebrew. You need to tell configure where to find OpenSSL, too.

```sh
brew install boost lua pkg-config ragel openssl
./configure --with-modules="" --with-lua PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
make -j4
```

LINUX NOTES
Additionally, for PostgreSQL support, run `brew install postgresql` and add `--with-modules="gpgsql"` to `./configure`.
For MySQL support, run `brew install mariadb` and add `--with-modules="gmysql"` to `./configure`.

Linux notes
-----------
None really.

+ 4
- 6
Makefile.am View File

@@ -1,17 +1,15 @@
SUBDIRS = ext modules codedocs docs

SUBDIRS += pdns
SUBDIRS = ext modules pdns codedocs docs

EXTRA_DIST = \
INSTALL \
NOTICE \
README \
.version \
build-aux/gen-version \
COPYING \
codedocs/doxygen.conf \
contrib/powerdns.solaris.init.d \
pdns/named.conf.parsertest \
regression-tests/zones/unit.test
regression-tests/zones/unit.test \
builder-support/gen-version

ACLOCAL_AMFLAGS = -I m4


+ 61
- 41
Makefile.in View File

@@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.14.1 from Makefile.am.
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# Copyright (C) 1994-2017 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@

@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -78,24 +88,14 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = .
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/configure $(am__configure_deps) \
$(srcdir)/config.h.in AUTHORS COPYING INSTALL NEWS README \
build-aux/compile build-aux/config.guess build-aux/config.sub \
build-aux/install-sh build-aux/missing build-aux/ltmain.sh \
$(top_srcdir)/build-aux/compile \
$(top_srcdir)/build-aux/config.guess \
$(top_srcdir)/build-aux/config.sub \
$(top_srcdir)/build-aux/install-sh \
$(top_srcdir)/build-aux/ltmain.sh \
$(top_srcdir)/build-aux/missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = \
am__aclocal_m4_deps = $(top_srcdir)/m4/ac_pthread_set_name.m4 \
$(top_srcdir)/m4/ax_arg_default_enable_disable.m4 \
$(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/libcurl.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/pdns_check_bison.m4 \
$(top_srcdir)/m4/pdns_check_cdb.m4 \
$(top_srcdir)/m4/pdns_check_clock_gettime.m4 \
@@ -104,8 +104,7 @@ am__aclocal_m4_deps = \
$(top_srcdir)/m4/pdns_check_ldap.m4 \
$(top_srcdir)/m4/pdns_check_libcrypto.m4 \
$(top_srcdir)/m4/pdns_check_libcrypto_ecdsa.m4 \
$(top_srcdir)/m4/pdns_check_libdecaf.m4 \
$(top_srcdir)/m4/pdns_check_libsodium.m4 \
$(top_srcdir)/m4/pdns_check_libcrypto_eddsa.m4 \
$(top_srcdir)/m4/pdns_check_lua_hpp.m4 \
$(top_srcdir)/m4/pdns_check_network_libs.m4 \
$(top_srcdir)/m4/pdns_check_opendbx.m4 \
@@ -114,9 +113,12 @@ am__aclocal_m4_deps = \
$(top_srcdir)/m4/pdns_check_sqlite3.m4 \
$(top_srcdir)/m4/pdns_check_virtualenv.m4 \
$(top_srcdir)/m4/pdns_d_fortify_source.m4 \
$(top_srcdir)/m4/pdns_enable_botan.m4 \
$(top_srcdir)/m4/pdns_enable_backend_unit_tests.m4 \
$(top_srcdir)/m4/pdns_enable_coverage.m4 \
$(top_srcdir)/m4/pdns_enable_fuzz_targets.m4 \
$(top_srcdir)/m4/pdns_enable_gss_tsig.m4 \
$(top_srcdir)/m4/pdns_enable_ixfrdist.m4 \
$(top_srcdir)/m4/pdns_enable_kiss.m4 \
$(top_srcdir)/m4/pdns_enable_malloc_trace.m4 \
$(top_srcdir)/m4/pdns_enable_p11kit.m4 \
$(top_srcdir)/m4/pdns_enable_remotebackend_zeromq.m4 \
@@ -129,8 +131,10 @@ am__aclocal_m4_deps = \
$(top_srcdir)/m4/pdns_pie.m4 $(top_srcdir)/m4/pdns_relro.m4 \
$(top_srcdir)/m4/pdns_stack_protector.m4 \
$(top_srcdir)/m4/pdns_with_geo.m4 \
$(top_srcdir)/m4/pdns_with_libdecaf.m4 \
$(top_srcdir)/m4/pdns_with_libsodium.m4 \
$(top_srcdir)/m4/pdns_with_lua.m4 \
$(top_srcdir)/m4/pdns_with_luajit.m4 \
$(top_srcdir)/m4/pdns_with_lua_records.m4 \
$(top_srcdir)/m4/pdns_with_mysql.m4 \
$(top_srcdir)/m4/pdns_with_oracle.m4 \
$(top_srcdir)/m4/pdns_with_postgresql.m4 \
@@ -141,6 +145,8 @@ am__aclocal_m4_deps = \
$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
$(am__configure_deps) $(am__DIST_COMMON)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
@@ -204,6 +210,15 @@ ETAGS = etags
CTAGS = ctags
CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/build-aux/compile \
$(top_srcdir)/build-aux/config.guess \
$(top_srcdir)/build-aux/config.sub \
$(top_srcdir)/build-aux/install-sh \
$(top_srcdir)/build-aux/ltmain.sh \
$(top_srcdir)/build-aux/missing COPYING INSTALL README \
build-aux/compile build-aux/config.guess build-aux/config.sub \
build-aux/install-sh build-aux/ltmain.sh build-aux/missing
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
@@ -264,8 +279,6 @@ BOOST_ROOT = @BOOST_ROOT@
BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS = @BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS@
BOOST_UNIT_TEST_FRAMEWORK_LDPATH = @BOOST_UNIT_TEST_FRAMEWORK_LDPATH@
BOOST_UNIT_TEST_FRAMEWORK_LIBS = @BOOST_UNIT_TEST_FRAMEWORK_LIBS@
BOTAN_CFLAGS = @BOTAN_CFLAGS@
BOTAN_LIBS = @BOTAN_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CDB_CFLAGS = @CDB_CFLAGS@
@@ -313,6 +326,8 @@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBCRYPTO_INCLUDES = @LIBCRYPTO_INCLUDES@
LIBCRYPTO_LDFLAGS = @LIBCRYPTO_LDFLAGS@
LIBCRYPTO_LIBS = @LIBCRYPTO_LIBS@
LIBCURL = @LIBCURL@
LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@
LIBDECAF_LIBS = @LIBDECAF_LIBS@
LIBDL = @LIBDL@
LIBOBJS = @LIBOBJS@
@@ -325,11 +340,14 @@ LIBZMQ_LIBS = @LIBZMQ_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
LUA_CFLAGS = @LUA_CFLAGS@
LUA_LIBS = @LUA_LIBS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MMDB_CFLAGS = @MMDB_CFLAGS@
MMDB_LIBS = @MMDB_LIBS@
MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_LIBS = @MYSQL_LIBS@
MYSQL_config = @MYSQL_config@
@@ -395,6 +413,7 @@ YAHTTP_LIBS = @YAHTTP_LIBS@
YAML_CFLAGS = @YAML_CFLAGS@
YAML_LIBS = @YAML_LIBS@
YFLAGS = @YFLAGS@
_libcurl_config = @_libcurl_config@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -454,17 +473,17 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = ext modules codedocs docs pdns
SUBDIRS = ext modules pdns codedocs docs
EXTRA_DIST = \
INSTALL \
NOTICE \
README \
.version \
build-aux/gen-version \
COPYING \
codedocs/doxygen.conf \
contrib/powerdns.solaris.init.d \
pdns/named.conf.parsertest \
regression-tests/zones/unit.test
regression-tests/zones/unit.test \
builder-support/gen-version

ACLOCAL_AMFLAGS = -I m4
all: config.h
@@ -486,7 +505,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -701,7 +719,7 @@ distdir: $(DISTFILES)
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
$(am__post_remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
@@ -716,17 +734,17 @@ dist-xz: distdir
$(am__post_remove_distdir)

dist-tarZ: distdir
@echo WARNING: "Support for shar distribution archives is" \
"deprecated." >&2
@echo WARNING: "Support for distribution archives compressed with" \
"legacy program 'compress' is deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__post_remove_distdir)

dist-shar: distdir
@echo WARNING: "Support for distribution archives compressed with" \
"legacy program 'compress' is deprecated." >&2
@echo WARNING: "Support for shar distribution archives is" \
"deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
$(am__post_remove_distdir)

dist-zip: distdir
@@ -744,7 +762,7 @@ dist dist-all:
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lz*) \
@@ -754,23 +772,23 @@ distcheck: dist
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir)
chmod u+w $(distdir)
mkdir $(distdir)/_build $(distdir)/_inst
mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure \
&& $(am__cd) $(distdir)/_build/sub \
&& ../../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
--srcdir=.. --prefix="$$dc_install_base" \
--srcdir=../.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
@@ -945,6 +963,8 @@ uninstall-am:
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am

.PRECIOUS: Makefile


dvi: # do nothing to build dvi


+ 0
- 1
NEWS View File

@@ -1 +0,0 @@
For news, please see http://www.powerdns.com and http://docs.powerdns.com

+ 131
- 39
README View File

@@ -19,8 +19,8 @@ SOURCE CODE / GIT
-----------------
Source code is available on GitHub:

```
$ git clone https://github.com/PowerDNS/pdns.git
```sh
git clone https://github.com/PowerDNS/pdns.git
```

This repository contains the sources for the PowerDNS Recursor, the PowerDNS
@@ -33,95 +33,187 @@ COMPILING Authoritative Server
The PowerDNS Authoritative Server depends on Boost, OpenSSL and requires a
compiler with C++-2011 support.

On Debian 8.0, the following is useful:
On Debian 9, the following is useful:

```sh
apt install g++ libboost-all-dev libtool make pkg-config default-libmysqlclient-dev libssl-dev virtualenv
```
$ apt-get install g++ libboost-all-dev libtool make pkg-config libmysqlclient-dev libssl-dev

When building from git, the following packages are also required:

```sh
apt install autoconf automake ragel bison flex
```

When building from git, the following packages are also required: autoconf, automake,
ragel, bison and flex, then generate the configure file:
For Ubuntu 18.04 (Bionic Beaver), the following packages should be installed:

```sh
apt install libcurl4-openssl-dev luajit lua-yaml-dev libyaml-cpp-dev libtolua-dev lua5.3 autoconf automake ragel bison flex g++ libboost-all-dev libtool make pkg-config libssl-dev virtualenv lua-yaml-dev libyaml-cpp-dev libluajit-5.1-dev libcurl4 gawk
# For DNSSEC ed25519 (algorithm 15) support with --with-libsodium
apt install libsodium-dev
# If using the gmysql (Generic MySQL) backend
apt install default-libmysqlclient-dev
# If using the gpgsql (Generic PostgreSQL) backend
apt install postgresql-server-dev-10
# If using --enable-systemd (will create the service scripts so it can be managed with systemctl/service)
apt install libsystemd0 libsystemd-dev
# If using the geoip backend
apt install libmaxminddb-dev libmaxminddb0 libgeoip1 libgeoip-dev
```
$ ./bootstrap

Then generate the configure file:

```sh
autoreconf -vi
```

To compile a very clean version, use:

```
$ ./configure --with-modules="" --without-lua
$ make
```sh
./configure --with-modules="" --without-lua --disable-lua-records
make
# make install
```

This generates a PowerDNS Authoritative Server binary with no modules built in.

See https://doc.powerdns.com/authoritative/backends/index.html for a list of available modules.

When `./configure` is run without `--with-modules`, the bind and gmysql module are
built-in by default and the pipe-backend is compiled for runtime loading.

To add multiple modules, try:

```
$ ./configure --with-modules="bind gmysql gpgsql"
```sh
./configure --with-modules="bind gmysql gpgsql"
```

Note that you will need the development headers for PostgreSQL as well in this case.

See https://doc.powerdns.com/md/appendix/compiling-powerdns/ for more details.
See https://doc.powerdns.com/authoritative/appendices/compiling.html for more details.

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.

On macOS, you may need to `brew install openssl` and set `PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig` during configure.

COMPILING THE RECURSOR
Compiling the Recursor
----------------------
See the README in pdns/recursordist.

COMPILING DNSDIST
----------------------
Compiling dnsdist
-----------------
See the README in pdns/dnsdistdist.

SOLARIS NOTES
-------------
Use a recent gcc. OpenCSW is a good source, as is Solaris 11 IPS.
Building the HTML documentation
-------------------------------

If you encounter problems with the Solaris make, gmake is advised.
The HTML documentation (as seen [on the PowerDNS docs site](https://doc.powerdns.com/authoritative/)) is built from ReStructured Text (rst) files located in `docs`. They are compiled into HTML files using [Sphinx](http://www.sphinx-doc.org/en/master/index.html), a documentation generator tool which is built in Python.

FREEBSD NOTES
-------------
You need to compile using gmake - regular make only appears to work, but doesn't in fact. Use gmake, not make.
**Using a normal Python installation**

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.
For those simply contributing to the documentation, this avoids needing to install the various build
tools and other dependencies.

export CXXFLAGS=-std=c++11
Install Python 2.7 or Python 3 (preferable) if you don't yet have it installed. On some operating
systems you may also have to install `python3-pip` or similarly named.

MAC OS X NOTES
--------------
PowerDNS Authoritative Server is available through Homebrew:
Ubuntu 16.04 / 18.04

```sh
apt update
apt install python3 python3-pip python3-venv
```
$ brew install pdns

macOS (using homebrew)

```sh
brew install python3
```

If you want to compile yourself, the dependencies can be installed using
Homebrew:
Update your `pip` and install/update `virtualenv` to avoid problems:

```sh
# for python2, use "pip" instead of "pip3"
pip3 install -U pip
pip3 install -U virtualenv
```
$ brew install boost lua pkg-config ragel

Enter the repository's `docs` folder, set up the virtualenv, and install the requirements

```sh
cd docs
# for python2, use "virtualenv .venv" instead
python3 -m venv .venv
source .venv/bin/activate
# The virtualenv may use an older pip, so upgrade it again
pip3 install -U pip setuptools setuptools-git
# Now you can install the requirements
pip3 install -r requirements.txt
```

For PostgreSQL support:
Finally, you can build the documentation:

```sh
sphinx-build . html-docs
```
$ brew install postgresql

Note: If your shell has problems finding sphinx-build, try using `.venv/bin/sphinx-build` instead.

The HTML documentation is now available in `html-docs`.

**Using the build tools**

This method is preferable for those who already have a working build environment for PowerDNS.

Install the dependencies under "COMPILING", and run autoreconf if you haven't already:

```sh
autoreconf -vi
```

Enter the `docs` folder, and use make to build the HTML docs.

```
cd docs
make html-docs
```

The HTML documentation will now be available in `html-docs`.

Solaris Notes
-------------
Use a recent gcc. OpenCSW is a good source, as is Solaris 11 IPS.

If you encounter problems with the Solaris make, gmake is advised.

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.

```sh
export CXXFLAGS=-std=c++11
```

For MySQL support:
macOS Notes
-----------
PowerDNS Authoritative Server is available through Homebrew:

```
$ brew install mariadb
brew install pdns
```

If you want to compile yourself, the dependencies can be installed using
Homebrew. You need to tell configure where to find OpenSSL, too.

```sh
brew install boost lua pkg-config ragel openssl
./configure --with-modules="" --with-lua PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
make -j4
```

LINUX NOTES
Additionally, for PostgreSQL support, run `brew install postgresql` and add `--with-modules="gpgsql"` to `./configure`.
For MySQL support, run `brew install mariadb` and add `--with-modules="gmysql"` to `./configure`.

Linux notes
-----------
None really.

+ 242
- 104
aclocal.m4 View File

@@ -1,6 +1,6 @@
# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-

# Copyright (C) 1996-2013 Free Software Foundation, Inc.
# Copyright (C) 1996-2017 Free Software Foundation, Inc.

# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -20,32 +20,63 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])

# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
# serial 1 (pkg-config-0.24)
#
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
# serial 11 (pkg-config-0.29.1)

# PKG_PROG_PKG_CONFIG([MIN-VERSION])
# ----------------------------------
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl
dnl This program is distributed in the hope that it will be useful, but
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
dnl 02111-1307, USA.
dnl
dnl As a special exception to the GNU General Public License, if you
dnl distribute this file as part of a program that contains a
dnl configuration script generated by Autoconf, you may include it under
dnl the same distribution terms that you use for the rest of that
dnl program.

dnl PKG_PREREQ(MIN-VERSION)
dnl -----------------------
dnl Since: 0.29
dnl
dnl Verify that the version of the pkg-config macros are at least
dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
dnl installed version of pkg-config, this checks the developer's version
dnl of pkg.m4 when generating configure.
dnl
dnl To ensure that this macro is defined, also add:
dnl m4_ifndef([PKG_PREREQ],
dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
dnl
dnl See the "Since" comment for each macro you use to see what version
dnl of the macros you require.
m4_defun([PKG_PREREQ],
[m4_define([PKG_MACROS_VERSION], [0.29.1])
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
])dnl PKG_PREREQ

dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
dnl ----------------------------------
dnl Since: 0.16
dnl
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
dnl first found in the path. Checks that the version of pkg-config found
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
dnl used since that's the first version where most current features of
dnl pkg-config existed.
AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
@@ -67,18 +98,19 @@ if test -n "$PKG_CONFIG"; then
PKG_CONFIG=""
fi
fi[]dnl
])# PKG_PROG_PKG_CONFIG
])dnl PKG_PROG_PKG_CONFIG

# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
#
# Check to see whether a particular set of modules exists. Similar
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
#
# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
# only at the first occurence in configure.ac, so if the first place
# it's called might be skipped (such as if it is within an "if", you
# have to call PKG_CHECK_EXISTS manually
# --------------------------------------------------------------
dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
dnl -------------------------------------------------------------------
dnl Since: 0.18
dnl
dnl Check to see whether a particular set of modules exists. Similar to
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
dnl
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
dnl only at the first occurence in configure.ac, so if the first place
dnl it's called might be skipped (such as if it is within an "if", you
dnl have to call PKG_CHECK_EXISTS manually
AC_DEFUN([PKG_CHECK_EXISTS],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
if test -n "$PKG_CONFIG" && \
@@ -88,8 +120,10 @@ m4_ifvaln([$3], [else
$3])dnl
fi])

# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
# ---------------------------------------------
dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
dnl ---------------------------------------------
dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
dnl pkg_failed based on the result.
m4_define([_PKG_CONFIG],
[if test -n "$$1"; then
pkg_cv_[]$1="$$1"
@@ -101,10 +135,11 @@ m4_define([_PKG_CONFIG],
else
pkg_failed=untried
fi[]dnl
])# _PKG_CONFIG
])dnl _PKG_CONFIG

# _PKG_SHORT_ERRORS_SUPPORTED
# -----------------------------
dnl _PKG_SHORT_ERRORS_SUPPORTED
dnl ---------------------------
dnl Internal check to see if pkg-config supports short errors.
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -112,19 +147,17 @@ if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
else
_pkg_short_errors_supported=no
fi[]dnl
])# _PKG_SHORT_ERRORS_SUPPORTED
])dnl _PKG_SHORT_ERRORS_SUPPORTED


# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
# [ACTION-IF-NOT-FOUND])
#
#
# Note that if there is a possibility the first call to
# PKG_CHECK_MODULES might not happen, you should be sure to include an
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
#
#
# --------------------------------------------------------------
dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
dnl [ACTION-IF-NOT-FOUND])
dnl --------------------------------------------------------------
dnl Since: 0.4.0
dnl
dnl Note that if there is a possibility the first call to
dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
AC_DEFUN([PKG_CHECK_MODULES],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
@@ -178,16 +211,40 @@ else
AC_MSG_RESULT([yes])
$3
fi[]dnl
])# PKG_CHECK_MODULES
])dnl PKG_CHECK_MODULES


# PKG_INSTALLDIR(DIRECTORY)
# -------------------------
# Substitutes the variable pkgconfigdir as the location where a module
# should install pkg-config .pc files. By default the directory is
# $libdir/pkgconfig, but the default can be changed by passing
# DIRECTORY. The user can override through the --with-pkgconfigdir
# parameter.
dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
dnl [ACTION-IF-NOT-FOUND])
dnl ---------------------------------------------------------------------
dnl Since: 0.29
dnl
dnl Checks for existence of MODULES and gathers its build flags with
dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
dnl and VARIABLE-PREFIX_LIBS from --libs.
dnl
dnl Note that if there is a possibility the first call to
dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
dnl configure.ac.
AC_DEFUN([PKG_CHECK_MODULES_STATIC],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
_save_PKG_CONFIG=$PKG_CONFIG
PKG_CONFIG="$PKG_CONFIG --static"
PKG_CHECK_MODULES($@)
PKG_CONFIG=$_save_PKG_CONFIG[]dnl
])dnl PKG_CHECK_MODULES_STATIC


dnl PKG_INSTALLDIR([DIRECTORY])
dnl -------------------------
dnl Since: 0.27
dnl
dnl Substitutes the variable pkgconfigdir as the location where a module
dnl should install pkg-config .pc files. By default the directory is
dnl $libdir/pkgconfig, but the default can be changed by passing
dnl DIRECTORY. The user can override through the --with-pkgconfigdir
dnl parameter.
AC_DEFUN([PKG_INSTALLDIR],
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
m4_pushdef([pkg_description],
@@ -198,16 +255,18 @@ AC_ARG_WITH([pkgconfigdir],
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
m4_popdef([pkg_default])
m4_popdef([pkg_description])
]) dnl PKG_INSTALLDIR
])dnl PKG_INSTALLDIR


# PKG_NOARCH_INSTALLDIR(DIRECTORY)
# -------------------------
# Substitutes the variable noarch_pkgconfigdir as the location where a
# module should install arch-independent pkg-config .pc files. By
# default the directory is $datadir/pkgconfig, but the default can be
# changed by passing DIRECTORY. The user can override through the
# --with-noarch-pkgconfigdir parameter.
dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
dnl --------------------------------
dnl Since: 0.27
dnl
dnl Substitutes the variable noarch_pkgconfigdir as the location where a
dnl module should install arch-independent pkg-config .pc files. By
dnl default the directory is $datadir/pkgconfig, but the default can be
dnl changed by passing DIRECTORY. The user can override through the
dnl --with-noarch-pkgconfigdir parameter.
AC_DEFUN([PKG_NOARCH_INSTALLDIR],
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
m4_pushdef([pkg_description],
@@ -218,13 +277,15 @@ AC_ARG_WITH([noarch-pkgconfigdir],
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
m4_popdef([pkg_default])
m4_popdef([pkg_description])
]) dnl PKG_NOARCH_INSTALLDIR
])dnl PKG_NOARCH_INSTALLDIR


# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
# -------------------------------------------
# Retrieves the value of the pkg-config variable for the given module.
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
dnl -------------------------------------------
dnl Since: 0.28
dnl
dnl Retrieves the value of the pkg-config variable for the given module.
AC_DEFUN([PKG_CHECK_VAR],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
@@ -233,9 +294,77 @@ _PKG_CONFIG([$1], [variable="][$3]["], [$2])
AS_VAR_COPY([$1], [pkg_cv_][$1])

AS_VAR_IF([$1], [""], [$5], [$4])dnl
])# PKG_CHECK_VAR
])dnl PKG_CHECK_VAR

# Copyright (C) 2002-2013 Free Software Foundation, Inc.
dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
dnl [DESCRIPTION], [DEFAULT])
dnl ------------------------------------------
dnl
dnl Prepare a "--with-" configure option using the lowercase
dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
dnl PKG_CHECK_MODULES in a single macro.
AC_DEFUN([PKG_WITH_MODULES],
[
m4_pushdef([with_arg], m4_tolower([$1]))

m4_pushdef([description],
[m4_default([$5], [build with ]with_arg[ support])])

m4_pushdef([def_arg], [m4_default([$6], [auto])])
m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])

m4_case(def_arg,
[yes],[m4_pushdef([with_without], [--without-]with_arg)],
[m4_pushdef([with_without],[--with-]with_arg)])

AC_ARG_WITH(with_arg,
AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
[AS_TR_SH([with_]with_arg)=def_arg])

AS_CASE([$AS_TR_SH([with_]with_arg)],
[yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
[auto],[PKG_CHECK_MODULES([$1],[$2],
[m4_n([def_action_if_found]) $3],
[m4_n([def_action_if_not_found]) $4])])

m4_popdef([with_arg])
m4_popdef([description])
m4_popdef([def_arg])

])dnl PKG_WITH_MODULES

dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
dnl [DESCRIPTION], [DEFAULT])
dnl -----------------------------------------------
dnl
dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
dnl check._[VARIABLE-PREFIX] is exported as make variable.
AC_DEFUN([PKG_HAVE_WITH_MODULES],
[
PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])

AM_CONDITIONAL([HAVE_][$1],
[test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
])dnl PKG_HAVE_WITH_MODULES

dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
dnl [DESCRIPTION], [DEFAULT])
dnl ------------------------------------------------------
dnl
dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
dnl and preprocessor variable.
AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
[
PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])

AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
[AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
])dnl PKG_HAVE_DEFINE_WITH_MODULES

# Copyright (C) 2002-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -247,10 +376,10 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.14'
[am__api_version='1.15'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.14.1], [],
m4_if([$1], [1.15.1], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])

@@ -266,14 +395,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.14.1])dnl
[AM_AUTOMAKE_VERSION([1.15.1])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])

# AM_AUX_DIR_EXPAND -*- Autoconf -*-

# Copyright (C) 2001-2013 Free Software Foundation, Inc.
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -325,7 +454,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`

# AM_CONDITIONAL -*- Autoconf -*-

# Copyright (C) 1997-2013 Free Software Foundation, Inc.
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -356,7 +485,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])

# Copyright (C) 1999-2013 Free Software Foundation, Inc.
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -547,7 +676,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl

# Generate code to set up dependency tracking. -*- Autoconf -*-

# Copyright (C) 1999-2013 Free Software Foundation, Inc.
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -623,7 +752,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],

# Do all the work for Automake. -*- Autoconf -*-

# Copyright (C) 1996-2013 Free Software Foundation, Inc.
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -713,8 +842,8 @@ AC_REQUIRE([AC_PROG_MKDIR_P])dnl
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
@@ -788,6 +917,9 @@ END
AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
fi
fi
dnl The trailing newline in this macro's definition is deliberate, for
dnl backward compatibility and to allow trailing 'dnl'-style comments
dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
])

dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
@@ -817,7 +949,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])

# Copyright (C) 2001-2013 Free Software Foundation, Inc.
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -828,7 +960,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
if test x"${install_sh}" != xset; then
if test x"${install_sh+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -838,7 +970,7 @@ if test x"${install_sh}" != xset; then
fi
AC_SUBST([install_sh])])

# Copyright (C) 2003-2013 Free Software Foundation, Inc.
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -859,7 +991,7 @@ AC_SUBST([am__leading_dot])])

# Check to see how 'make' treats includes. -*- Autoconf -*-

# Copyright (C) 2001-2013 Free Software Foundation, Inc.
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -909,7 +1041,7 @@ rm -f confinc confmf

# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-

# Copyright (C) 1997-2013 Free Software Foundation, Inc.
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -948,7 +1080,7 @@ fi

# Helper functions for option handling. -*- Autoconf -*-

# Copyright (C) 2001-2013 Free Software Foundation, Inc.
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -977,7 +1109,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])

# Copyright (C) 1999-2013 Free Software Foundation, Inc.
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1024,7 +1156,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])

# Copyright (C) 2001-2013 Free Software Foundation, Inc.
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1043,7 +1175,7 @@ AC_DEFUN([AM_RUN_LOG],

# Check to make sure that the build environment is sane. -*- Autoconf -*-

# Copyright (C) 1996-2013 Free Software Foundation, Inc.
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1124,7 +1256,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])

# Copyright (C) 2009-2013 Free Software Foundation, Inc.
# Copyright (C) 2009-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1184,7 +1316,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])

# Copyright (C) 2001-2013 Free Software Foundation, Inc.
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1212,7 +1344,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])

# Copyright (C) 2006-2013 Free Software Foundation, Inc.
# Copyright (C) 2006-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1231,7 +1363,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])

# Check how to create a tarball. -*- Autoconf -*-

# Copyright (C) 2004-2013 Free Software Foundation, Inc.
# Copyright (C) 2004-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1362,9 +1494,11 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR

m4_include([m4/ac_pthread_set_name.m4])
m4_include([m4/ax_arg_default_enable_disable.m4])
m4_include([m4/ax_cxx_compile_stdcxx_11.m4])
m4_include([m4/boost.m4])
m4_include([m4/libcurl.m4])
m4_include([m4/libtool.m4])
m4_include([m4/ltoptions.m4])
m4_include([m4/ltsugar.m4])
@@ -1378,8 +1512,7 @@ m4_include([m4/pdns_check_flex.m4])
m4_include([m4/pdns_check_ldap.m4])
m4_include([m4/pdns_check_libcrypto.m4])
m4_include([m4/pdns_check_libcrypto_ecdsa.m4])
m4_include([m4/pdns_check_libdecaf.m4])
m4_include([m4/pdns_check_libsodium.m4])
m4_include([m4/pdns_check_libcrypto_eddsa.m4])
m4_include([m4/pdns_check_lua_hpp.m4])
m4_include([m4/pdns_check_network_libs.m4])
m4_include([m4/pdns_check_opendbx.m4])
@@ -1388,9 +1521,12 @@ m4_include([m4/pdns_check_ragel.m4])
m4_include([m4/pdns_check_sqlite3.m4])
m4_include([m4/pdns_check_virtualenv.m4])
m4_include([m4/pdns_d_fortify_source.m4])
m4_include([m4/pdns_enable_botan.m4])
m4_include([m4/pdns_enable_backend_unit_tests.m4])
m4_include([m4/pdns_enable_coverage.m4])
m4_include([m4/pdns_enable_fuzz_targets.m4])
m4_include([m4/pdns_enable_gss_tsig.m4])
m4_include([m4/pdns_enable_ixfrdist.m4])
m4_include([m4/pdns_enable_kiss.m4])
m4_include([m4/pdns_enable_malloc_trace.m4])
m4_include([m4/pdns_enable_p11kit.m4])
m4_include([m4/pdns_enable_remotebackend_zeromq.m4])
@@ -1404,8 +1540,10 @@ m4_include([m4/pdns_pie.m4])
m4_include([m4/pdns_relro.m4])
m4_include([m4/pdns_stack_protector.m4])
m4_include([m4/pdns_with_geo.m4])
m4_include([m4/pdns_with_libdecaf.m4])
m4_include([m4/pdns_with_libsodium.m4])
m4_include([m4/pdns_with_lua.m4])
m4_include([m4/pdns_with_luajit.m4])
m4_include([m4/pdns_with_lua_records.m4])
m4_include([m4/pdns_with_mysql.m4])
m4_include([m4/pdns_with_oracle.m4])
m4_include([m4/pdns_with_postgresql.m4])

+ 5
- 4
build-aux/compile View File

@@ -1,9 +1,9 @@
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.

scriptversion=2012-10-14.11; # UTC
scriptversion=2016-01-11.22; # UTC

# Copyright (C) 1999-2013 Free Software Foundation, Inc.
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -255,7 +255,8 @@ EOF
echo "compile $scriptversion"
exit $?
;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
@@ -342,6 +343,6 @@ exit $ret
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:

+ 125
- 72
build-aux/config.guess View File

@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright 1992-2014 Free Software Foundation, Inc.
# Copyright 1992-2017 Free Software Foundation, Inc.

timestamp='2014-03-23'
timestamp='2017-05-27'

# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -24,12 +24,12 @@ timestamp='2014-03-23'
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
#
# Originally written by Per Bothner.
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
#
# Please send patches with a ChangeLog entry to config-patches@gnu.org.
# Please send patches to <config-patches@gnu.org>.


me=`echo "$0" | sed -e 's,.*/,,'`
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)

Originally written by Per Bothner.
Copyright 1992-2014 Free Software Foundation, Inc.
Copyright 1992-2017 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -168,19 +168,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || \
echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
earmv*)
arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
machine=${arch}${endian}-unknown
;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently, or will in the future.
# to ELF recently (or will in the future) and ABI.
case "${UNAME_MACHINE_ARCH}" in
earm*)
os=netbsdelf
;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -197,6 +207,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
os=netbsd
;;
esac
# Determine ABI tags.
case "${UNAME_MACHINE_ARCH}" in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
;;
esac
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
@@ -207,13 +224,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
release='-gnu'
;;
*)
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
echo "${machine}-${os}${release}${abi}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
@@ -223,6 +240,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
exit ;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
exit ;;
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
exit ;;
@@ -235,6 +256,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
exit ;;
*:Sortix:*:*)
echo ${UNAME_MACHINE}-unknown-sortix
exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
@@ -251,42 +275,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
UNAME_MACHINE="alpha" ;;
UNAME_MACHINE=alpha ;;
"EV4.5 (21064)")
UNAME_MACHINE="alpha" ;;
UNAME_MACHINE=alpha ;;
"LCA4 (21066/21068)")
UNAME_MACHINE="alpha" ;;
UNAME_MACHINE=alpha ;;
"EV5 (21164)")
UNAME_MACHINE="alphaev5" ;;
UNAME_MACHINE=alphaev5 ;;
"EV5.6 (21164A)")
UNAME_MACHINE="alphaev56" ;;
UNAME_MACHINE=alphaev56 ;;
"EV5.6 (21164PC)")
UNAME_MACHINE="alphapca56" ;;
UNAME_MACHINE=alphapca56 ;;
"EV5.7 (21164PC)")
UNAME_MACHINE="alphapca57" ;;
UNAME_MACHINE=alphapca57 ;;
"EV6 (21264)")
UNAME_MACHINE="alphaev6" ;;
UNAME_MACHINE=alphaev6 ;;
"EV6.7 (21264A)")
UNAME_MACHINE="alphaev67" ;;
UNAME_MACHINE=alphaev67 ;;
"EV6.8CB (21264C)")
UNAME_MACHINE="alphaev68" ;;
UNAME_MACHINE=alphaev68 ;;
"EV6.8AL (21264B)")
UNAME_MACHINE="alphaev68" ;;
UNAME_MACHINE=alphaev68 ;;
"EV6.8CX (21264D)")
UNAME_MACHINE="alphaev68" ;;
UNAME_MACHINE=alphaev68 ;;
"EV6.9A (21264/EV69A)")
UNAME_MACHINE="alphaev69" ;;
UNAME_MACHINE=alphaev69 ;;
"EV7 (21364)")
UNAME_MACHINE="alphaev7" ;;
UNAME_MACHINE=alphaev7 ;;
"EV7.9 (21364A)")
UNAME_MACHINE="alphaev79" ;;
UNAME_MACHINE=alphaev79 ;;
esac
# A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
@@ -359,16 +383,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
eval $set_cc_for_build
SUN_ARCH="i386"
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
SUN_ARCH="x86_64"
SUN_ARCH=x86_64
fi
fi
echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
@@ -393,7 +417,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo m68k-sun-sunos${UNAME_RELEASE}
@@ -579,8 +603,9 @@ EOF
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
if [ -x /usr/bin/lslpp ] ; then
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
@@ -617,13 +642,13 @@ EOF
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "${sc_kernel_bits}" in
32) HP_ARCH="hppa2.0n" ;;
64) HP_ARCH="hppa2.0w" ;;
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
@@ -662,11 +687,11 @@ EOF
exit (0);
}
EOF
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
(CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
if [ ${HP_ARCH} = "hppa2.0w" ]
if [ ${HP_ARCH} = hppa2.0w ]
then
eval $set_cc_for_build

@@ -679,12 +704,12 @@ EOF
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
# => hppa64-hp-hpux11.23

if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
grep -q __LP64__
then
HP_ARCH="hppa2.0w"