mate-desktop / mate-settings-daemon

MATE settings daemon
https://mate-desktop.org
GNU General Public License v2.0
44 stars 46 forks source link

1.27.0 and stable 1.26.1 are not gcc 14.x ready #411

Closed kloczek closed 5 months ago

kloczek commented 5 months ago

Looks like last version build fails with latest gcc 14.x which is now used in fedora rawhide.

Build fails with ```console Making all in a11y-keyboard make[3]: Entering directory '/home/tkloczko/rpmbuild/BUILD/mate-settings-daemon-1.27.0/plugins/a11y-keyboard' /bin/sh ../../libtool --tag=CC --mode=compile /usr/bin/gcc -DHAVE_CONFIG_H -I. -I../.. -I../../mate-settings-daemon -DMATE_SETTINGS_LOCALEDIR=\""/usr/share/locale"\" -DGTKBUILDERDIR=\""/usr/share/mate-settings-daemon"\" -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -Wall -Wmissing-prototypes -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g -grecord-gcc-switches -pipe -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdata-sections -ffunction-sections -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -flto=auto -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -Wall -Werror=format-security -Os -c -o liba11y_keyboard_la-msd-a11y-keyboard-atspi.lo `test -f 'msd-a11y-keyboard-atspi.c' || echo './'`msd-a11y-keyboard-atspi.c libtool: compile: /usr/bin/gcc -DHAVE_CONFIG_H -I. -I../.. -I../../mate-settings-daemon -DMATE_SETTINGS_LOCALEDIR=\"/usr/share/locale\" -DGTKBUILDERDIR=\"/usr/share/mate-settings-daemon\" -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -Wall -Wmissing-prototypes -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g -grecord-gcc-switches -pipe -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdata-sections -ffunction-sections -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -flto=auto -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -Wall -Werror=format-security -Os -c msd-a11y-keyboard-atspi.c -fPIC -DPIC -o .libs/liba11y_keyboard_la-msd-a11y-keyboard-atspi.o msd-a11y-keyboard-atspi.c: In function 'msd_a11y_keyboard_atspi_start': msd-a11y-keyboard-atspi.c:131:53: error: passing argument 1 of 'atspi_device_listener_new' from incompatible pointer type [-Wincompatible-pointer-types] 131 | self->listener = atspi_device_listener_new (on_key_press_event, | ^~~~~~~~~~~~~~~~~~ | | | gboolean (*)(const AtspiDeviceEvent *, void *) {aka int (*)(const struct _AtspiDeviceEvent *, void *)} In file included from /usr/include/at-spi-2.0/atspi/atspi.h:34, from msd-a11y-keyboard-atspi.c:27: /usr/include/at-spi-2.0/atspi/atspi-device-listener.h:87:71: note: expected 'AtspiDeviceListenerCB' {aka 'int (*)(struct _AtspiDeviceEvent *, void *)'} but argument is of type 'gboolean (*)(const AtspiDeviceEvent *, void *)' {aka 'int (*)(const struct _AtspiDeviceEvent *, void *)'} 87 | AtspiDeviceListener *atspi_device_listener_new (AtspiDeviceListenerCB callback, void *user_data, GDestroyNotify callback_destroyed); | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ make[3]: *** [Makefile:676: liba11y_keyboard_la-msd-a11y-keyboard-atspi.lo] Error 1 ```
cwendling commented 5 months ago

1.27 is unstable (isn't it?), and this had been fixed already in #400, which you'd get with building master (and it fixes leaks). The other option is to build with libatspi < 2.40, but you probably don't want to do that while using GCC 14 :)

Another option could be to add a cast so we can build with both versions (yet I don't think GCC actually silences itself in this case), but that's pretty much only a sad hack. Just use something newer than a development snapshot :)

kloczek commented 5 months ago

Any plans to flush all already accumulated commits and release new 1.27.x unstable? 🤔 Last release was +year ago.

kloczek commented 5 months ago

BTW it wold be good to clean all deprecation warnings

[tkloczko@pers-jacek .build_logs]$ xzcat mate-settings-daemon.1.27.0-2.build_log.xz | grep -- \\[-W | sed 's/.*\[//; s/\]//' | sort | uniq -c | sort -nr
     34 -Wdeprecated-declarations
      1 -Wincompatible-pointer-types
raveit65 commented 5 months ago

It affects stable 1.26 msd package too. Currently fedora is in mass rebuild of rawhide before branching rawhide to fedora 40. Stable msd-1.26 and other mate packages failed to build because -Wincompatible-pointer-types warnings will be treat as errors in rawhide (f40) because of gcc14. See https://kojipkgs.fedoraproject.org//work/tasks/3855/112323855/build.log

msd-a11y-keyboard-atspi.c: In function 'msd_a11y_keyboard_atspi_start':
msd-a11y-keyboard-atspi.c:131:53: error: passing argument 1 of 'atspi_device_listener_new' from incompatible pointer type [-Wincompatible-pointer-types]
  131 |         self->listener = atspi_device_listener_new (on_key_press_event,
      |                                                     ^~~~~~~~~~~~~~~~~~
      |                                                     |
      |                                                     gboolean (*)(const AtspiDeviceEvent *, void *) {aka int (*)(const struct _AtspiDeviceEvent *, void *)}
In file included from /usr/include/at-spi-2.0/atspi/atspi.h:34,
                 from msd-a11y-keyboard-atspi.c:27:
/usr/include/at-spi-2.0/atspi/atspi-device-listener.h:87:71: note: expected 'AtspiDeviceListenerCB' {aka 'int (*)(struct _AtspiDeviceEvent *, void *)'} but argument is of type 'gboolean (*)(const AtspiDeviceEvent *, void *)' {aka 'int (*)(const struct _AtspiDeviceEvent *, void *)'}
   87 | AtspiDeviceListener *atspi_device_listener_new (AtspiDeviceListenerCB callback, void *user_data, GDestroyNotify callback_destroyed);
      |                                                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
make[3]: *** [Makefile:681: liba11y_keyboard_la-msd-a11y-keyboard-atspi.lo] Error 1
make[3]: *** Waiting for unfinished jobs....

@cwendling So this is definitely urgent

....on the other side when whole the Mate desktop failed to build for next fedora i am freeeee \o/ .... and i can bury Mate in fedora and stop working here :) This is very tempting for me.

Any way i wich check packages and open reports to work on it.

1.27 is unstable (isn't it?), and this had been fixed already in https://github.com/mate-desktop/mate-settings-daemon/pull/400, which you'd get with building master (and it fixes leaks).

I will test if this works for 1.26.

raveit65 commented 5 months ago

Any plans to flush all already accumulated commits and release new 1.27.x unstable? 🤔 Last release was +year ago.

I will check all repos and do new releases when there enough new commits there.

kloczek commented 5 months ago

I will check all repos and do new releases when there enough new commits there.

Thank you 👍

cwendling commented 5 months ago

....on the other side when whole the Mate desktop failed to build for next fedora i am freeeee \o/

:rofl:

I will test if this works for 1.26.

It at least applies cleanly, and looking at the patch I'm fairly confident it would work the same.

raveit65 commented 5 months ago

I do not see any -Wincompatible-pointer-types warnings in latest travis-ci build for master branch https://app.travis-ci.com/github/mate-desktop/mate-settings-daemon/jobs/616697684 This looks good :-) At least we can back port commits to stable branch if 1.26 has more warnings like this.

raveit65 commented 5 months ago

I can confirm that https://github.com/mate-desktop/mate-settings-daemon/pull/400 fixes the 1.26.1 build for fedora rawhide. \o/ I will chery-pick the commit to stable. @kloczek New 1.27 release coming soon for closing this issue.

kloczek commented 5 months ago

I can confirm that #400 fixes the 1.26.1 build for fedora rawhide. \o/

New gcc 14.x is only ion fedora rawhide.

raveit65 commented 5 months ago

New 1.27.1 release https://github.com/mate-desktop/mate-settings-daemon/releases/tag/v1.27.1 This should fix your build on rawhide. Fixed 1.26.1 build is already available for fedora rawhide. https://koji.fedoraproject.org/koji/buildinfo?buildID=2379851

kloczek commented 5 months ago

Just tested new version and it build now. Thank you.

PS. do you know how it will be with other mate projects? It would IMO good to push new 1.27.x versions as well.

raveit65 commented 5 months ago

yes