#180 Master fails to build against bind 9.12.3_p4
Opened 4 years ago by benroberts. Modified 4 years ago

Problem

What does not work as expected?

Attempting to build master (11.1 source tarball patched with the delta between the release tag and current master branch) is failing with multiple errors I don't know how to troubleshoot.

Source ebuild: https://github.com/optiz0r/gentoo-overlay/blob/master/net-dns/bind-dyndb-ldap/bind-dyndb-ldap-11.1-r2.ebuild
Using patch: https://github.com/optiz0r/gentoo-overlay/blob/master/net-dns/bind-dyndb-ldap/files/pr177-11.1-r2.patch (constructed from git diff v11.1..master -- src > pr177-11.1-r2.patch)

==== Compiling net-dns/bind-dyndb-ldap ====
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) net-dns/bind-dyndb-ldap-11.1-r2::sihnon
>>> Failed to emerge net-dns/bind-dyndb-ldap-11.1-r2, Log file:
>>>  '/var/tmp/portage/net-dns/bind-dyndb-ldap-11.1-r2/temp/build.log'
 * Package:    net-dns/bind-dyndb-ldap-11.1-r2
 * Repository: sihnon
 * USE:        abi_x86_64 amd64 elibc_glibc kernel_linux userland_GNU
 * FEATURES:   preserve-libs sandbox userpriv usersandbox
 * Applying pr177-11.1-r2.patch ...
 [ ok ]
 * Running eautoreconf in '/var/tmp/portage/net-dns/bind-dyndb-ldap-11.1-r2/work/bind-dyndb-ldap-11.1' ...
 * Running libtoolize --install --copy --force --automake ...
 [ ok ]
 * Running aclocal -I m4 ...
 [ ok ]
 * Running autoconf --force ...
 [ ok ]
 * Running autoheader ...
 [ ok ]
 * Running automake --add-missing --copy --foreign --force-missing ...
 [ ok ]
 * Running elibtoolize in: bind-dyndb-ldap-11.1/
 *   Applying portage/1.2.0 patch ...
 *   Applying sed/1.5.6 patch ...
 *   Applying as-needed/2.4.3 patch ...
