[Bug 1140614] New: Error loading Applications menu extension in SLE-Classic
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 Bug ID: 1140614 Summary: Error loading Applications menu extension in SLE-Classic Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: x86-64 OS: openSUSE Factory Status: NEW Severity: Normal Priority: P5 - None Component: GNOME Assignee: qkzhu@suse.com Reporter: qkzhu@suse.com QA Contact: qa-bugs@suse.de CC: gwang@suse.com, xiaoguang.wang@suse.com, yfjiang@suse.com, zcjia@suse.com Found By: --- Blocker: --- apps-menu disappeared in TW-20190704, and journalctl shows:
gnome-shell[2369]: Extension "apps-menu@gnome-shell-extensions.gcampax.github.com" had error: Error: Requiring GMenu, version none: Typelib file for namespace 'GMenu' (any version) not found
-- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c1 --- Comment #1 from QK ZHU <qkzhu@suse.com> --- According to https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/151 this issue could be resolved by:
zypper in typelib-1_0-GMenu-3_0
So we should figure out what happened to the dependency of typelib-1_0-GMenu-3_0 in TW, it should be installed by default -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c2 --- Comment #2 from QK ZHU <qkzhu@suse.com> --- The dependency comparison of gnome-shell-classic between Leap15 and TW Leap 15 ------ ➜ rpm -q --requires gnome-shell-classic rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 typelib(Atk) typelib(Clutter) typelib(GLib) typelib(GMenu) typelib(GObject) typelib(Gio) typelib(Gtk) typelib(Pango) typelib(Shell) typelib(St) TW ------ test@linux-ur2v:~> rpm -q --requires gnome-shell-classic gnome-shell-classic-session rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 typelib(Clutter) typelib(GLib) typelib(GObject) typelib(Gio) typelib(Gtk) typelib(Shell) typelib(St) -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 QK ZHU <qkzhu@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dimstar@opensuse.org -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c3 QK ZHU <qkzhu@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Flags| |needinfo?(dimstar@opensuse. | |org) --- Comment #3 from QK ZHU <qkzhu@suse.com> --- Hi Dominique, typelib-1_0-GMenu-3_0 (which is needed by GNOME-Classic mode and SLE-Classic mode) was not installed by default on TW-20190704. I can't find what requires this lib by
$ rpm -q --whatrequires typelib-1_0-GMenu-3_0 no package requires typelib-1_0-GMenu-3_0
but
# rpm -e --test typelib-1_0-GMenu-3_0 error: Failed dependencies: typelib(GMenu) is needed by (installed) gnome-shell-classic-3.26.2-lp151.7.1.noarch shows it was depended by gnome-shell-classic, then I compared gnome-shell- extensions.spec of Leap15.1 and TW but still not sure which part defined the dependency.
Do you have any ideas about this? Thanks -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c4 Dominique Leuenberger <dimstar@opensuse.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(dimstar@opensuse. | |org) | --- Comment #4 from Dominique Leuenberger <dimstar@opensuse.org> --- try rpm -q --what-requires "typelib(GMenu)" NOTHing is supposed to require the package name typelib-1_0-GMenu-3_0; only the typelib() format should be used The dependency should be auto detected, if the java script parser in gobject-introspection manages to identify it correctly. Sadly, in GNOME 3.32, upstream changed quite some of the constructs, which makes the parser 'too stupid' The new code is: const { Atk, Clutter, Gio, GLib, GMenu, GObject, Gtk, Meta, Shell, St } = imports.gi; The simple fix is to 'add typelib(GMenu) as a requires go gnome-shell-classic, but even better would be if you can find the time to write a smarter parser for javascrip, that detects all those deps in this format. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c5 --- Comment #5 from QK ZHU <qkzhu@suse.com> --- Hi Dominique, I wrote a new line of shell script, could you have a review: - https://build.opensuse.org/package/rdiff/home:qkzhu:branches:GNOME:Factory/gobject-introspection?linkrev=base&rev=2 I will submit it to GNOME:Factory if you think it's OK -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c6 --- Comment #6 from Dominique Leuenberger <dimstar@opensuse.org> --- (In reply to QK ZHU from comment #5)
Hi Dominique,
I wrote a new line of shell script, could you have a review: - https://build.opensuse.org/package/rdiff/home:qkzhu:branches:GNOME:Factory/ gobject-introspection?linkrev=base&rev=2
The patch must be wrong - there are now invalid dependencies showing up on libgjs0: After extracting the gresources from libgjs0, it detects invalid deps in those files:
./org/gnome/gjs/modules/_bootstrap/debugger.js: typelib();)
./org/gnome/gjs/modules/signals.js: typelib(Name:'WithSignals') typelib(connect:_connect) typelib(disconnect:_disconnect) typelib(emit:_emit) typelib(signalHandlerIsConnected:_signalHandlerIsConnected) typelib(disconnectAll:_disconnectAll)
both files don't have any imports.gi statement at all. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c7 --- Comment #7 from QK ZHU <qkzhu@suse.com> --- The script was revised: - https://build.opensuse.org/package/rdiff/home:qkzhu:branches:GNOME:Factory/gobject-introspection?linkrev=base&rev=2 And I tested this script against gnome-shell, gnome-shell-extensions, gjs via: #!/bin/bash files=$(find ~/git/gnome-shell-extensions -name "*.js") #files=$(find ~/git/gjs -name "*.js") #files=$(find ~/git/gnome-shell -name "*.js") for file in $files do echo "the requires of $file"; grep -r -h -A2 'const {' $file | paste -s -d ' ' | grep '} = imports.gi;' | sed 's/imports.gi;.*/imports.gi;/' | awk -F '[{}]' '{print $(NF>1?NF-1:"")}' | tr ',' '\n' | tr -d ' ' echo "----------" done -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c8 --- Comment #8 from Dominique Leuenberger <dimstar@opensuse.org> --- (In reply to QK ZHU from comment #7)
The script was revised: - https://build.opensuse.org/package/rdiff/home:qkzhu:branches:GNOME:Factory/ gobject-introspection?linkrev=base&rev=2
And I tested this script against gnome-shell, gnome-shell-extensions, gjs via:
#!/bin/bash
files=$(find ~/git/gnome-shell-extensions -name "*.js") #files=$(find ~/git/gjs -name "*.js") #files=$(find ~/git/gnome-shell -name "*.js")
Just to be sure: did you extract the gresources? libgjs0 embeds *.js files directly into the library The best way to test is to extract libgjs0 into a temp dir (using unrpm) then find /tmp/path/to/libgjs0-extraced | /path/to/your/gi-find-desp.sh -R alternatively, you can branch gjs into your home: space and let it be inspected with your gobject-introspection change. If the resulting package is installable, we're a good step closer -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c9 --- Comment #9 from QK ZHU <qkzhu@suse.com> --- (In reply to Dominique Leuenberger from comment #8)
(In reply to QK ZHU from comment #7)
The script was revised: -
And I tested this script against gnome-shell, gnome-shell-extensions, gjs
Just to be sure: did you extract the gresources? libgjs0 embeds *.js files directly into the library
Just extracted libgjs0 and tested: ➜ find ./libgjs0_extracted | ~/gi-find-deps.sh -R typelib(GLib) typelib(GLib) typelib(GjsPrivate) typelib(GLib) typelib(GObject) typelib(GLib) typelib(GIRepository) typelib(Gio) typelib(GObject) typelib(GLib) typelib(GjsPrivate) typelib(Gio) typelib(GjsPrivate) typelib(GObject) typelib(GjsPrivate) typelib(GLib) typelib(cairo) typelib(GjsPrivate) -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c11 --- Comment #11 from Dominique Leuenberger <dimstar@opensuse.org> --- nothing provides typelib(UPowerGlib:UPower) needed by gnome-shell, nothing provides typelib(TelepathyGLib:Tp) needed by polari -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c12 --- Comment #12 from Dominique Leuenberger <dimstar@opensuse.org> --- So at least two more packages that are getting invalid requires added now with the new gi-find-deps version -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c13 --- Comment #13 from QK ZHU <qkzhu@suse.com> --- (In reply to Dominique Leuenberger from comment #11)
nothing provides typelib(UPowerGlib:UPower) needed by gnome-shell, nothing provides typelib(TelepathyGLib:Tp) needed by polari
Strings after the colon were removed and I branch some of the JS related packages to my home project, those packages can be installed successfully. The dependency of gnome-shell-classic was fixed: - https://build.opensuse.org/project/show/home:qkzhu:branches:GNOME:Factory -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c14 QK ZHU <qkzhu@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #14 from QK ZHU <qkzhu@suse.com> --- Request accepted. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1140614 http://bugzilla.opensuse.org/show_bug.cgi?id=1140614#c15 --- Comment #15 from OBSbugzilla Bot <bwiedemann+obsbugzillabot@suse.com> --- This is an autogenerated message for OBS integration: This bug (1140614) was mentioned in https://build.opensuse.org/request/show/1073225 Factory / gobject-introspection -- You are receiving this mail because: You are on the CC list for the bug.
participants (2)
-
bugzilla_noreply@novell.com
-
bugzilla_noreply@suse.com