Subject: dvbtune: ftbfs with GCC-15

From: Matthias Klose <[email-masked]>
Date: Mon, 17 Feb 2025 17:10:50 +0000

Package: src:dvbtune
Version: 0.5.ds-5
Severity: important
Tags: sid forky
User: [email-masked]
Usertags: ftbfs-gcc-15

[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/dvbtune_0.5.ds-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

[...]
	make -j8 "INSTALL=install --strip-program=true" VERSION=0.5 "EXTRA_CFLAGS=-g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/dvbtune-0.5.ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection"
make[2]: Entering directory '/build/reproducible-path/dvbtune-0.5.ds'
gcc -g -Wall -I /usr/include/libxml2 -I ../DVB/include -DVERSION=\"0.5\" -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/dvbtune-0.5.ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DNEWSTRUCT -Wdate-time -D_FORTIFY_SOURCE=2  -c -o tune.o tune.c
In file included from tune.h:25,
                 from tune.c:41:
dvb_defaults.h:83:2: warning: #warning No DVB-T country defined in dvb_defaults.h [-Wcpp]
   83 | #warning No DVB-T country defined in dvb_defaults.h
      |  ^~~~~~~
dvb_defaults.h:84:2: warning: #warning defaulting to UK [-Wcpp]
   84 | #warning defaulting to UK
      |  ^~~~~~~
dvb_defaults.h:85:2: warning: #warning Ignore this if using Satellite or Cable [-Wcpp]
   85 | #warning Ignore this if using Satellite or Cable
      |  ^~~~~~~
tune.c: In function ‘check_status’:
tune.c:252:21: warning: ‘fe_info.type’ may be used uninitialized [-Wmaybe-uninitialized]
  252 |       switch(fe_info.type) {
      |              ~~~~~~~^~~~~
tune.c:219:28: note: ‘fe_info’ declared here
  219 |   struct dvb_frontend_info fe_info;
      |                            ^~~~~~~
gcc -g -Wall -I /usr/include/libxml2 -I ../DVB/include -DVERSION=\"0.5\" -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/dvbtune-0.5.ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DNEWSTRUCT -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro  dvbtune.c tune.o   -o dvbtune
In file included from tune.h:25,
                 from dvbtune.c:82:
dvb_defaults.h:83:2: warning: #warning No DVB-T country defined in dvb_defaults.h [-Wcpp]
   83 | #warning No DVB-T country defined in dvb_defaults.h
      |  ^~~~~~~
dvb_defaults.h:84:2: warning: #warning defaulting to UK [-Wcpp]
   84 | #warning defaulting to UK
      |  ^~~~~~~
dvb_defaults.h:85:2: warning: #warning Ignore this if using Satellite or Cable [-Wcpp]
   85 | #warning Ignore this if using Satellite or Cable
      |  ^~~~~~~
dvbtune.c: In function ‘scan_nit’:
dvbtune.c:717:16: warning: variable ‘network_id’ set but not used [-Wunused-but-set-variable]
  717 |   int info_len,network_id;
      |                ^~~~~~~~~~
dvbtune.c: In function ‘main’:
dvbtune.c:1393:15: error: too many arguments to function ‘get_unscanned’; expected 0, have 1
 1393 |     while ((t=get_unscanned(transponders))!=NULL) {
      |               ^~~~~~~~~~~~~ ~~~~~~~~~~~~
dvbtune.c:140:17: note: declared here
  140 | transponder_t*  get_unscanned() {
      |                 ^~~~~~~~~~~~~
dvbtune.c:1473:40: warning: pointer targets in passing argument 2 of ‘FEReadBER’ differ in signedness [-Wpointer-sign]
 1473 |                 FEReadBER(fd_frontend, &ber);
      |                                        ^~~~
      |                                        |
      |                                        int32_t * {aka int *}
dvbtune.c:1025:33: note: expected ‘uint32_t *’ {aka ‘unsigned int *’} but argument is of type ‘int32_t *’ {aka ‘int *’}
 1025 | int FEReadBER(int fd, uint32_t *ber)
      |                       ~~~~~~~~~~^~~
dvbtune.c:1476:54: warning: pointer targets in passing argument 2 of ‘FEReadUncorrectedBlocks’ differ in signedness [-Wpointer-sign]
 1476 |                 FEReadUncorrectedBlocks(fd_frontend, &uncorr);
      |                                                      ^~~~~~~
      |                                                      |
      |                                                      int32_t * {aka int *}
dvbtune.c:1073:47: note: expected ‘uint32_t *’ {aka ‘unsigned int *’} but argument is of type ‘int32_t *’ {aka ‘int *’}
 1073 | int FEReadUncorrectedBlocks(int fd, uint32_t *ucb)
      |                                     ~~~~~~~~~~^~~
dvbtune.c:1165:7: warning: variable ‘count’ set but not used [-Wunused-but-set-variable]
 1165 |   int count;
      |       ^~~~~
make[2]: *** [<builtin>: dvbtune] Error 1
make[2]: Leaving directory '/build/reproducible-path/dvbtune-0.5.ds'
dh_auto_build: error: make -j8 "INSTALL=install --strip-program=true" VERSION=0.5 "EXTRA_CFLAGS=-g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/dvbtune-0.5.ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection" returned exit code 2
make[1]: *** [debian/rules:10: override_dh_auto_build] Error 25
make[1]: Leaving directory '/build/reproducible-path/dvbtune-0.5.ds'
make: *** [debian/rules:6: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2