Subject: parcellite: ftbfs with GCC-14

From: Matthias Klose <[email-masked]>
Date: Wed, 03 Jul 2024 12:39:27 +0000

Package: src:parcellite
Version: 1.2.1-8
Severity: important
Tags: sid trixie
User: [email-masked]
Usertags: ftbfs-gcc-14

[This bug is 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-14/g++-14, but succeeds to build with gcc-13/g++-13. The
severity of this report will be raised before the trixie release.

The full build log can be found at:
http://qa-logs.debian.net/2024/07/01/parcellite_1.2.1-8_unstable_gccexp.log
The last lines of the build log are at the end of this report.

To build with GCC 14, either set CC=gcc-14 CXX=g++-14 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++ 

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-14/porting_to.html

[...]
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:92:23: note: declared here
   92 | GtkStatusIcon        *gtk_status_icon_new_from_icon_name (const gchar        *icon_name);
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:2174:25: warning: ‘gtk_status_icon_set_has_tooltip’ is deprecated [-Wdeprecated-declarations]
 2174 |                         gtk_status_icon_set_has_tooltip((GtkStatusIcon*)status_icon, _("Clipboard Manager"));
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:134:23: note: declared here
  134 | void                  gtk_status_icon_set_has_tooltip    (GtkStatusIcon      *status_icon,
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:2174:86: error: passing argument 2 of ‘gtk_status_icon_set_has_tooltip’ makes integer from pointer without a cast [-Wint-conversion]
 2174 |                         gtk_status_icon_set_has_tooltip((GtkStatusIcon*)status_icon, _("Clipboard Manager"));
      |                                                                                      ^
      |                                                                                      |
      |                                                                                      char *
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:135:79: note: expected ‘gboolean’ {aka ‘int’} but argument is of type ‘char *’
  135 |                                                           gboolean            has_tooltip);
      |                                                           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
main.c:2178:25: warning: ‘gtk_status_icon_set_from_icon_name’ is deprecated [-Wdeprecated-declarations]
 2178 |                         gtk_status_icon_set_from_icon_name(status_icon,get_pref_string("icon_name"));
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gtk-3.0/gtk/deprecated/gtkstatusicon.h:106:23: note: declared here
  106 | void                  gtk_status_icon_set_from_icon_name (GtkStatusIcon      *status_icon,
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c: In function ‘menu_hotkey’:
main.c:2240:30: error: passing argument 2 of ‘g_timeout_add’ from incompatible pointer type [-Wincompatible-pointer-types]
 2240 |   g_timeout_add(POPUP_DELAY, show_parcellite_menu, NULL);
      |                              ^~~~~~~~~~~~~~~~~~~~
      |                              |
      |                              gboolean (*)(GtkStatusIcon *, guint,  guint,  void *) {aka int (*)(struct _GtkStatusIcon *, unsigned int,  unsigned int,  void *)}
In file included from /usr/include/glib-2.0/glib/giochannel.h:35,
                 from /usr/include/glib-2.0/glib.h:56,
                 from parcellite.h:20:
/usr/include/glib-2.0/glib/gmain.h:787:54: note: expected ‘GSourceFunc’ {aka ‘int (*)(void *)’} but argument is of type ‘gboolean (*)(GtkStatusIcon *, guint,  guint,  void *)’ {aka ‘int (*)(struct _GtkStatusIcon *, unsigned int,  unsigned int,  void *)’}
  787 |                                      GSourceFunc     function,
      |                                      ~~~~~~~~~~~~~~~~^~~~~~~~
main.c: In function ‘parcellite_init’:
main.c:2254:20: warning: Deprecated pre-processor symbol
 2254 |         if(FALSE ==g_thread_supported()){
      |                    ^~~~~~~~~~~~~~~~~~~~~~           
main.c:2257:9: warning: ‘g_mutex_new’ is deprecated [-Wdeprecated-declarations]
 2257 |         hist_lock= g_mutex_new();
      |         ^~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:115:
/usr/include/glib-2.0/glib/deprecated/gthread.h:283:17: note: declared here
  283 | GMutex *        g_mutex_new             (void);
      |                 ^~~~~~~~~~~
daemon.c: In function ‘daemon_check’:
daemon.c:53:5: warning: ‘gdk_window_get_pointer’ is deprecated: Use 'gdk_window_get_device_position' instead [-Wdeprecated-declarations]
   53 |     gdk_window_get_pointer(NULL, NULL, NULL, &button_state);
      |     ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/gtk-3.0/gdk/gdkseat.h:28,
                 from /usr/include/gtk-3.0/gdk/gdkdisplay.h:33,
                 from /usr/include/gtk-3.0/gdk/gdkscreen.h:32,
                 from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:31,
                 from /usr/include/gtk-3.0/gdk/gdk.h:32,
                 from /usr/include/gtk-3.0/gtk/gtk.h:30,
                 from parcellite.h:22,
                 from daemon.c:18:
/usr/include/gtk-3.0/gdk/gdkwindow.h:860:15: note: declared here
  860 | GdkWindow *   gdk_window_get_pointer     (GdkWindow       *window,
      |               ^~~~~~~~~~~~~~~~~~~~~~
make[3]: *** [Makefile:441: main.o] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>/src'
make[2]: *** [Makefile:431: all-recursive] Error 1
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: *** [Makefile:372: all] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2