Bug 1225778 - Package ibus does not build with gcc14 because of uses of incompatible pointer types
Summary: Package ibus does not build with gcc14 because of uses of incompatible pointe...
Status: RESOLVED FIXED
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Other (show other bugs)
Version: Current
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Fuminobu Takeyama
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: modern_C
  Show dependency treegraph
 
Reported: 2024-05-31 20:28 UTC by Martin Jambor
Modified: 2024-07-11 15:45 UTC (History)
0 users

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Jambor 2024-05-31 20:28:50 UTC
Gcc 14 newly by default treats as errors a number of situations which
before were only warnings.  For more information see
https://gcc.gnu.org/gcc-14/porting_to.html and meta bug #1220571.

Because of this, package ibus fails to compile.  This can be seen online
at:
https://build.opensuse.org/package/live_build_log/openSUSE:Factory:Staging:Gcc7/ibus/standard/x86_64

It can be reproduced locally with command: osc build --clean
--alternative-project home:rguenther:nextgcc

Fedora seems to have decided to avoid the new errors, see
https://gitlab.com/fweimer-rh/fedora-modernc/-/blob/main/pkg/i/ibus.md?ref_type=heads
The issue seems to be related to vala, so we should probably consider using
-fpermissive - at least for now - too.

The error (that halts the build) is:

[  329s] emojierapp.c: In function ‘emoji_application_save_selected_string’:
[  329s] emojierapp.c:306:60: error: passing argument 3 of ‘g_settings_set_strv’ from incompatible pointer type [-Wincompatible-pointer-types]
[  329s]   306 |                 g_settings_set_strv (_tmp11_, "favorites", _tmp12_);
[  329s]       |                                                            ^~~~~~~
[  329s]       |                                                            |
[  329s]       |                                                            gchar ** {aka char **}
[  329s] In file included from /usr/include/glib-2.0/gio/gio.h:137,
[  329s]                  from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
[  329s]                  from /usr/include/gtk-3.0/gdk/gdk.h:32,
[  329s]                  from /usr/include/gtk-3.0/gtk/gtk.h:30,
[  329s]                  from emojierapp.c:30:
[  329s] /usr/include/glib-2.0/gio/gsettings.h:191:94: note: expected ‘const gchar * const*’ {aka ‘const char * const*’} but argument is of type ‘gchar **’ {aka ‘char **’}
[  329s]   191 |                                                                          const gchar *const *value);
[  329s]       |                                                                          ~~~~~~~~~~~~~~~~~~~~^~~~~
Comment 1 Fuminobu Takeyama 2024-07-07 15:34:43 UTC
I'm updating ibus to 1.5.30 but I know there is no change for this problem.
I'm not sure why the build success in my repository.

https://build.opensuse.org/package/live_build_log/home:ftake:branches:M17N/ibus/openSUSE_Factory_Staging_Gcc7/x86_64
Comment 2 Martin Jambor 2024-07-09 14:48:43 UTC
(In reply to Fuminobu Takeyama from comment #1)
> I'm updating ibus to 1.5.30 but I know there is no change for this problem.
> I'm not sure why the build success in my repository.
> 
> https://build.opensuse.org/package/live_build_log/home:ftake:branches:M17N/
> ibus/openSUSE_Factory_Staging_Gcc7/x86_64

I can confirm I was able to build the package ibus from home:ftake:branches with GCC 14.  Thanks for working on this!

I understand that https://build.opensuse.org/request/show/1186173 is where this is on its way to Factory, I'll keep an eye on it.
Comment 3 Martin Jambor 2024-07-11 15:45:12 UTC
I can confirm this has now been fixed even in Factory.  Thanks a lot!