#1096864 isc-dhcp: ftbfs with GCC-15

Package:
src:isc-dhcp
Source:
src:isc-dhcp
Submitter:
Matthias Klose
Date:
2026-08-05 17:33:16 UTC
Severity:
normal
Tags:
#1096864#5
Date:
2025-02-17 17:20:51 UTC
From:
To:
[This bug is NOT targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/isc-dhcp_4.4.3-P1-5_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html

[...]
      |                                    |
      |                                    void (*)(const struct data_string *, const struct data_string *, u_int32_t *, struct packet *, char *, int *, int) {aka void (*)(const struct data_string *, const struct data_string *, unsigned int *, struct packet *, char *, int *, int)}
dhcpv6.c:5856:27: note: expected ‘void (*)(void)’ but argument is of type ‘void (*)(const struct data_string *, const struct data_string *, u_int32_t *, struct packet *, char *, int *, int)’ {aka ‘void (*)(const struct data_string *, const struct data_string *, unsigned int *, struct packet *, char *, int *, int)’}
 5856 |                    void (*ia_na_nomatch)())
      |                    ~~~~~~~^~~~~~~~~~~~~~~~
dhcpv6.c:5777:1: note: ‘ia_na_nomatch_decline’ declared here
 5777 | ia_na_nomatch_decline(const struct data_string *client_id,
      | ^~~~~~~~~~~~~~~~~~~~~
dhcpv6.c: In function ‘iterate_over_ia_pd’:
dhcpv6.c:6526:25: error: too many arguments to function ‘ia_pd_match’; expected 0, have 3
 6526 |                         ia_pd_match(client_id, &iaprefix, prefix);
      |                         ^~~~~~~~~~~ ~~~~~~~~~
dhcpv6.c:6528:25: error: too many arguments to function ‘ia_pd_nomatch’; expected 0, have 7
 6528 |                         ia_pd_nomatch(client_id, &iaprefix,
      |                         ^~~~~~~~~~~~~ ~~~~~~~~~
dhcpv6.c: In function ‘dhcpv6_release’:
dhcpv6.c:6606:47: error: passing argument 6 of ‘iterate_over_ia_na’ from incompatible pointer type [-Wincompatible-pointer-types]
 6606 |                                    "Release", ia_na_match_release,
      |                                               ^~~~~~~~~~~~~~~~~~~
      |                                               |
      |                                               void (*)(const struct data_string *, const struct data_string *, struct iasubopt *)
dhcpv6.c:5855:27: note: expected ‘void (*)(void)’ but argument is of type ‘void (*)(const struct data_string *, const struct data_string *, struct iasubopt *)’
 5855 |                    void (*ia_na_match)(),
      |                    ~~~~~~~^~~~~~~~~~~~~~
dhcpv6.c:6166:1: note: ‘ia_na_match_release’ declared here
 6166 | ia_na_match_release(const struct data_string *client_id,
      | ^~~~~~~~~~~~~~~~~~~
dhcpv6.c:6607:36: error: passing argument 7 of ‘iterate_over_ia_na’ from incompatible pointer type [-Wincompatible-pointer-types]
 6607 |                                    ia_na_nomatch_release);
      |                                    ^~~~~~~~~~~~~~~~~~~~~
      |                                    |
      |                                    void (*)(const struct data_string *, const struct data_string *, u_int32_t *, struct packet *, char *, int *, int) {aka void (*)(const struct data_string *, const struct data_string *, unsigned int *, struct packet *, char *, int *, int)}
dhcpv6.c:5856:27: note: expected ‘void (*)(void)’ but argument is of type ‘void (*)(const struct data_string *, const struct data_string *, u_int32_t *, struct packet *, char *, int *, int)’ {aka ‘void (*)(const struct data_string *, const struct data_string *, unsigned int *, struct packet *, char *, int *, int)’}
 5856 |                    void (*ia_na_nomatch)())
      |                    ~~~~~~~^~~~~~~~~~~~~~~~
dhcpv6.c:6183:1: note: ‘ia_na_nomatch_release’ declared here
 6183 | ia_na_nomatch_release(const struct data_string *client_id,
      | ^~~~~~~~~~~~~~~~~~~~~
dhcpv6.c:6613:47: error: passing argument 6 of ‘iterate_over_ia_pd’ from incompatible pointer type [-Wincompatible-pointer-types]
 6613 |                                    "Release", ia_pd_match_release,
      |                                               ^~~~~~~~~~~~~~~~~~~
      |                                               |
      |                                               void (*)(const struct data_string *, const struct data_string *, struct iasubopt *)
dhcpv6.c:6357:27: note: expected ‘void (*)(void)’ but argument is of type ‘void (*)(const struct data_string *, const struct data_string *, struct iasubopt *)’
 6357 |                    void (*ia_pd_match)(),
      |                    ~~~~~~~^~~~~~~~~~~~~~
dhcpv6.c:6257:1: note: ‘ia_pd_match_release’ declared here
 6257 | ia_pd_match_release(const struct data_string *client_id,
      | ^~~~~~~~~~~~~~~~~~~
dhcpv6.c:6614:36: error: passing argument 7 of ‘iterate_over_ia_pd’ from incompatible pointer type [-Wincompatible-pointer-types]
 6614 |                                    ia_pd_nomatch_release);
      |                                    ^~~~~~~~~~~~~~~~~~~~~
      |                                    |
      |                                    void (*)(const struct data_string *, const struct data_string *, u_int32_t *, struct packet *, char *, int *, int) {aka void (*)(const struct data_string *, const struct data_string *, unsigned int *, struct packet *, char *, int *, int)}
dhcpv6.c:6358:27: note: expected ‘void (*)(void)’ but argument is of type ‘void (*)(const struct data_string *, const struct data_string *, u_int32_t *, struct packet *, char *, int *, int)’ {aka ‘void (*)(const struct data_string *, const struct data_string *, unsigned int *, struct packet *, char *, int *, int)’}
 6358 |                    void (*ia_pd_nomatch)())
      |                    ~~~~~~~^~~~~~~~~~~~~~~~
dhcpv6.c:6276:1: note: ‘ia_pd_nomatch_release’ declared here
 6276 | ia_pd_nomatch_release(const struct data_string *client_id,
      | ^~~~~~~~~~~~~~~~~~~~~
make[4]: *** [Makefile:726: dhcpd-dhcpv6.o] Error 1
make[4]: Leaving directory '/build/reproducible-path/isc-dhcp-4.4.3-P1/server'
make[3]: *** [Makefile:923: all-recursive] Error 1
make[3]: Leaving directory '/build/reproducible-path/isc-dhcp-4.4.3-P1/server'
make[2]: *** [Makefile:468: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/isc-dhcp-4.4.3-P1'
make[1]: *** [debian/rules:65: override_dh_auto_build] Error 2
make[1]: Leaving directory '/build/reproducible-path/isc-dhcp-4.4.3-P1'
make: *** [debian/rules:42: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1096864#14
Date:
2025-10-05 13:39:43 UTC
From:
To:
#1096864#19
Date:
2025-10-05 20:10:10 UTC
From:
To:
user debian-release@lists.debian.org
usertags 1096864 + bsp-2025-10-brazil
thanks

I have opened a merge request to fix this bug.
You can find it here:
https://salsa.debian.org/debian/isc-dhcp/-/merge_requests/17

Thanks Fabio for reporting this fix

#1096864#26
Date:
2026-01-04 12:59:12 UTC
From:
To:
user debian-loongarch@lists.debian.org
usertag 1096864 loong64
thanks

Hi,


This issue is currently preventing the building of isc-dhcp on loong64
and hence the binaries are missing on loong64. As a result I can't build
lxc containers for loong64 from the official archive. Hence, I can't
migrate the ci.debian.net infrastructure for loong64.

There is a patch and MR. This bug is NMU material.

Paul

#1096864#31
Date:
2026-01-04 13:45:03 UTC
From:
To:
Hi,

If some part of lxc container building requires isc-dhcp binaries,
then that is IMO a serious bug in that stack. The isc-dhcp package
is supposed to go away.

Chris

#1096864#36
Date:
2026-01-04 14:15:05 UTC
From:
To:
Hi,


Sure, but as long as isc-dhcp is still in testing, it should receive
proper fixes for issues.

Paul

#1096864#41
Date:
2026-01-04 14:42:04 UTC
From:
To:
Hi,

Don't get me wrong, it should get fixes. But its probably only in
testing because it builds a udeb. We already know it doesn't get
fixes :-(

Chris

#1096864#46
Date:
2026-01-04 14:43:41 UTC
From:
To:
Hi,


That's why I added the loong64 porters. There seems to be a patch.

Paul

#1096864#51
Date:
2026-01-11 09:55:41 UTC
From:
To:
As much as I'd have entertained uploading the patch, given the other RC
bugs this package really should be removed from testing instead. And I
see it is now scheduled for autoremoval.

Kind regards
Philipp Kern

#1096864#56
Date:
2026-08-05 17:31:09 UTC
From:
To:
Dear submitter,

as the package isc-dhcp has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/1143544

The version of this package that was in Debian prior to this removal
can still be found using https://snapshot.debian.org/.

Please note that the changes have been done on the master archive and
will not propagate to any mirrors until the next dinstall run at the
earliest.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
ftpmaster@ftp-master.debian.org.

Debian distribution maintenance software
pp.
Thorsten Alteholz (the ftpmaster behind the curtain)