Subject: rplay: ftbfs with GCC-15

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

Package: src:rplay
Version: 3.3.2-20
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/rplay_3.3.2-20_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[2]: Entering directory '/build/reproducible-path/rplay-3.3.2/rptp'
gcc -c  -I. -I../include -I./../include -I./../lib -DHAVE_CONFIG_H -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/rplay-3.3.2=. -fstack-protector-strong -fstack-clash-protection -fcf-protection rptp.c
(cd ../librplay; /usr/bin/make )
make[3]: Entering directory '/build/reproducible-path/rplay-3.3.2/librplay'
gcc -c  -I. -I../include -I./../include -DHAVE_CONFIG_H -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/rplay-3.3.2=. -fstack-protector-strong -fstack-clash-protection -fcf-protection async.c
async.c: In function ‘rptp_async_process’:
async.c:369:34: error: too many arguments to function ‘group[rptp_fd].rcallback’; expected 0, have 1
  369 |                                 (*group[rptp_fd].rcallback)(rptp_fd);
      |                                 ~^~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
async.c:70:25: note: declared here
   70 |         cb              rcallback;
      |                         ^~~~~~~~~
async.c:376:34: error: too many arguments to function ‘group[rptp_fd].wcallback’; expected 0, have 1
  376 |                                 (*group[rptp_fd].wcallback)(rptp_fd);
      |                                 ~^~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
async.c:72:25: note: declared here
   72 |         cb              wcallback;
      |                         ^~~~~~~~~
async.c: In function ‘write_proc’:
async.c:491:26: error: too many arguments to function ‘current->callback’; expected 0, have 1
  491 |                         (*current->callback)(rptp_fd);
      |                         ~^~~~~~~~~~~~~~~~~~~ ~~~~~~~
async.c:51:41: note: declared here
   51 |         cb                              callback;
      |                                         ^~~~~~~~
async.c: In function ‘read_proc’:
async.c:532:26: error: too many arguments to function ‘group[rptp_fd].rcallback’; expected 0, have 3
  532 |                         (*group[rptp_fd].rcallback)(rptp_fd, RPTP_EVENT_CLOSE, "");
      |                         ~^~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
async.c:70:25: note: declared here
   70 |         cb              rcallback;
      |                         ^~~~~~~~~
async.c: In function ‘notify_line’:
async.c:715:18: error: too many arguments to function ‘group[rptp_fd].rcallback’; expected 0, have 3
  715 |                 (*group[rptp_fd].rcallback)(rptp_fd, what, line);
      |                 ~^~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
async.c:70:25: note: declared here
   70 |         cb              rcallback;
      |                         ^~~~~~~~~
async.c: In function ‘do_register’:
async.c:740:18: error: too many arguments to function ‘group[rptp_fd].wcallback’; expected 0, have 2
  740 |                 (*group[rptp_fd].wcallback)(rptp_fd, RPTP_ASYNC_ENABLE);
      |                 ~^~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
async.c:72:25: note: declared here
   72 |         cb              wcallback;
      |                         ^~~~~~~~~
async.c: In function ‘do_unregister’:
async.c:760:18: error: too many arguments to function ‘group[rptp_fd].wcallback’; expected 0, have 2
  760 |                 (*group[rptp_fd].wcallback)(rptp_fd, RPTP_ASYNC_DISABLE);
      |                 ~^~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
async.c:72:25: note: declared here
   72 |         cb              wcallback;
      |                         ^~~~~~~~~
make[3]: *** [Makefile:15: async.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/rplay-3.3.2/librplay'
make[2]: *** [Makefile:30: ../librplay/librplay.a] Error 2
make[2]: Leaving directory '/build/reproducible-path/rplay-3.3.2/rptp'
make all in doc...
make[2]: Entering directory '/build/reproducible-path/rplay-3.3.2/doc'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/build/reproducible-path/rplay-3.3.2/doc'
make all in devrplay...
make[2]: Entering directory '/build/reproducible-path/rplay-3.3.2/devrplay'
gcc -c  -fPIC -I. -I../include -I./../include -DHAVE_CONFIG_H -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/rplay-3.3.2=. -fstack-protector-strong -fstack-clash-protection -fcf-protection devrplay.c
make[2]: *** No rule to make target '../librplay/librplay.so.3.3.2', needed by 'devrplay.so.3'.  Stop.
make[2]: Leaving directory '/build/reproducible-path/rplay-3.3.2/devrplay'
make[1]: *** [Makefile:11: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/rplay-3.3.2'
make: *** [debian/rules:37: build-stamp] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2