Subject: gkrellm-reminder: ftbfs with GCC-15

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

Package: src:gkrellm-reminder
Version: 2.0.0-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-reminder_2.0.0-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

[...]
reminder.c: In function ‘cb_sort_time’:
reminder.c:1695:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 1695 |   es1 = reminder_find_event_stored( head_stored, (guint) row1->data );
      |                                                  ^
reminder.c:1697:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 1697 |     es1 = reminder_find_event_stored( head_temp, (guint) row1->data );
      |                                                  ^
reminder.c:1699:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 1699 |   es2 = reminder_find_event_stored( head_stored, (guint) row2->data );
      |                                                  ^
reminder.c:1701:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 1701 |     es2 = reminder_find_event_stored( head_temp, (guint) row2->data );
      |                                                  ^
reminder.c: In function ‘cb_sort_start’:
reminder.c:1718:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 1718 |   es1 = reminder_find_event_stored( head_stored, (guint) row1->data );
      |                                                  ^
reminder.c:1720:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 1720 |     es1 = reminder_find_event_stored( head_temp, (guint) row1->data );
      |                                                  ^
reminder.c:1722:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 1722 |   es2 = reminder_find_event_stored( head_stored, (guint) row2->data );
      |                                                  ^
reminder.c:1724:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 1724 |     es2 = reminder_find_event_stored( head_temp, (guint) row2->data );
      |                                                  ^
reminder.c: In function ‘cb_sort_end’:
reminder.c:1740:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 1740 |   es1 = reminder_find_event_stored( head_stored, (guint) row1->data );
      |                                                  ^
reminder.c:1742:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 1742 |     es1 = reminder_find_event_stored( head_temp, (guint) row1->data );
      |                                                  ^
reminder.c:1744:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 1744 |   es2 = reminder_find_event_stored( head_stored, (guint) row2->data );
      |                                                  ^
reminder.c:1746:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 1746 |     es2 = reminder_find_event_stored( head_temp, (guint) row2->data );
      |                                                  ^
reminder.c: In function ‘reminder_window_never’:
reminder.c:2887:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 2887 |   guint id = (guint) data;
      |              ^
reminder.c: In function ‘reminder_window_later’:
reminder.c:2917:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 2917 |   guint id = (guint) data;
      |              ^
reminder.c: In function ‘reminder_window_dismiss’:
reminder.c:2994:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 2994 |   guint id = (guint) data;
      |              ^
reminder.c: In function ‘create_plugin’:
reminder.c:3328:57: error: passing argument 3 of ‘gkrellm_put_decal_in_meter_button’ from incompatible pointer type [-Wincompatible-pointer-types]
 3328 |                                                         cb_reminder_button, NULL, NULL );
      |                                                         ^~~~~~~~~~~~~~~~~~
      |                                                         |
      |                                                         void (*)(GkrellmDecalbutton *)
In file included from /usr/include/gkrellm2/gkrellm.h:1083,
                 from reminder.c:31:
/usr/include/gkrellm2/gkrellm-public-proto.h:262:72: note: expected ‘void (*)(void)’ but argument is of type ‘void (*)(GkrellmDecalbutton *)’
  262 |                                                 GkrellmDecal *, void (*func)(), void *,
      |                                                                 ~~~~~~~^~~~~~~
reminder.c:3271:1: note: ‘cb_reminder_button’ declared here
 3271 | cb_reminder_button( GkrellmDecalbutton *button )
      | ^~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:16: reminder.so] Error 1
make[1]: Leaving directory '/build/reproducible-path/gkrellm-reminder-2.0.0'
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