Unbound - DNS récursif (utilisé par OPNsense)
Find a file
Robert Edmonds c93b4b3158 contrib/libunbound.pc.in: Do not use "Requires:"
This commit updates contrib/libunbound.pc.in to remove the "Requires:"
directive and move its contents to "Requires.private:".

The pkg-config manpage documents the Requires/Libs fields as follows:

   Requires:
          This is a comma-separated list of packages that are required  by
          your package. Flags from dependent packages will be merged in to
          the flags reported for your package. Optionally, you can specify
          the  version  of the required package (using the operators =, <,
          >, >=, <=); specifying a version allows  pkg-config  to  perform
          extra  sanity  checks. You may only mention the same package one
          time on the Requires: line. If the version of a package  is  un‐
          specified, any version will be used with no checking.

   Requires.private:
          A list of packages required by this package. The difference from
          Requires is that the packages listed under Requires.private  are
          not  taken into account when a flag list is computed for dynami‐
          cally linked executable (i.e., when --static was not specified).
          In  the  situation where each .pc file corresponds to a library,
          Requires.private shall be used exclusively to specify the depen‐
          dencies between the libraries.

   Libs:  This  line  should give the link flags specific to your package.
          Don't add any flags for required packages; pkg-config  will  add
          those automatically.

   Libs.private:
          This line should list any private libraries in use.  Private li‐
          braries are libraries which are not  exposed  through  your  li‐
          brary,  but  are needed in the case of static linking. This dif‐
          fers from Requires.private in that it references libraries  that
          do not have package files installed.

In other words:

1) "Requires:" should specify the name of .pc packages that are required
to be installed to compile and dynamically link against libunbound. This
corresponds to needing the -dev (or -devel) package containing the .pc
file to be installed on the system. Since libunbound's header files
actually do not have any includes on any other library's headers, the
"Requires:" directive should be empty.

2) "Requires.private:" specifies the name of .pc packages that
correspond to libraries that are required to be installed to statically
link against libunbound. E.g., if libunbound.a has undefined symbols
event_* that are in libevent.a, statically linking against libunbound.a
requires statically linking libevent.a, and because libevent has a .pc
file, this means "libevent" should appear in libunbound.pc's
"Requires.private:" directive.

3) "Libs:" specifies the link flags needed to link against libunbound,
only, not including any dependencies.

4) "Libs.private:" specifies the link flags needed to statically link
against libraries that libunbound depends on that do not have .pc files.
I think it's possible for unbound's build system to actually declare
link flags under "Libs.private:" for some libraries that do have .pc
files (e.g. libcrypto/-lcrypto, libssl/-lssl, for OpenSSL) but in
practice this appears to be harmless.

