Bug 1159079

Summary: ibus fails to build with GNOME 3.34 update
Product: [openSUSE] openSUSE Distribution Reporter: Max Lin <mlin>
Component: GNOMEAssignee: Cliff Zhao <qzhao>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P2 - High CC: fcrozat, lnussel, lubos.kocman, qzhao, yfjiang
Version: Leap 15.2   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 1158159    

Description Max Lin 2019-12-12 08:43:57 UTC
ibus fails to build[1] with GNOME 3.34 update.

[  514s] extension.c: In function 'extension_gtk_instance_init':
[  514s] extension.c:376:13: warning: G_ADD_PRIVATE
[  514s]   self->priv = EXTENSION_GTK_GET_PRIVATE (self);
[  514s]              ^~~~~~~~~~~~~~~
[  514s]   GEN      gtkpanel.xml
[  514s]   GEN      gtkextension.xml
[  514s]   GEN      ibus-ui-emojier.desktop.in
[  514s]   GEN      ibus-extension-gtk3.desktop.in
[  514s]   GEN      ibus-emoji.7
[  514s]   GEN      org.freedesktop.IBus.Panel.Emojier.desktop
[  514s]   GEN      org.freedesktop.IBus.Panel.Extension.Gtk3.desktop
[  514s] indicator.vala:150.13-150.30: warning: GLib.DBusProxy.new has been deprecated since vala-0.36. Use DBusProxy
[  514s] indicator.vala:150.13-150.36: warning: GLib.DBusProxy.new has been deprecated since vala-0.36. Use DBusProxy
[  514s] indicator.vala:171.27-171.44: warning: GLib.DBusProxy.new has been deprecated since vala-0.36. Use DBusProxy
[  514s] indicator.vala:171.27-171.48: warning: GLib.DBusProxy.new has been deprecated since vala-0.36. Use DBusProxy
[  515s] bindingcommon.vala:78.13-78.34: warning: Gdk.Keymap.get_default has been deprecated since 3.22
[  515s] emojier.vala:915.48-915.53: error: Assignment: Cannot convert from `GLib.SList<string>' to `GLib.SList<weak string>?'
[  515s]             unowned GLib.SList<unowned string> emojis =
[  515s]                                                ^^^^^^
[  515s] emojier.vala:919.46-919.51: error: The name `emojis' does not exist in the context of `IBusEmojier.show_emoji_for_category'
[  515s]             foreach (unowned string emoji in emojis) {
[  515s]                                              ^^^^^^
[  515s] emojier.vala:2182.17-2182.37: warning: string.utf8_offset is deprecated. Use string.index_of_nth_char
[  515s] emojier.vala:1580.45-1580.55: error: Assignment: Cannot convert from `GLib.SList<string>' to `GLib.SList<weak string>?'
[  515s]         unowned GLib.SList<unowned string>? annotations =
[  515s]                                             ^^^^^^^^^^^
[  515s] emojier.vala:1584.47-1584.57: error: The name `annotations' does not exist in the context of `IBusEmojier.show_emoji_description'
[  515s]         foreach (unowned string annotation in annotations) {
[  515s]                                               ^^^^^^^^^^^
[  515s] emojier.vala:454.36-454.45: error: Assignment: Cannot convert from `GLib.SList<weak IBus.EmojiData>' to `GLib.SList<IBus.EmojiData>?'
[  515s]         GLib.SList<IBus.EmojiData> emoji_list = IBus.EmojiData.load(
[  515s]                                    ^^^^^^^^^^
[  515s] emojier.vala:456.13-456.22: error: The name `emoji_list' does not exist in the context of `IBusEmojier.make_emoji_dict'
[  515s]         if (emoji_list == null)
[  515s]             ^^^^^^^^^^
[  515s] emojier.vala:458.41-458.50: error: The name `emoji_list' does not exist in the context of `IBusEmojier.make_emoji_dict'
[  515s]         foreach (IBus.EmojiData data in emoji_list) {
[  515s]                                         ^^^^^^^^^^
[  515s] emojier.vala:2100.42-2100.59: error: Argument 1: Cannot convert from `GLib.SList<weak string>' to `GLib.SList<string>'
[  515s]                     data.set_annotations(annotations.copy());
[  515s]                                          ^^^^^^^^^^^^^^^^^^
[  515s] emojier.vala:2107.65-2107.77: error: Argument 2: Cannot convert from `GLib.SList<weak string>' to `GLib.SList<string>'
[  515s]                 m_annotation_to_emojis_dict.replace(annotation, emojis.copy());
[  515s]                                                                 ^^^^^^^^^^^^^
[  515s] emojier.vala:666.9-667.69: error: Assignment: Cannot convert from `GLib.SList<weak IBus.UnicodeBlock>' to `GLib.SList<IBus.UnicodeBlock>'
[  515s] panel.vala:1082.41-1082.53: warning: Posix.SIGUSR1 has been deprecated since vala-0.40. Use Posix.Signal.USR1
[  515s] panel.vala:311.29-311.42: warning: Gtk.StatusIcon has been deprecated since 3.14
[  515s] panel.vala:526.36-526.42: error: Assignment: Cannot convert from `GLib.List<weak IBus.EngineDesc>' to `GLib.List<IBus.EngineDesc>?'
[  515s]         GLib.List<IBus.EngineDesc> engines = m_bus.list_engines();
[  515s]                                    ^^^^^^^
[  515s] panel.vala:527.71-527.77: error: The name `engines' does not exist in the context of `Panel.init_engines_order'
[  515s]         GLib.List<IBus.EngineDesc> xkb_engines = get_engines_from_xkb(engines);
[  515s]                                                                       ^^^^^^^
[  515s] panel.vala:529.41-529.47: error: The name `engines' does not exist in the context of `Panel.init_engines_order'
[  515s]                 get_engines_from_locale(engines);
[  515s]                                         ^^^^^^^
[  515s] panel.vala:532.52-532.61: error: The name `im_engines' does not exist in the context of `Panel.init_engines_order'
[  515s]         foreach (unowned IBus.EngineDesc engine in im_engines)
[  515s]                                                    ^^^^^^^^^^
[  515s] panel.vala:534.52-534.62: error: The name `xkb_engines' does not exist in the context of `Panel.init_engines_order'
[  515s]         foreach (unowned IBus.EngineDesc engine in xkb_engines)
[  515s]                                                    ^^^^^^^^^^^
[  515s] Compilation failed: 15 error(s), 8 warning(s)
[  515s] make[3]: *** [Makefile:926: ibus_ui_gtk3_vala.stamp] Error 1
[  515s] make[3]: *** Waiting for unfinished jobs....

[1] https://build.opensuse.org/package/show/openSUSE:Leap:15.2:Staging:C/ibus
Comment 1 Yifan Jiang 2019-12-12 09:31:20 UTC
Just some initial review - it looks like we need this patch (or more) to make it work with later Vala:

https://github.com/ibus/ibus/commit/4d7c1e00e15921a0448947961183c1c124b6b49f

SLE 15 SP2 does not have this issue since it uses the binary from SLE-15-SP1 which was built with older vala.
Comment 2 Max Lin 2019-12-12 09:37:37 UTC
Yes, so we need to fix this issue in SLE.
Comment 3 Cliff Zhao 2019-12-18 08:15:25 UTC
Thanks to Yifan to point out the upstream's fix.
Comment 4 Cliff Zhao 2019-12-18 08:20:19 UTC
Hi Max:
I have back-port the upstream's fix, but unfortunately, I don't have a confirm env for this build failure, so I put the fix in OBS(https://build.opensuse.org/package/show/home:qzhao:branches:openSUSE:Leap:15.2/ibus), could you please download it and try again? If it works, I will send a formal submission; but if it still failed, please also tell me, I will continue digging works.
Thank you!
Comment 5 Max Lin 2019-12-18 08:26:38 UTC
(In reply to Cliff Zhao from comment #4)
> Hi Max:
> I have back-port the upstream's fix, but unfortunately, I don't have a
> confirm env for this build failure, so I put the fix in
> OBS(https://build.opensuse.org/package/show/home:qzhao:branches:openSUSE:
> Leap:15.2/ibus), could you please download it and try again? If it works, I
> will send a formal submission; but if it still failed, please also tell me,
> I will continue digging works.
> Thank you!

insert repoinfo below to your project branch's meta then you can verify ibus builds :)

# osc meta prj -e home:qzhao:branches:openSUSE:Leap:15.2

<repository name="openSUSE_Leap_15.2_Staging_C">
    <path project="openSUSE:Leap:15.2:Staging:C" repository="standard"/>
    <arch>i586</arch>
    <arch>x86_64</arch>
  </repository>
Comment 6 Cliff Zhao 2019-12-18 09:16:32 UTC
Thank you so much. I have confirmed, it looks fine.
Comment 7 Max Lin 2019-12-18 10:30:59 UTC
BTW just a friendly reminder, the change need go to SLE15 SP2 too :)
Comment 9 Cliff Zhao 2019-12-19 02:00:22 UTC
Hi Frederic:

I have sent bug's fix to SUSE:SLE-15-SP1:Update yesterday, but have been denied.
(https://build.suse.de/request/show/208069), what's your opinion?
after discussion, In our humble opinion, we have 3 potential resolutions:
1, Open a new fate to push the ibus-1.5.21 from the factory to SUSE:SLE-15-SP1:Update: the iBus has very little outer dependences, seems no big problem with a fresh update; and it can solve a lot of existing problems at the same time, we suppose this is the best way.

2, Continue to submit to SUSE:SLE-15-SP1:Update: because the iBus in SUSE:SLE-15-SP2:GA is inherited from SUSE:SLE-15-SP1:Update; we think we should avoid the source folk. So we will try to introduce the background of this case to Ruediger, and push him to accept it by persuade. Another is: we will confirm test if this fix doesn't have any bad influence on SUSE:SLE-15-SP1:Update, then we submit together to these 2 projects.

3, We submit this fix to SUSE:SLE-15-SP2:GA: It may be easier to be accepted. but we will have 3 source forks between SUSE:SLE-15-SP0, SP1 and SP2, We think that the test and maintenance workload will rise in double.

Or maybe you have better guidance, please tell us, all your valuable opinions are welcome!
Comment 10 Cliff Zhao 2019-12-19 02:22:37 UTC
(In reply to Cliff Zhao from comment #9)
> Hi Frederic:
> 
> I have sent bug's fix to SUSE:SLE-15-SP1:Update yesterday, but have been
> denied.
> (https://build.suse.de/request/show/208069), what's your opinion?
> after discussion, In our humble opinion, we have 3 potential resolutions:
> 1, Open a new fate to push the ibus-1.5.21 from the factory to
> SUSE:SLE-15-SP1:Update: 
...
Sorry, I mean: "Open a new Jira issue to push the ibus-1.5.21 from the factory to
SUSE:SLE-15-SP2:GA"
Comment 11 Ludwig Nussel 2019-12-19 08:38:09 UTC
SP2 is probably a good opportunity to upgrade ibus. Nevertheless the SP1 submission is also fine so could be reopened. Rudi is right that it is a noop but that is quite common. Maintenance is supposed to put such updates only in an incident but don't release. That way we can fast track the package to Leap and make sure the fix won't be forgotten on SLE, should a follow-up update be needed.
Comment 12 Frederic Crozat 2019-12-19 09:49:54 UTC
(In reply to Ludwig Nussel from comment #11)
> SP2 is probably a good opportunity to upgrade ibus. Nevertheless the SP1
> submission is also fine so could be reopened. Rudi is right that it is a
> noop but that is quite common. Maintenance is supposed to put such updates
> only in an incident but don't release. That way we can fast track the
> package to Leap and make sure the fix won't be forgotten on SLE, should a
> follow-up update be needed.

I'm in agreement with Ludwig, let's upgrade ibus in SP2. You should be able to use the jira feature for GNOME rebase.
Comment 13 Cliff Zhao 2019-12-19 09:52:36 UTC
(In reply to Frederic Crozat from comment #12)
> (In reply to Ludwig Nussel from comment #11)
> > SP2 is probably a good opportunity to upgrade ibus. Nevertheless the SP1
> > submission is also fine so could be reopened. Rudi is right that it is a
> > noop but that is quite common. Maintenance is supposed to put such updates
> > only in an incident but don't release. That way we can fast track the
> > package to Leap and make sure the fix won't be forgotten on SLE, should a
> > follow-up update be needed.
> 
> I'm in agreement with Ludwig, let's upgrade ibus in SP2. You should be able
> to use the jira feature for GNOME rebase.

OK, thank you Ludwig, Frederic, I will do that.
Comment 14 Cliff Zhao 2019-12-20 10:39:06 UTC
Hi Ludwig, Frederic:
Could you please have a review on https://build.suse.de/project/show/home:qzhao:branches:SUSE:SLE-15-SP2:GA? can I update these iBus related package to SUSE:SLE-15-SP2:GA next?
ibus-anthy and ibus-cangjie is new input engine which were first propose to submit to SUSE:SLE-15-SP1:GA. ibus-chewing has a build dependence to cmake-fedora-modules, and I have sent a fix patch to Factory.
Thanks!
Comment 15 Ludwig Nussel 2019-12-20 11:08:29 UTC
all of them same as Factory? then fine :)
Comment 16 Swamp Workflow Management 2020-02-23 11:10:31 UTC
This is an autogenerated message for OBS integration:
This bug (1159079) was mentioned in
https://build.opensuse.org/request/show/778540 15.1 / ibus
Comment 17 Swamp Workflow Management 2020-02-24 12:40:27 UTC
This is an autogenerated message for OBS integration:
This bug (1159079) was mentioned in
https://build.opensuse.org/request/show/778737 15.1 / ibus
Comment 18 Swamp Workflow Management 2020-02-25 12:40:23 UTC
This is an autogenerated message for OBS integration:
This bug (1159079) was mentioned in
https://build.opensuse.org/request/show/779044 15.1 / ibus
Comment 19 Lubos Kocman 2020-03-23 14:32:49 UTC
I suppose there is nothing left to do.
Marking as resolved.