Bug#1027094: FTBFS against bind9 9.18.10

2022-12-27 Thread Bernhard Schmidt
Control: forwarded -1 https://pagure.io/bind-dyndb-ldap/issue/216

On 27/12/22 06:16 PM, Bernhard Schmidt wrote:

Hi,

so this is really massively broken :-(


> ../../src/log.h:21:9: error: too few arguments to function ‘isc_error_fatal’
>21 | isc_error_fatal(__FILE__, __LINE__, __VA_ARGS__)
>   | ^~~

That one has been introduced in 9.18.9+. There is an open pull request
upstream at https://pagure.io/bind-dyndb-ldap/pull-request/215 , which
(together with bumping LIBDNS_VERSION_MAJOR in
d/p/hardcode-version.diff) fixes the logging errors.

> ../../src/ldap_driver.c: In function ‘allrdatasets’:
> ../../src/ldap_driver.c:474:71: error: passing argument 5 of 
> ‘dns_db_allrdatasets’ makes integer from pointer without a cast 
> [-Werror=int-conversion]
>   474 | return dns_db_allrdatasets(ldapdb->rbtdb, node, version, now, 
> iteratorp);
>   |   
> ^
>   |   
> |
>   |   
> dns_rdatasetiter_t ** {aka struct dns_rdatasetiter **}

Those appear to be new issues in 9.18.10. I have filed a new upstream
bugreport at https://pagure.io/bind-dyndb-ldap/issue/216 . Both
dns_db_allrdatasets and dns_zt_apply gained an additional argument

https://gitlab.isc.org/isc-projects/bind9/-/commit/1de9c052107a6f24e565441f53e4d8b33bb2e30a
https://gitlab.isc.org/isc-projects/bind9/-/commit/6f998bbe518ae629685404bcfddcfd6067176660

and while my attempts to monkeypatch the additional 0 argument into
dns_db_allrdatasets cleared most of the warnings I'm lost with the
remaining errors. Does not really help that I barely know C, my
knowledge ends pretty much here and I have no idea how to go further.

In file included from ../../src/zone_register.h:8,
 from ../../src/ldap_convert.c:28:
/usr/include/dns/zt.h:171:28: error: unknown type name ‘isc_rwlocktype_t’; did 
you mean ‘isc_rwlock_t’?
  171 | dns_zt_apply(dns_zt_t *zt, isc_rwlocktype_t lock, bool stop, 
isc_result_t *sub,
  |^~~~
  |isc_rwlock_t


libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../src -I.. -Wdate-time 
-D_FORTIFY_SOURCE=2 -Wall -Wextra -Werror -std=gnu99 -O2 -g -O2 
-ffile-prefix-map=/<>=. -fstack-protector-strong -Wformat 
-Werror=format-security -Wno-uninitialized -fvisibility=hidden 
-fno-delete-null-pointer-checks -std=gnu11 -c ../../src/ldap_helper.c  -fPIC 
-DPIC -o .libs/ldap_la-ldap_helper.o
../../src/ldap_driver.c:950:9: error: initialization of ‘isc_result_t 
(*)(dns_db_t *, dns_dbnode_t *, dns_dbversion_t *, unsigned int,  
isc_stdtime_t,  dns_rdatasetiter_t **)’ {aka ‘enum isc_result (*)(struct dns_db 
*, void *, void *, unsigned int,  unsigned int,  struct dns_rdatasetiter **)’} 
from incompatible pointer type ‘isc_result_t (*)(dns_db_t *, dns_dbnode_t *, 
dns_dbversion_t *, isc_stdtime_t,  dns_rdatasetiter_t **)’ {aka ‘enum 
isc_result (*)(struct dns_db *, void *, void *, unsigned int,  struct 
dns_rdatasetiter **)’} [-Werror=incompatible-pointer-types]
  950 | allrdatasets,
  | ^~~~
../../src/ldap_driver.c:950:9: note: (near initialization for 
‘ldapdb_methods.allrdatasets’)



Bug#1027094: FTBFS against bind9 9.18.10

2022-12-27 Thread Bernhard Schmidt
On 27/12/22 09:43 PM, Santiago Vila wrote:

> > bind-dyndb-ldap has a tight dependency on the upstream version of bind9-libs
> > (built by src:bind9) and needs to be rebuilt on every new upstream version
> > until https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1014503 is fixed.
> 
> Hello. I suppose this is the reason it does not build in stable either.
> 
> Should we use the "found" directive with this bug,
> or it is better to file it as a separate bug?

I suspect this is a different bug (possibly for the same reason, changed
API within a stable release of bind9, but since the breaking code is
very fresh I doubt the same thing affects stable). So better file a new
one.

Bernhard



Bug#1027094: FTBFS against bind9 9.18.10

2022-12-27 Thread Santiago Vila

El 27/12/22 a las 18:16, Bernhard Schmidt escribió:

Source: bind-dyndb-ldap
Version: 11.10-1
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: team+...@tracker.debian.org

bind-dyndb-ldap has a tight dependency on the upstream version of bind9-libs
(built by src:bind9) and needs to be rebuilt on every new upstream version
until https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1014503 is fixed.


Hello. I suppose this is the reason it does not build in stable either.

Should we use the "found" directive with this bug,
or it is better to file it as a separate bug?

Thanks.



Bug#1027094: FTBFS against bind9 9.18.10

2022-12-27 Thread Bernhard Schmidt
Source: bind-dyndb-ldap
Version: 11.10-1
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: team+...@tracker.debian.org

bind-dyndb-ldap has a tight dependency on the upstream version of bind9-libs
(built by src:bind9) and needs to be rebuilt on every new upstream version
until https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1014503 is fixed.

This worked fine until bind9 9.18.8, but fails in 9.18.10

https://buildd.debian.org/status/fetch.php?pkg=bind-dyndb-ldap=amd64=11.10-1%2Bb5=1671812545=0

This is rather serious as it prevents the migration of 9.18.10 to testing
which includes systemd notify support and upstream bugfixes. Also bind9 has
followed upstream security releases during bullseye already, so it will
break later if 9.18.10 misses the freeze due to this issue.

Possible commits:
https://gitlab.isc.org/isc-projects/bind9/-/compare/v9_18_8...v9_18_10?from_project_id=1

In file included from ../../src/zone_register.h:8,
 from ../../src/ldap_convert.c:28:
/usr/include/dns/zt.h:171:28: error: unknown type name ‘isc_rwlocktype_t’; did 
you mean ‘isc_rwlock_t’?
  171 | dns_zt_apply(dns_zt_t *zt, isc_rwlocktype_t lock, bool stop, 
isc_result_t *sub,
  |^~~~
  |isc_rwlock_t
make[3]: *** [Makefile:592: ldap_la-ldap_convert.lo] Error 1
make[3]: *** Waiting for unfinished jobs
In file included from ../../src/util.h:17,
 from ../../src/bindcfg.h:10,
 from ../../src/ldap_driver.c:39:
../../src/ldap_driver.c: In function ‘beginload’:
../../src/log.h:21:9: error: too few arguments to function ‘isc_error_fatal’
   21 | isc_error_fatal(__FILE__, __LINE__, __VA_ARGS__)
  | ^~~
../../src/ldap_driver.c:220:9: note: in expansion of macro ‘fatal_error’
  220 | fatal_error("ldapdb: method beginload() should never be 
called");
  | ^~~
In file included from /usr/include/isc/util.h:312,
 from /usr/include/isc/atomic.h:22,
 from /usr/include/isc/refcount.h:19,
 from ../../src/ldap_driver.c:16:
/usr/include/isc/error.h:42:1: note: declared here
   42 | isc_error_fatal(const char *, int, const char *, const char *, ...)
  | ^~~
../../src/ldap_driver.c: In function ‘endload’:
../../src/log.h:21:9: error: too few arguments to function ‘isc_error_fatal’
   21 | isc_error_fatal(__FILE__, __LINE__, __VA_ARGS__)
  | ^~~
../../src/ldap_driver.c:237:9: note: in expansion of macro ‘fatal_error’
  237 | fatal_error("ldapdb: method endload() should never be called");
  | ^~~
/usr/include/isc/error.h:42:1: note: declared here
   42 | isc_error_fatal(const char *, int, const char *, const char *, ...)
  | ^~~
../../src/ldap_driver.c: In function ‘dump’:
../../src/log.h:21:9: error: too few arguments to function ‘isc_error_fatal’
   21 | isc_error_fatal(__FILE__, __LINE__, __VA_ARGS__)
  | ^~~
../../src/ldap_driver.c:266:9: note: in expansion of macro ‘fatal_error’
  266 | fatal_error("ldapdb: method dump() should never be called");
  | ^~~
/usr/include/isc/error.h:42:1: note: declared here
   42 | isc_error_fatal(const char *, int, const char *, const char *, ...)
  | ^~~
../../src/ldap_driver.c: In function ‘allrdatasets’:
../../src/ldap_driver.c:474:71: error: passing argument 5 of 
‘dns_db_allrdatasets’ makes integer from pointer without a cast 
[-Werror=int-conversion]
  474 | return dns_db_allrdatasets(ldapdb->rbtdb, node, version, now, 
iteratorp);
  |   
^
  |   |
  |   
dns_rdatasetiter_t ** {aka struct dns_rdatasetiter **}
In file included from ../../src/ldap_driver.c:22:
/usr/include/dns/db.h:1162:57: note: expected ‘isc_stdtime_t’ {aka ‘unsigned 
int’} but argument is of type ‘dns_rdatasetiter_t **’ {aka ‘struct 
dns_rdatasetiter **’}
 1162 | unsigned int options, isc_stdtime_t now,
  |   ~~^~~
../../src/ldap_driver.c:474:16: error: too few arguments to function 
‘dns_db_allrdatasets’
  474 | return dns_db_allrdatasets(ldapdb->rbtdb, node, version, now, 
iteratorp);
  |^~~
/usr/include/dns/db.h:1161:1: note: declared here
 1161 | dns_db_allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t 
*version,
  | ^~~
../../src/ldap_driver.c: In function ‘node_isempty’:
../../src/ldap_driver.c:517:62: error: passing argument 5 of 
‘dns_db_allrdatasets’ makes integer from pointer without a