mirror of https://github.com/getdnsapi/getdns.git
If we want to use only libidn2 then we need to move to bionic for the travis build (the libidn2 package for xenial is too old!). So update the travis build for this.
Fix the default mode for STUB_ONLY build for Windows vs linux
This commit is contained in:
parent
38f59b7bea
commit
b455c3feca
|
@ -1,5 +1,5 @@
|
||||||
sudo: false
|
sudo: false
|
||||||
dist: xenial
|
dist: bionic
|
||||||
language: c
|
language: c
|
||||||
compiler:
|
compiler:
|
||||||
- gcc
|
- gcc
|
||||||
|
@ -9,7 +9,7 @@ addons:
|
||||||
packages:
|
packages:
|
||||||
- libssl-dev
|
- libssl-dev
|
||||||
- libunbound-dev
|
- libunbound-dev
|
||||||
- libidn11-dev
|
- libidn2-0-dev
|
||||||
- libyaml-dev
|
- libyaml-dev
|
||||||
- check
|
- check
|
||||||
- libevent-dev
|
- libevent-dev
|
||||||
|
|
|
@ -106,7 +106,11 @@ option(ENABLE_DRAFT_MDNS_SUPPORT "Enable draft mdns client support.")
|
||||||
option(ENABLE_EDNS_COOKIES "Enable EDNS cookies." ON)
|
option(ENABLE_EDNS_COOKIES "Enable EDNS cookies." ON)
|
||||||
option(ENABLE_NATIVE_STUB_DNSSEC "Enable native stub DNSSEC support." ON)
|
option(ENABLE_NATIVE_STUB_DNSSEC "Enable native stub DNSSEC support." ON)
|
||||||
option(ENABLE_POLL_EVENTLOOP "Enable default eventloop based on poll." ON)
|
option(ENABLE_POLL_EVENTLOOP "Enable default eventloop based on poll." ON)
|
||||||
option(ENABLE_STUB_ONLY "Restrict resolution modes to STUB." ON)
|
if (WIN32)
|
||||||
|
option(ENABLE_STUB_ONLY "Restrict resolution modes to STUB." ON)
|
||||||
|
else()
|
||||||
|
option(ENABLE_STUB_ONLY "Restrict resolution modes to STUB." OFF)
|
||||||
|
endif()
|
||||||
option(ENABLE_TCP_FAST_OPEN "Enable use of TCP Fast Open." ON)
|
option(ENABLE_TCP_FAST_OPEN "Enable use of TCP Fast Open." ON)
|
||||||
option(ENABLE_UNBOUND_EVENT_API "Enable usage of libunbound's event API." ON)
|
option(ENABLE_UNBOUND_EVENT_API "Enable usage of libunbound's event API." ON)
|
||||||
|
|
||||||
|
@ -342,7 +346,7 @@ endif ()
|
||||||
|
|
||||||
# Libidn2
|
# Libidn2
|
||||||
if (USE_LIBIDN2)
|
if (USE_LIBIDN2)
|
||||||
find_package(Libidn2 "2.0.0")
|
find_package(Libidn2 "2.0.0" REQUIRED)
|
||||||
if (Libidn2_FOUND)
|
if (Libidn2_FOUND)
|
||||||
set(HAVE_LIBIDN2 1)
|
set(HAVE_LIBIDN2 1)
|
||||||
else()
|
else()
|
||||||
|
@ -859,7 +863,7 @@ if (BUILD_GETDNS_SERVER_MON)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (BUILD_TESTING)
|
if (BUILD_TESTING)
|
||||||
find_package(Check "0.9.6")
|
find_package(Check "0.9.6" REQUIRED)
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
message(WARNING "test programs do not build on Windows, skipping.")
|
message(WARNING "test programs do not build on Windows, skipping.")
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
* 2019-11: Version 1.6.0-beta1
|
* 2019-11: Version 1.6.0-beta1
|
||||||
* Migration of build system to cmake. Build now works on Unbuntu,
|
* Migration of build system to cmake. Build now works on Ubuntu,
|
||||||
CentOS, Windows 10 and macOS. Some notes on minor differences in the new
|
Windows 10 and macOS. Some notes on minor differences in the new cmake build:
|
||||||
cmake build:
|
|
||||||
* OpenSSL 1.0.2 or higher is now required
|
* OpenSSL 1.0.2 or higher is now required
|
||||||
* libunbound 1.5.9 is now required
|
* libunbound 1.5.9 is now required
|
||||||
* Only libidn2 is supported (not libidn)
|
* Only libidn2 2.0.0 and later is supported (not libidn)
|
||||||
|
* Windows uses ENABLE_STUB_ONLY=ON as the default
|
||||||
* Regression tests work on Linux/macOS (not Windows yet)
|
* Regression tests work on Linux/macOS (not Windows yet)
|
||||||
|
|
||||||
* 2019-04-03: Version 1.5.2
|
* 2019-04-03: Version 1.5.2
|
||||||
|
|
18
README.md
18
README.md
|
@ -67,7 +67,7 @@ The following requirements were met as conditions for the present release:
|
||||||
|
|
||||||
If you are installing from packages, you have to install the library and also the library-devel (or -dev) for your package management system to get the the necessary compile time files.
|
If you are installing from packages, you have to install the library and also the library-devel (or -dev) for your package management system to get the the necessary compile time files.
|
||||||
|
|
||||||
External dependencies are linked outside the getdns API build tree (we rely on cmake to find them). We would like to keep the dependency tree short, see (#minimizing-dependancies) for more details.
|
External dependencies are linked outside the getdns API build tree (we rely on cmake to find them). We would like to keep the dependency tree short, see [Minimising Dependancies](#minimizing-dependancies) for more details.
|
||||||
|
|
||||||
Required for all builds:
|
Required for all builds:
|
||||||
|
|
||||||
|
@ -75,11 +75,11 @@ Required for all builds:
|
||||||
|
|
||||||
Required for all builds that include recursive functionality:
|
Required for all builds that include recursive functionality:
|
||||||
|
|
||||||
* [libunbound from NLnet Labs](https://unbound.net/) version 1.5.9 or later. (Note: linking to libunbound is not yet supported on Windows, see (#microsoft-windows-10))
|
* [libunbound from NLnet Labs](https://unbound.net/) version 1.5.9 or later. (Note: linking to libunbound is not yet supported on Windows, see [Windows 10](#microsoft-windows-10))
|
||||||
|
|
||||||
Required for all builds that include IDN functionality:
|
Required for all builds that include IDN functionality:
|
||||||
|
|
||||||
* [libidn2 from the FSF](https://www.gnu.org/software/libidn/) from version 2.0.0 and higher.
|
* [libidn2 from the FSF](https://www.gnu.org/software/libidn/) version 2.0.0 and higher.
|
||||||
|
|
||||||
Required to build the documentation:
|
Required to build the documentation:
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ As well as building the getdns library two other tools are installed by default:
|
||||||
* getdns_query: a command line test script wrapper for getdns. This can be used to quickly check the functionality of the library, see (#using-getdnsquery)
|
* getdns_query: a command line test script wrapper for getdns. This can be used to quickly check the functionality of the library, see (#using-getdnsquery)
|
||||||
* getdns_server_mon: test DNS server function and capabilities
|
* getdns_server_mon: test DNS server function and capabilities
|
||||||
|
|
||||||
Additionally `Stubby` a DNS Privacy enabled client can also be built and installed by using the `BUILD_STUBBY` option when running `cmake`, see (#stubby).
|
Additionally `Stubby` a DNS Privacy enabled client can also be built and installed by using the `BUILD_STUBBY` option when running `cmake`, see [Stubby](#stubby).
|
||||||
|
|
||||||
|
|
||||||
## Minimizing dependencies
|
## Minimizing dependencies
|
||||||
|
@ -158,7 +158,7 @@ The library will try to load the root trust anchor from
|
||||||
or more `DS` or `DNSKEY` resource records in presentation (i.e. zone file)
|
or more `DS` or `DNSKEY` resource records in presentation (i.e. zone file)
|
||||||
format. Note that this is different than the format of BIND.keys.
|
format. Note that this is different than the format of BIND.keys.
|
||||||
|
|
||||||
##$ Zero configuration DNSSEC
|
## Zero configuration DNSSEC
|
||||||
|
|
||||||
When the root trust anchor is not installed in the default location and a DNSSEC query is done, getdns will try to use the trust anchors published here: http://data.iana.org/root-anchors/root-anchors.xml .
|
When the root trust anchor is not installed in the default location and a DNSSEC query is done, getdns will try to use the trust anchors published here: http://data.iana.org/root-anchors/root-anchors.xml .
|
||||||
It will validate these anchors with the ICANN Certificate Authority certificate following the procedure described in [RFC7958].
|
It will validate these anchors with the ICANN Certificate Authority certificate following the procedure described in [RFC7958].
|
||||||
|
@ -269,6 +269,10 @@ build the packages; this is simply the one we chose to use.
|
||||||
# . /usr/local/rvm/config/alias
|
# . /usr/local/rvm/config/alias
|
||||||
# fpm -x "*.la" -a native -s dir -t rpm -n getdns -v <version> -d "unbound" -d "libevent" -d "libidn" --prefix /usr --vendor "Verisign Inc., NLnet Labs" --license "BSD New" --url "https://getdnsapi.net" --description "Modern asynchronous API to the DNS" .
|
# fpm -x "*.la" -a native -s dir -t rpm -n getdns -v <version> -d "unbound" -d "libevent" -d "libidn" --prefix /usr --vendor "Verisign Inc., NLnet Labs" --license "BSD New" --url "https://getdnsapi.net" --description "Modern asynchronous API to the DNS" .
|
||||||
|
|
||||||
|
## Ubuntu
|
||||||
|
|
||||||
|
getdns should also work on Ubuntu 16.04, however if you require IDN functionally you will have to install a recent version of libidn2 via a ppa e.g. from https://launchpad.net/~ondrej/+archive/ubuntu/php
|
||||||
|
|
||||||
## OSX
|
## OSX
|
||||||
|
|
||||||
A self-compiled version of OpenSSL or the version installed via Homebrew is required and the options OPENSSL_ROOT_DIR, OPENSSL_CRYPTO_LIBRARY and OPENSSL_SSL_LIBRARY can be used to specify the location of the libraries.
|
A self-compiled version of OpenSSL or the version installed via Homebrew is required and the options OPENSSL_ROOT_DIR, OPENSSL_CRYPTO_LIBRARY and OPENSSL_SSL_LIBRARY can be used to specify the location of the libraries.
|
||||||
|
@ -289,7 +293,9 @@ Additionally, getdns is linked against the the OpenSSL library installed by Home
|
||||||
TODO: Update with latest build instructions...
|
TODO: Update with latest build instructions...
|
||||||
|
|
||||||
### Dependencies
|
### Dependencies
|
||||||
|
|
||||||
The following dependencies are
|
The following dependencies are
|
||||||
|
|
||||||
* openssl-1.0.2j
|
* openssl-1.0.2j
|
||||||
* libidn
|
* libidn
|
||||||
|
|
||||||
|
@ -297,7 +303,7 @@ The following dependencies are
|
||||||
|
|
||||||
Full support for Windows is a work in progress. The following limitations will hopefully be addresses in future:
|
Full support for Windows is a work in progress. The following limitations will hopefully be addresses in future:
|
||||||
|
|
||||||
* Since no natively built libunbound DLL is available, support for linking against libunbound is not currently available.
|
* Since no natively built libunbound DLL is available, support for linking against libunbound is not currently available. The default build option for ENABLE_STUB_ONLY_ is ON for Windows.
|
||||||
* The regression tests do not currently run natively on Windows (they require `bash`)
|
* The regression tests do not currently run natively on Windows (they require `bash`)
|
||||||
* The detection of the location of the `hosts` file should be optimised - it currently assumes Windows is installed in the default directory on the C: drive
|
* The detection of the location of the `hosts` file should be optimised - it currently assumes Windows is installed in the default directory on the C: drive
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue