Subject: task-spooler: ftbfs with GCC-15

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

Package: src:task-spooler
Version: 1.0.3+dfsg1-1
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/task-spooler_1.0.3+dfsg1-1_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

[...]
 1518 |         write(fd, "# ", 2);
      |         ^~~~~~~~~~~~~~~~~~
jobs.c:1519:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 1519 |         write(fd,buffer, strlen(buffer));
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jobs.c:1524:5: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 1524 |     write(fd, "\n", 1);
      |     ^~~~~~~~~~~~~~~~~~
jobs.c:1531:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 1531 |         write(fd,buffer,strlen(buffer));
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
client.c: In function ‘c_show_info’:
client.c:259:21: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  259 |                     write(1, buffer, res);
      |                     ^~~~~~~~~~~~~~~~~~~~~
server.c: In function ‘server_main’:
server.c:181:5: warning: ignoring return value of ‘chdir’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  181 |     chdir(dirname(dirpath));
      |     ^~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:36: client.o] Error 1
execute.c:255:5: error: conflicting types for ‘run_job’; have ‘int(struct Result *)’
  255 | int run_job(struct Result *res)
      |     ^~~~~~~
In file included from execute.c:22:
main.h:267:5: note: previous declaration of ‘run_job’ with type ‘int(void)’
  267 | int run_job();
      |     ^~~~~~~
execute.c: In function ‘create_closed_read_on’:
execute.c:115:5: warning: ignoring return value of ‘pipe’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  115 |     pipe(p);
      |     ^~~~~~~
execute.c: In function ‘run_job’:
execute.c:268:5: warning: ignoring return value of ‘pipe’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  268 |     pipe(p);
      |     ^~~~~~~
execute.c: In function ‘run_child’:
execute.c:237:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  237 |         write(fd_send_filename, (char *)&namesize, sizeof(namesize));
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
execute.c:238:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  238 |         write(fd_send_filename, outfname_full, namesize);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
execute.c:242:5: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  242 |     write(fd_send_filename, &starttv, sizeof(starttv));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
server_start.c:103:6: error: conflicting types for ‘wait_server_up’; have ‘void(int)’
  103 | void wait_server_up(int fd)
      |      ^~~~~~~~~~~~~~
In file included from server_start.c:19:
main.h:261:6: note: previous declaration of ‘wait_server_up’ with type ‘void(void)’
  261 | void wait_server_up();
      |      ^~~~~~~~~~~~~~
server_start.c: In function ‘wait_server_up’:
server_start.c:107:5: warning: ignoring return value of ‘read’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  107 |     read(fd, &a, 1);
      |     ^~~~~~~~~~~~~~~
make[1]: *** [Makefile:36: execute.o] Error 1
server_start.c: In function ‘notify_parent’:
server_start.c:147:5: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  147 |     write(fd, &a, 1);
      |     ^~~~~~~~~~~~~~~~
server_start.c: In function ‘fork_server’:
server_start.c:118:5: warning: ignoring return value of ‘pipe’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  118 |     pipe(p);
      |     ^~~~~~~
make[1]: *** [Makefile:36: server_start.o] Error 1
make[1]: Leaving directory '/build/reproducible-path/task-spooler-1.0.3+dfsg1'
dh_auto_build: error: make -j8 "INSTALL=install --strip-program=true" returned exit code 2
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2