checking for a BSD-compatible install... /usr/lib/portage/python3.6/ebuild-helpers/xattr/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for style of include used by make... GNU
checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes
checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed
checking whether x86_64-pc-linux-gnu-gcc understands -c and -o together... yes
checking dependency style of x86_64-pc-linux-gnu-gcc... none
checking for x86_64-pc-linux-gnu-ar... x86_64-pc-linux-gnu-ar
checking the archiver (x86_64-pc-linux-gnu-ar) interface... ar
checking for x86_64-pc-linux-gnu-gcc... (cached) x86_64-pc-linux-gnu-gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether x86_64-pc-linux-gnu-gcc accepts -g... (cached) yes
checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... (cached) none needed
checking whether x86_64-pc-linux-gnu-gcc understands -c and -o together... (cached) yes
checking dependency style of x86_64-pc-linux-gnu-gcc... (cached) none
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by x86_64-pc-linux-gnu-gcc... /usr/x86_64-pc-linux-gnu/bin/ld
checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/x86_64-pc-linux-gnu-nm -B
checking the name lister (/usr/bin/x86_64-pc-linux-gnu-nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/x86_64-pc-linux-gnu/bin/ld option to reload object files... -r
checking for x86_64-pc-linux-gnu-objdump... x86_64-pc-linux-gnu-objdump
checking how to recognize dependent libraries... pass_all
checking for x86_64-pc-linux-gnu-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for x86_64-pc-linux-gnu-ar... (cached) x86_64-pc-linux-gnu-ar
checking for archiver @FILE support... @
checking for x86_64-pc-linux-gnu-strip... x86_64-pc-linux-gnu-strip
checking for x86_64-pc-linux-gnu-ranlib... x86_64-pc-linux-gnu-ranlib
checking command to parse /usr/bin/x86_64-pc-linux-gnu-nm -B output from x86_64-pc-linux-gnu-gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for x86_64-pc-linux-gnu-mt... no
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if x86_64-pc-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no
checking for x86_64-pc-linux-gnu-gcc option to produce PIC... -fPIC -DPIC
checking if x86_64-pc-linux-gnu-gcc PIC flag -fPIC -DPIC works... yes
checking if x86_64-pc-linux-gnu-gcc static flag -static works... yes
checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... yes
checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... (cached) yes
checking whether the x86_64-pc-linux-gnu-gcc linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for size_t... yes
checking for memset... yes
checking for strcasecmp... yes
checking for strncasecmp... yes
checking for -fvisibility=hidden compiler flag... yes
checking for -fno-delete-null-pointer-checks compiler flag... yes
checking for isc-config.sh... /usr/bin/isc-config.sh
checking for working isc-config... yes
checking for isc_dir_open in -lisc... yes
checking for dns_name_init in -ldns... yes
checking for ldap_initialize in -lldap... yes
checking for krb5_cc_initialize in -lkrb5... yes
checking for uuid_unparse in -luuid... yes
checking libdns version... 1207
checking isc_errno_toresult availability... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating src/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
Making all in doc
Making all in src
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wextra -Werror -std=gnu99 -O2 -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O2 -march=x86-64 -pipe -fvisibility=hidden -fno-delete-null-pointer-checks -c empty_zones.c  -fPIC -DPIC -o .libs/ldap_la-empty_zones.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wextra -Werror -std=gnu99 -O2 -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O2 -march=x86-64 -pipe -fvisibility=hidden -fno-delete-null-pointer-checks -c fwd_register.c  -fPIC -DPIC -o .libs/ldap_la-fwd_register.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wextra -Werror -std=gnu99 -O2 -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O2 -march=x86-64 -pipe -fvisibility=hidden -fno-delete-null-pointer-checks -c ldap_convert.c  -fPIC -DPIC -o .libs/ldap_la-ldap_convert.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wextra -Werror -std=gnu99 -O2 -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O2 -march=x86-64 -pipe -fvisibility=hidden -fno-delete-null-pointer-checks -c fwd.c  -fPIC -DPIC -o .libs/ldap_la-fwd.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wextra -Werror -std=gnu99 -O2 -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O2 -march=x86-64 -pipe -fvisibility=hidden -fno-delete-null-pointer-checks -c fs.c  -fPIC -DPIC -o .libs/ldap_la-fs.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wextra -Werror -std=gnu99 -O2 -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O2 -march=x86-64 -pipe -fvisibility=hidden -fno-delete-null-pointer-checks -c acl.c  -fPIC -DPIC -o .libs/ldap_la-acl.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wextra -Werror -std=gnu99 -O2 -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O2 -march=x86-64 -pipe -fvisibility=hidden -fno-delete-null-pointer-checks -c krb5_helper.c  -fPIC -DPIC -o .libs/ldap_la-krb5_helper.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wextra -Werror -std=gnu99 -O2 -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O2 -march=x86-64 -pipe -fvisibility=hidden -fno-delete-null-pointer-checks -c bindcfg.c  -fPIC -DPIC -o .libs/ldap_la-bindcfg.o
In file included from /usr/include/isc/assertions.h:19:0,
                 from /usr/include/isc/list.h:15,
                 from /usr/include/isc/types.h:35,
                 from /usr/include/isc/result.h:19,
                 from empty_zones.c:3:
empty_zones.c: In function ‘empty_zone_handle_globalfwd_ev’:
empty_zones.c:362:44: error: passing argument 1 of ‘empty_zone_handle_conflicts’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
  RUNTIME_CHECK(empty_zone_handle_conflicts(dns_rootname, pevent->ev_arg,
                                            ^
empty_zones.c:301:1: note: expected ‘dns_name_t * {aka struct dns_name *}’ but argument is of type ‘const dns_name_t * {aka const struct dns_name *}’
 empty_zone_handle_conflicts(dns_name_t *name, dns_zt_t *zonetable,
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
acl.c: In function ‘get_match_type’:
acl.c:108:16: error: ‘DNS_SSUMATCHTYPE_NAME’ undeclared (first use in this function); did you mean ‘DNS_RPZ_TYPE_QNAME’?
  MATCH("name", DNS_SSUMATCHTYPE_NAME);
                ^
acl.c:64:13: note: in definition of macro ‘MATCH’
    *value = return_val;    \
             ^~~~~~~~~~
acl.c:108:16: note: each undeclared identifier is reported only once for each function it appears in
  MATCH("name", DNS_SSUMATCHTYPE_NAME);
                ^
acl.c:64:13: note: in definition of macro ‘MATCH’
    *value = return_val;    \
             ^~~~~~~~~~
acl.c:109:21: error: ‘DNS_SSUMATCHTYPE_SUBDOMAIN’ undeclared (first use in this function); did you mean ‘DNS_SSUMATCHTYPE_NAME’?
  MATCH("subdomain", DNS_SSUMATCHTYPE_SUBDOMAIN);
                     ^
acl.c:64:13: note: in definition of macro ‘MATCH’
    *value = return_val;    \
             ^~~~~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [Makefile:531: ldap_la-empty_zones.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
fwd.c: In function ‘fwd_reconfig_global’:
fwd.c:640:59: error: passing argument 2 of ‘zr_get_zone_settings’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
  result = zr_get_zone_settings(ldap_instance_getzr(inst), dns_rootname,
                                                           ^~~~~~~~~~~~
In file included from fwd.c:23:0:
zone_register.h:43:1: note: expected ‘dns_name_t * {aka struct dns_name *}’ but argument is of type ‘const dns_name_t * {aka const struct dns_name *}’
 zr_get_zone_settings(zone_register_t *zr, dns_name_t *name, settings_set_t **set) ATTR_NONNULLS ATTR_CHECKRESULT;
 ^~~~~~~~~~~~~~~~~~~~
In file included from bindcfg.h:10:0,
                 from fwd.c:17:
fwd.c:652:52: error: passing argument 3 of ‘fwd_configure_zone’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
  CHECK(fwd_configure_zone(toplevel_settings, inst, dns_rootname));
                                                    ^
util.h:30:13: note: in definition of macro ‘CHECK’
   result = (op);     \
             ^~
fwd.c:498:1: note: expected ‘dns_name_t * {aka struct dns_name *}’ but argument is of type ‘const dns_name_t * {aka const struct dns_name *}’
 fwd_configure_zone(const settings_set_t *set, ldap_instance_t *inst,
 ^~~~~~~~~~~~~~~~~~
acl.c:111:20: error: ‘DNS_SSUMATCHTYPE_WILDCARD’ undeclared (first use in this function); did you mean ‘DNS_SSUMATCHTYPE_SUBDOMAIN’?
  MATCH("wildcard", DNS_SSUMATCHTYPE_WILDCARD);
                    ^
acl.c:64:13: note: in definition of macro ‘MATCH’
    *value = return_val;    \
             ^~~~~~~~~~
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wextra -Werror -std=gnu99 -O2 -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O2 -march=x86-64 -pipe -fvisibility=hidden -fno-delete-null-pointer-checks -c ldap_driver.c  -fPIC -DPIC -o .libs/ldap_la-ldap_driver.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wextra -Werror -std=gnu99 -O2 -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O2 -march=x86-64 -pipe -fvisibility=hidden -fno-delete-null-pointer-checks -c ldap_entry.c  -fPIC -DPIC -o .libs/ldap_la-ldap_entry.o
acl.c:112:16: error: ‘DNS_SSUMATCHTYPE_SELF’ undeclared (first use in this function); did you mean ‘DNS_SSUMATCHTYPE_NAME’?
  MATCH("self", DNS_SSUMATCHTYPE_SELF);
                ^
acl.c:64:13: note: in definition of macro ‘MATCH’
    *value = return_val;    \
             ^~~~~~~~~~
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wextra -Werror -std=gnu99 -O2 -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O2 -march=x86-64 -pipe -fvisibility=hidden -fno-delete-null-pointer-checks -c ldap_helper.c  -fPIC -DPIC -o .libs/ldap_la-ldap_helper.o
acl.c: In function ‘acl_configure_zone_ssutable’:
acl.c:316:21: error: ‘DNS_SSUMATCHTYPE_SUBDOMAIN’ undeclared (first use in this function); did you mean ‘DNS_R_NCACHENXDOMAIN’?
       match_type == DNS_SSUMATCHTYPE_SUBDOMAIN) {
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
                     DNS_R_NCACHENXDOMAIN
acl.c:327:21: error: ‘DNS_SSUMATCHTYPE_WILDCARD’ undeclared (first use in this function); did you mean ‘DNS_SSUMATCHTYPE_SUBDOMAIN’?
   if (match_type == DNS_SSUMATCHTYPE_WILDCARD &&
                     ^~~~~~~~~~~~~~~~~~~~~~~~~
                     DNS_SSUMATCHTYPE_SUBDOMAIN
make[2]: *** [Makefile:517: ldap_la-acl.lo] Error 1
ldap_driver.c:748:26: error: unknown type name ‘dns_rpz_zones_t’; did you mean ‘dns_catz_zones_t’?
 rpz_attach(dns_db_t *db, dns_rpz_zones_t *rpzs, dns_rpz_num_t rpz_num)
                          ^~~~~~~~~~~~~~~
                          dns_catz_zones_t
ldap_driver.c:748:49: error: unknown type name ‘dns_rpz_num_t’; did you mean ‘dns_zone_t’?
 rpz_attach(dns_db_t *db, dns_rpz_zones_t *rpzs, dns_rpz_num_t rpz_num)
                                                 ^~~~~~~~~~~~~
                                                 dns_zone_t
ldap_driver.c: In function ‘rpz_ready’:
ldap_driver.c:764:2: error: ‘dns_db_rpz_ready’ is deprecated [-Werror=deprecated-declarations]
  return dns_db_rpz_ready(ldapdb->rbtdb);
  ^~~~~~
In file included from ldap_driver.c:20:0:
/usr/include/dns/db.h:1648:1: note: declared here
 dns_db_rpz_ready(dns_db_t *db)
 ^~~~~~~~~~~~~~~~
ldap_driver.c: At top level:
ldap_driver.c:837:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  findnode,
  ^~~~~~~~
ldap_driver.c:837:2: note: (near initialization for ‘ldapdb_methods.findnode’)
ldap_driver.c:838:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  find,
  ^~~~
ldap_driver.c:838:2: note: (near initialization for ‘ldapdb_methods.find’)
ldap_driver.c:839:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  findzonecut,
  ^~~~~~~~~~~
ldap_driver.c:839:2: note: (near initialization for ‘ldapdb_methods.findzonecut’)
ldap_driver.c:858:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  findnsec3node,
  ^~~~~~~~~~~~~
ldap_driver.c:858:2: note: (near initialization for ‘ldapdb_methods.findnsec3node’)
cc1: all warnings being treated as errors
ldap_driver.c:864:2: error: ‘rpz_attach’ undeclared here (not in a function); did you mean ‘attach’?
  rpz_attach,
  ^~~~~~~~~~
  attach
ldap_driver.c:866:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  findnodeext,
  ^~~~~~~~~~~
ldap_driver.c:866:2: note: (near initialization for ‘ldapdb_methods.findnodeext’)
ldap_driver.c:867:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  findext,
  ^~~~~~~
ldap_driver.c:867:2: note: (near initialization for ‘ldapdb_methods.findext’)
ldap_driver.c:872:1: error: missing initializer for field ‘setservestalettl’ of ‘dns_dbmethods_t {aka struct dns_dbmethods}’ [-Werror=missing-field-initializers]
 };
 ^
In file included from ldap_driver.c:20:0:
/usr/include/dns/db.h:199:17: note: ‘setservestalettl’ declared here
  isc_result_t (*setservestalettl)(dns_db_t *db, dns_ttl_t ttl);
                 ^~~~~~~~~~~~~~~~
make[2]: *** [Makefile:538: ldap_la-fwd.lo] Error 1
cc1: all warnings being treated as errors
make[2]: *** [Makefile:573: ldap_la-ldap_driver.lo] Error 1
In file included from fwd_register.h:11:0,
                 from ldap_entry.h:11,
                 from acl.h:10,
                 from ldap_helper.c:62:
ldap_helper.c: In function ‘new_ldap_instance’:
ldap_helper.c:665:44: error: passing argument 2 of ‘dns_db_register’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  CHECK(dns_db_register(ldap_inst->db_name, &ldapdb_associate, ldap_inst,
                                            ^
util.h:30:13: note: in definition of macro ‘CHECK’
   result = (op);     \
             ^~
In file included from /usr/include/dns/catz.h:26:0,
                 from /usr/include/dns/view.h:69,
                 from ldap_helper.c:18:
/usr/include/dns/db.h:1431:1: note: expected ‘dns_dbcreatefunc_t {aka unsigned int (*)(struct isc_mem *, const struct dns_name *, enum <anonymous>,  short unsigned int,  unsigned int,  char **, void *, struct dns_db **)}’ but argument is of type ‘isc_result_t (*)(isc_mem_t *, dns_name_t *, dns_dbtype_t,  dns_rdataclass_t,  unsigned int,  char **, void *, dns_db_t **) {aka unsigned int (*)(struct isc_mem *, struct dns_name *, enum <anonymous>,  short unsigned int,  unsigned int,  char **, void *, struct dns_db **)}’
 dns_db_register(const char *name, dns_dbcreatefunc_t create, void *driverarg,
 ^~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [Makefile:587: ldap_la-ldap_helper.lo] Error 1
make[1]: *** [Makefile:449: all-recursive] Error 1
make: *** [Makefile:360: all] Error 2
 * ERROR: net-dns/bind-dyndb-ldap-11.1-r2::sihnon failed (compile phase):
 *   emake failed

Environment

  • Plugin version:
    11.1+master

  • Version of BIND:
    9.12.3_p4

  • Distribution and version (i.e. including updates):
    Gentoo

  • Architecture:
    amd64

  • Do you use bind-dyndb-ldap as part of FreeIPA installation? If you answered no: Which LDAP server you use? Which version?
    Independent of FreeIPA


Looks like we'll need to create a separate branch for bind 9.12.

Some notes:

  • DNS_SSU* related failures come from bind9's 995c41e8f04aa14299c72af684a2e58507f4c55b commit which changed update-policy local to only apply for updates from local addresses. Unfortunately, it caused unexplained change of defines to enum type for DNS_SSU* so all of them became dns_ssu*.
  • const changes come from bind9's 52e2aab39253db07f67ab340e208189cc68af389

I've tried my hand at writing a patch that fixes the below, which I've raised in PR #181

  • DNS_SSU* changes
  • const changes
  • Relocation of dns_rpz_zones_t definition

I'm not a c developer by any means, so while these changes make those compiler errors go away, I can't be sure they are functionally correct.

The following errors are still outstanding, which I don't think I will be able to fix:

ldap_driver.c: In function ‘rpz_attach’:
ldap_driver.c:755:2: error: ‘dns_db_rpz_attach’ is deprecated [-Werror=deprecated-declarations]
  dns_db_rpz_attach(ldapdb->rbtdb, rpzs, rpz_num);
  ^~~~~~~~~~~~~~~~~
In file included from ldap_driver.c:20:0:
/usr/include/dns/db.h:1640:1: note: declared here
 dns_db_rpz_attach(dns_db_t *db, void *rpzs, uint8_t rpz_num)
 ^~~~~~~~~~~~~~~~~
ldap_driver.c: In function ‘rpz_ready’:
ldap_driver.c:765:2: error: ‘dns_db_rpz_ready’ is deprecated [-Werror=deprecated-declarations]
  return dns_db_rpz_ready(ldapdb->rbtdb);
  ^~~~~~
In file included from ldap_driver.c:20:0:
/usr/include/dns/db.h:1648:1: note: declared here
 dns_db_rpz_ready(dns_db_t *db)
 ^~~~~~~~~~~~~~~~
ldap_driver.c: At top level:
ldap_driver.c:838:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  findnode,
  ^~~~~~~~
ldap_driver.c:838:2: note: (near initialization for ‘ldapdb_methods.findnode’)
ldap_driver.c:839:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  find,
  ^~~~
ldap_driver.c:839:2: note: (near initialization for ‘ldapdb_methods.find’)
ldap_driver.c:840:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  findzonecut,
  ^~~~~~~~~~~
ldap_driver.c:840:2: note: (near initialization for ‘ldapdb_methods.findzonecut’)
ldap_driver.c:859:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  findnsec3node,
  ^~~~~~~~~~~~~
ldap_driver.c:859:2: note: (near initialization for ‘ldapdb_methods.findnsec3node’)
ldap_driver.c:865:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  rpz_attach,
  ^~~~~~~~~~
ldap_driver.c:865:2: note: (near initialization for ‘ldapdb_methods.rpz_attach’)
ldap_driver.c:867:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  findnodeext,
  ^~~~~~~~~~~
ldap_driver.c:867:2: note: (near initialization for ‘ldapdb_methods.findnodeext’)
ldap_driver.c:868:2: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  findext,
  ^~~~~~~
ldap_driver.c:868:2: note: (near initialization for ‘ldapdb_methods.findext’)
ldap_driver.c:873:1: error: missing initializer for field ‘setservestalettl’ of ‘dns_dbmethods_t {aka struct dns_dbmethods}’ [-Werror=missing-field-initializers]
 };
 ^
In file included from ldap_driver.c:20:0:
/usr/include/dns/db.h:199:17: note: ‘setservestalettl’ declared here
  isc_result_t (*setservestalettl)(dns_db_t *db, dns_ttl_t ttl);
                 ^~~~~~~~~~~~~~~~
In file included from fwd_register.h:11:0,
                 from ldap_entry.h:11,
                 from acl.h:10,
                 from ldap_helper.c:62:
ldap_helper.c: In function ‘new_ldap_instance’:
ldap_helper.c:665:44: error: passing argument 2 of ‘dns_db_register’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  CHECK(dns_db_register(ldap_inst->db_name, &ldapdb_associate, ldap_inst,
                                            ^
util.h:30:13: note: in definition of macro ‘CHECK’
   result = (op);     \
             ^~
In file included from /usr/include/dns/catz.h:26:0,
                 from /usr/include/dns/view.h:69,
                 from ldap_helper.c:18:
/usr/include/dns/db.h:1431:1: note: expected ‘dns_dbcreatefunc_t {aka unsigned int (*)(struct isc_mem *, const struct dns_name *, enum <anonymous>,  short unsigned int,  unsigned int,  char **, void *, struct dns_db **)}’ but argument is of type ‘isc_result_t (*)(isc_mem_t *, dns_name_t *, dns_dbtype_t,  dns_rdataclass_t,  unsigned int,  char **, void *, dns_db_t **) {aka unsigned int (*)(struct isc_mem *, struct dns_name *, enum <anonymous>,  short unsigned int,  unsigned int,  char **, void *, struct dns_db **)}’
 dns_db_register(const char *name, dns_dbcreatefunc_t create, void *driverarg,
 ^~~~~~~~~~~~~~~

Login to comment on this ticket.

Metadata