Subject: xwpe: ftbfs with GCC-15

From: Matthias Klose <[email-masked]>
Date: Mon, 17 Feb 2025 18:02:59 +0000

Package: src:xwpe
Version: 1.5.30a-4
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/xwpe_1.5.30a-4_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

[...]
      |     ^~~~~~~~~~~
we_fl_fkt.c:22:5: note: previous declaration of ‘e_read_info’ with type ‘int(void)’
   22 | int e_read_info();
      |     ^~~~~~~~~~~
we_edit.c: In function ‘e_eingabe’:
we_edit.c:444:22: error: too many arguments to function ‘e_del_a_ind’; expected 0, have 2
  444 |      if (f->flg & 1) e_del_a_ind(b,  s);
      |                      ^~~~~~~~~~~ ~
we_edit.c:17:5: note: declared here
   17 | int e_del_a_ind();
      |     ^~~~~~~~~~~
we_edit.c:483:4: error: too many arguments to function ‘e_tab_a_ind’; expected 0, have 2
  483 |    e_tab_a_ind(b, s);
      |    ^~~~~~~~~~~ ~
we_edit.c:18:5: note: declared here
   18 | int e_tab_a_ind();
      |     ^~~~~~~~~~~
we_edit.c: In function ‘e_tst_cur’:
we_edit.c:676:10: error: too many arguments to function ‘e_help_next’; expected 0, have 2
  676 |          e_help_next(f, 0);
      |          ^~~~~~~~~~~ ~
we_edit.c:19:5: note: declared here
   19 | int e_help_next();
      |     ^~~~~~~~~~~
we_edit.c:681:10: error: too many arguments to function ‘e_help_next’; expected 0, have 2
  681 |          e_help_next(f, 1);
      |          ^~~~~~~~~~~ ~
we_edit.c:19:5: note: declared here
   19 | int e_help_next();
      |     ^~~~~~~~~~~
we_edit.c: At top level:
we_edit.c:1254:5: error: conflicting types for ‘e_tab_a_ind’; have ‘int(BUFFER *, SCHIRM *)’ {aka ‘int(struct BFF *, struct SCHRM *)’}
 1254 | int e_tab_a_ind(BUFFER *b, SCHIRM *s)
      |     ^~~~~~~~~~~
we_edit.c:18:5: note: previous declaration of ‘e_tab_a_ind’ with type ‘int(void)’
   18 | int e_tab_a_ind();
      |     ^~~~~~~~~~~
we_edit.c:1372:5: error: conflicting types for ‘e_del_a_ind’; have ‘int(BUFFER *, SCHIRM *)’ {aka ‘int(struct BFF *, struct SCHRM *)’}
 1372 | int e_del_a_ind(BUFFER *b, SCHIRM *s)
      |     ^~~~~~~~~~~
we_edit.c:17:5: note: previous declaration of ‘e_del_a_ind’ with type ‘int(void)’
   17 | int e_del_a_ind();
      |     ^~~~~~~~~~~
we_edit.c: In function ‘e_autosave’:
we_edit.c:2051:9: error: too many arguments to function ‘e_make_postf’; expected 0, have 3
 2051 |   str = e_make_postf(str, f->datnam, ".ASV");
      |         ^~~~~~~~~~~~ ~~~
we_edit.c:16:7: note: declared here
   16 | char *e_make_postf();
      |       ^~~~~~~~~~~~
make[1]: *** [Makefile:107: we_fl_fkt.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:107: we_edit.o] Error 1
we_fl_unix.c: In function ‘e_ed_man’:
we_fl_unix.c:3419:43: warning: ‘%s’ directive writing up to 255 bytes into a region of size 243 [-Wformat-overflow=]
 3419 |       sprintf(command, " man -s %s %s > \'%s\' 2> /dev/null", nstr, hstr, tstr);
      |                                           ^~                              ~~~~
we_fl_unix.c:3419:7: note: ‘sprintf’ output 28 or more bytes (assuming 283) into a destination of size 256
 3419 |       sprintf(command, " man -s %s %s > \'%s\' 2> /dev/null", nstr, hstr, tstr);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
we_fl_unix.c:3417:37: warning: ‘%s’ directive writing up to 255 bytes into a region of size 247 [-Wformat-overflow=]
 3417 |       sprintf(command, " man %s > \'%s\' 2> /dev/null", hstr, tstr);
      |                                     ^~                        ~~~~
we_fl_unix.c:3417:7: note: ‘sprintf’ output 24 or more bytes (assuming 279) into a destination of size 256
 3417 |       sprintf(command, " man %s > \'%s\' 2> /dev/null", hstr, tstr);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: Leaving directory '/build/reproducible-path/xwpe-1.5.30a'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:11: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2