Subject: gkrellm-radio: ftbfs with GCC-15

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

Package: src:gkrellm-radio
Version: 2.0.4-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/gkrellm-radio_2.0.4-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

[...]
      | ^~~~~~~~~
gkrellm_radio.c:327:55: error: passing argument 3 of ‘gkrellm_make_decal_button’ from incompatible pointer type [-Wincompatible-pointer-types]
  327 |     gkrellm_make_decal_button(panel, decal_onoff_pix, cb_button,
      |                                                       ^~~~~~~~~
      |                                                       |
      |                                                       void (*)(GkrellmDecalbutton *)
/usr/include/gkrellm2/gkrellm-public-proto.h:254:56: note: expected ‘void (*)(void)’ but argument is of type ‘void (*)(GkrellmDecalbutton *)’
  254 |                                                 void (*func)(), void *, gint, gint);
      |                                                 ~~~~~~~^~~~~~~
gkrellm_radio.c:216:1: note: ‘cb_button’ declared here
  216 | cb_button(GkrellmDecalbutton *button)
      | ^~~~~~~~~
gkrellm_radio.c: In function ‘close_and_add_station_editor’:
gkrellm_radio.c:368:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  368 |   gint new_entry = (gint)userdata;
      |                    ^
In file included from /usr/include/gtk-2.0/gtk/gtkcalendar.h:40,
                 from /usr/include/gtk-2.0/gtk/gtk.h:53,
                 from /usr/include/gkrellm2/gkrellm.h:47:
gkrellm_radio.c: In function ‘create_station_editor’:
gkrellm_radio.c:427:29: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  427 |                             (gpointer)new_entry);
      |                             ^
gkrellm_radio.c: In function ‘create_config’:
gkrellm_radio.c:499:64: warning: variable ‘frame’ set but not used [-Wunused-but-set-variable]
  499 |   GtkWidget *text, *label, *panel, *button, *hbox, *scrolled, *frame, *vbox;
      |                                                                ^~~~~
gkrellm_radio.c: In function ‘gkrellm_init_plugin’:
gkrellm_radio.c:766:3: warning: ‘g_atexit’ is deprecated [-Wdeprecated-declarations]
  766 |   g_atexit(gkrellm_radio_lirc_exit);
      |   ^~~~~~~~
In file included from /usr/include/glib-2.0/glib/gthread.h:36,
                 from /usr/include/glib-2.0/glib/gasyncqueue.h:34,
                 from /usr/include/glib-2.0/glib.h:34,
                 from /usr/include/gkrellm2/log.h:37,
                 from /usr/include/gkrellm2/gkrellm.h:41:
/usr/include/glib-2.0/glib/gutils.h:329:9: note: declared here
  329 | void    g_atexit                (GVoidFunc    func);
      |         ^~~~~~~~
gkrellm_radio.c:768:3: warning: ‘g_atexit’ is deprecated [-Wdeprecated-declarations]
  768 |   g_atexit(exit_func);
      |   ^~~~~~~~
/usr/include/glib-2.0/glib/gutils.h:329:9: note: declared here
  329 | void    g_atexit                (GVoidFunc    func);
      |         ^~~~~~~~
In file included from gkrellm_radio.c:9:
gkrellm_radio_lirc.h: At top level:
gkrellm_radio_lirc.h:17:13: warning: inline function ‘gkrellm_radio_lirc_next_station’ declared but never defined
   17 | void inline gkrellm_radio_lirc_next_station (void);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:43: gkrellm_radio.o] Error 1
make[1]: *** Waiting for unfinished jobs....
gkrellm_radio_lirc.c: In function ‘gkrellm_radio_lirc_cb’:
gkrellm_radio_lirc.c:78:16: warning: ‘g_strcasecmp’ is deprecated [-Wdeprecated-declarations]
   78 |                if (g_strcasecmp (command, c) == 0) {
      |                ^~
In file included from /usr/include/glib-2.0/glib/gstring.h:37,
                 from /usr/include/glib-2.0/glib/giochannel.h:36,
                 from /usr/include/glib-2.0/glib.h:56,
                 from /usr/include/gkrellm2/log.h:37,
                 from /usr/include/gkrellm2/gkrellm.h:41,
                 from gkrellm_radio.h:5,
                 from gkrellm_radio_lirc.c:3:
/usr/include/glib-2.0/glib/gstrfuncs.h:268:23: note: declared here
  268 | gint                  g_strcasecmp     (const gchar *s1,
      |                       ^~~~~~~~~~~~
make[1]: Leaving directory '/build/reproducible-path/gkrellm-radio-2.0.4'
dh_auto_build: error: make -j8 "INSTALL=install --strip-program=true" returned exit code 2
make: *** [debian/rules:10: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2