Given #1 above that libunbound does not have any header dependencies
against any other packages it does not appear that "Requires:" is needed
at all. See https://bugs.debian.org/958331 for an example of a bug
report that this causes. We should not need to install the nettle-dev
package only for building binaries that compile against the libunbound
headers and link against the libunbound library.
2020-05-25 17:58:37 -04:00
.github Add GitHub Sponsors for Organisations 2020-02-20 09:13:54 +01:00
cachedb - Changes for PR #206 (formatting and remade lex and yacc output). 2020-04-01 17:14:58 +02:00
compat - Changes to compat/getentropy_solaris.c for, 2020-01-07 15:19:15 +02:00
contrib contrib/libunbound.pc.in: Do not use "Requires:" 2020-05-25 17:58:37 -04:00
daemon Merge branch 'master' of git://github.com/PMunch/unbound into PMunch-master 2020-05-15 14:52:53 +02:00
dns64 - Fix compiler warning in dns64/dns64.c. 2020-03-02 11:52:33 +01:00
dnscrypt - Fix compile error in dnscrypt. 2019-12-03 16:44:24 +01:00
dnstap - Add SNI support on more TLS connections (fixes #193). 2020-04-16 14:39:05 +02:00
doc - Update contrib/aaaa-filter-iterator.patch for the recent 2020-05-25 11:49:48 +02:00
dynlibmod - For PR #93: windows compile warnings removal 2020-05-19 14:36:57 +02:00
edns-subnet - Cache ECS answers with longest scope of CNAME chain. 2020-05-15 13:13:49 +02:00
ipsecmod - Fix ipsecmod compile. 2019-12-06 07:59:55 +01:00
ipset - ipset: refactor long routine into three smaller ones. 2019-09-02 15:17:25 +02:00
iterator - CVE-2020-12662 Unbound can be tricked into amplifying an incoming 2020-05-19 10:27:27 +02:00
libunbound Merge branch 'master' of git://github.com/PMunch/unbound into PMunch-master 2020-05-15 14:52:53 +02:00
pythonmod - Fix python examples/calc.py for eval, reported by X41 D-Sec. 2019-11-20 15:07:09 +01:00
respip - Fix RPZ concurrency issue when using auth_zone_reload. 2020-03-26 19:11:57 +01:00
services - For PR #93: windows compile warnings removal 2020-05-19 14:36:57 +02:00
sldns - Fix for integer overflow when printing RDF_TYPE_TIME. 2020-05-21 22:48:57 +02:00
smallapp - For PR #93: checkconf allows python dynlib in module-config, for 2020-05-18 10:18:28 +02:00
testcode - Explicitly use 'rrset-roundrobin: no' for test cases. 2020-04-22 19:27:20 +02:00
testdata - For PR #93: unit test for dynlib module. 2020-05-19 15:49:08 +02:00
util - CVE-2020-12662 Unbound can be tricked into amplifying an incoming 2020-05-19 10:27:27 +02:00
validator Cleanup nettle_ecc_point when verifying for ... 2020-03-02 12:27:45 +01:00
winrc Cleaner image. 2018-12-03 11:24:51 +00:00
.gitattributes - .gitattributes line for githubs code language display. 2016-11-03 08:29:29 +00:00
.gitignore Merge branch 'master' into framestreams 2020-01-30 14:20:31 +01:00
.travis.yml - Fix .travis.yml error, missing 'env' option. 2020-03-19 18:11:22 +01:00
ac_pkg_swig.m4 - Fix #1230: swig version 2.0.0 is required for pythonmod, with 2017-03-07 10:40:45 +00:00
aclocal.m4 - Newer aclocal and libtoolize used for generating configure scripts, 2019-01-24 08:57:47 +00:00
acx_nlnetlabs.m4 - Fix #1434: Fix windows openssl 1.1.0 linking. 2017-09-05 08:28:39 +00:00
acx_python.m4 - Fix #222: --with-rpath, fails to rpath python lib. 2020-04-20 10:04:34 +02:00
ax_pthread.m4 - updated ax_pthread.m4 to version 21 with clang support, this 2015-12-11 12:19:12 +00:00
config.guess - Upgrade config.guess(2020-01-01) and config.sub(2020-01-01). 2020-03-03 18:29:11 +01:00
config.h.in - Fixed conflicts for PR #93 and make configure, yacc, lex. 2020-05-15 14:55:36 +02:00
config.sub - Upgrade config.guess(2020-01-01) and config.sub(2020-01-01). 2020-03-03 18:29:11 +01:00
configure - Release 1.10.1 is 1.10.0 with fixes, code repository continues, 2020-05-19 10:29:37 +02:00
configure.ac - Release 1.10.1 is 1.10.0 with fixes, code repository continues, 2020-05-19 10:29:37 +02:00
install-sh - Newer aclocal and libtoolize used for generating configure scripts, 2019-01-24 08:57:47 +00:00
LICENSE - Fix #551: License change "Regents" to "Copyright holder", matching 2014-02-07 12:43:43 +00:00
ltmain.sh - Newer aclocal and libtoolize used for generating configure scripts, 2019-01-24 08:57:47 +00:00
makedist.sh Update makedist.sh 2020-02-27 19:10:05 -05:00
Makefile.in - For PR #93: fix link of other executables for dynlibmod dependency. 2020-05-18 17:26:01 +02:00
README gmake no longer needed. 2012-02-10 10:34:15 +00:00
README-Travis.md Update README-Travis.md with current procedures 2020-03-26 19:57:58 -04:00
README.md - Update mailing list URL. 2019-12-16 16:03:31 +01:00
systemd.m4 - Fix autoconf of systemd check for lack of pkg-config. 2017-02-13 10:15:01 +00:00

Unbound

Travis Build Status Packaging status Fuzzing Status

Unbound is a validating, recursive, caching DNS resolver. It is designed to be fast and lean and incorporates modern features based on open standards. If you have any feedback, we would love to hear from you. Dont hesitate to create an issue on Github or post a message on the Unbound mailing list. You can lean more about Unbound by reading our documentation.

Compiling

Make sure you have the C toolchain, OpenSSL and its include files, and libexpat installed. Unbound can be compiled and installed using:

./configure && make && make install

You can use libevent if you want. libevent is useful when using many (10000) outgoing ports. By default max 256 ports are opened at the same time and the builtin alternative is equally capable and a little faster.

Use the --with-libevent=dir configure option to compile Unbound with libevent support.

Unbound configuration

All of Unbound's configuration options are described in the man pages, which will be installed and are available on the Unbound documentation page.

An example configuration file is located in doc/example.conf.