This service will be undergoing maintenance at 00:00 UTC, 2017-10-23 It is expected to last about 30 minutes
Bug 1278366 - After F22->F23 upgrade, some menus no longer work in the application menu
After F22->F23 upgrade, some menus no longer work in the application menu
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: gnome-shell-extensions (Show other bugs)
23
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Florian Müllner
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2015-11-05 05:50 EST by Jonathan Underwood
Modified: 2016-01-15 18:02 EST (History)
12 users (show)

See Also:
Fixed In Version: gnome-shell-extensions-3.18.3-1.fc23
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2016-01-12 02:56:38 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Jonathan Underwood 2015-11-05 05:50:28 EST
Description of problem:
I run gnome shell, with an applications menu activated (via gnome-tweak-tool). After upgrading my system to F23, I find quite of a few of the main menus items don't activate (i.e. they don't show the applications in that category). On my system the following no longer seem to work:

Education
Graphics
Office
Other

I am clueless as to where to start debugging this, so let me know what I can do to provide more information. Thanks.

Version-Release number of selected component (if applicable):
rpm -qa | grep gnome gives...

gnome-system-monitor-3.18.0.1-1.fc23.x86_64
gnome-session-3.18.1.2-1.fc23.x86_64
gnome-vfs2-2.24.4-19.fc23.x86_64
gnome-user-docs-3.18.1-1.fc23.noarch
gnome-disk-utility-3.18.1-1.fc23.x86_64
gnome-shell-extension-apps-menu-3.18.1-1.fc23.noarch
gnome-bluetooth-3.18.0-1.fc23.x86_64
gnome-shell-extension-alternate-tab-3.18.1-1.fc23.noarch
gnome-documents-3.18.1-1.fc23.x86_64
gnome-shell-extension-places-menu-3.18.1-1.fc23.noarch
gnome-online-miners-3.14.3-3.fc23.x86_64
gnome-boxes-3.18.1-1.fc23.x86_64
desktop-backgrounds-gnome-23.0.0-1.fc23.noarch
gnome-weather-3.18.1-1.fc23.noarch
libgnome-keyring-3.12.0-5.fc23.x86_64
gnome-themes-standard-3.18.0-1.fc23.x86_64
gnome-initial-setup-3.18.0-1.fc23.x86_64
gnome-python2-canvas-2.28.1-16.fc23.x86_64
gnome-shell-extension-window-list-3.18.1-1.fc23.noarch
gnome-software-3.18.2-2.fc23.x86_64
gnome-screenshot-3.18.0-1.fc23.x86_64
libgnomekbd-3.6.0-8.fc23.x86_64
gnome-session-xsession-3.18.1.2-1.fc23.x86_64
gnome-tweak-tool-3.18.0-1.fc23.noarch
gnome-maps-3.18.1-1.fc23.x86_64
gnome-video-effects-0.4.1-3.fc23.noarch
gnome-user-share-3.18.0-1.fc23.x86_64
gnome-documents-libs-3.18.1-1.fc23.x86_64
gnome-contacts-3.18.0-2.fc23.x86_64
gnome-backgrounds-3.18.0-1.fc23.noarch
polkit-gnome-0.105-9.fc23.x86_64
gnome-python2-rsvg-2.32.0-22.fc23.x86_64
gnome-font-viewer-3.16.2-3.fc23.x86_64
gnome-shell-extension-background-logo-3.18.0-1.fc23.noarch
libgnomecanvas-2.30.3-10.fc23.x86_64
gnome-menus-3.13.3-4.fc23.x86_64
gnome-session-wayland-session-3.18.1.2-1.fc23.x86_64
gnome-themes-2.32.0-13.fc23.noarch
gnome-classic-session-3.18.1-1.fc23.noarch
gnome-clocks-3.18.0-1.fc23.x86_64
gnome-desktop3-3.18.1-1.fc23.x86_64
fros-gnome-1.1-6.fc23.noarch
gnome-shell-3.18.1-1.fc23.x86_64
gnome-terminal-3.18.1-1.fc23.x86_64
f22-backgrounds-gnome-22.1.0-1.fc23.noarch
gnome-keyring-3.18.1-2.fc23.x86_64
gnome-abrt-1.2.0-5.fc23.x86_64
gnome-shell-extension-launch-new-instance-3.18.1-1.fc23.noarch
NetworkManager-vpnc-gnome-1.0.6-3.fc23.x86_64
gnome-online-accounts-3.18.1-1.fc23.x86_64
gnome-bluetooth-libs-3.18.0-1.fc23.x86_64
gnome-shell-extension-common-3.18.1-1.fc23.noarch
gnome-getting-started-docs-3.18.1-1.fc23.noarch
gnome-settings-daemon-3.18.1-1.fc23.x86_64
gnome-keyring-pam-3.18.1-2.fc23.x86_64
gnome-calculator-3.18.1-1.fc23.x86_64
gnome-icon-theme-3.12.0-3.fc23.noarch
gnome-shell-extension-user-theme-3.18.1-1.fc23.noarch
NetworkManager-openvpn-gnome-1.0.6-3.fc23.x86_64
gnome-vfs2-common-2.24.4-19.fc23.noarch
f23-backgrounds-gnome-23.1.0-1.fc23.noarch
gnome-python2-2.28.1-16.fc23.x86_64
NetworkManager-pptp-gnome-1.1.0-2.20150428git695d4f2.fc23.x86_64
gnome-color-manager-3.18.0-1.fc23.x86_64


How reproducible:
Everytime

Steps to Reproduce:
1. Upgrade F22-> F23
2. Hover mouse over any of the menu items above
3. Nothing happens

Actual results:
Nothing happens

Expected results:
Sub-menu of apps opens

Additional info:
Comment 1 Jon Thomas 2015-11-06 13:00:11 EST
Same here except it's 

internet
system tools
sound & video
system tools

that don't show and menu items.

Works fine if I use the Frippery Applications Menu extension. /usr/share/applications sees to be populated correctly. I checked some of the desktop files like virt-manager.desktop and everything seems to to be as it should.
Comment 2 Jon Thomas 2015-11-06 13:04:04 EST
"that don't show any menu items"

Also I created a new user in case there was something in the home directory causing this, but the new user also has the same problem.
Comment 3 Jon Thomas 2015-11-06 14:33:53 EST
found this workaround

https://bugs.archlinux.org/task/46647

I tested this and it does work and I also tested that it does seem to be related to kde directories. The workaround doesn't provide for kde apps to show up in the menus. But if you copy, for example, k3b.desktop out of kde4 into /usr/share/applications, the app will show up in the menu.

So it seems appSys.lookup_app returns null for app sin kde directories.
Comment 4 Jon Thomas 2015-11-06 15:03:13 EST
Using entry.get_desktop_file_id() instead of appSys.lookup_app(id) to get app (same as what frippery uses), works fine. So it does seem to be a problem with lookup_app()


    while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
            if (nextType == GMenu.TreeItemType.ENTRY) {
                let entry = iter.get_entry();
                let appInfo = entry.get_app_info();
                let id;
                try {
                    id = appInfo.get_id(); // catch non-UTF8 filenames
                } catch(e) {
                    continue;
                }
                let app = appSys.lookup_app(entry.get_desktop_file_id());
                if (appInfo.should_show()) {
                    let menu_id = dir.get_menu_id();
                    this.applicationsByCategory[categoryId].push(app);
                }
            } else if (nextType == GMenu.TreeItemType.DIRECTORY) {
Comment 5 Jon Thomas 2015-11-06 15:14:57 EST
err, or possibly bad id returned by get_id
Comment 6 Mario Michele Macaluso 2015-11-11 15:04:25 EST
(In reply to Jon Thomas from comment #4)
> Using entry.get_desktop_file_id() instead of appSys.lookup_app(id) to get
> app (same as what frippery uses), works fine. So it does seem to be a
> problem with lookup_app()
> 
> 
>     while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
>             if (nextType == GMenu.TreeItemType.ENTRY) {
>                 let entry = iter.get_entry();
>                 let appInfo = entry.get_app_info();
>                 let id;
>                 try {
>                     id = appInfo.get_id(); // catch non-UTF8 filenames
>                 } catch(e) {
>                     continue;
>                 }
>                 let app = appSys.lookup_app(entry.get_desktop_file_id());
>                 if (appInfo.should_show()) {
>                     let menu_id = dir.get_menu_id();
>                     this.applicationsByCategory[categoryId].push(app);
>                 }
>             } else if (nextType == GMenu.TreeItemType.DIRECTORY) {

I've applied this workaround and "application menu" now show all entry.

for me is:

Internet
System tools
Comment 7 Paul Finnigan 2015-11-15 16:15:19 EST
I have the same problem but my list (although not sure if it is relevant) is:

Graphics
Sound & Video
System Tools

I have not tried the fix yet. However the problem appears on two systems that were upgraded using dnf as per above. 

I have only added this comment because a third system which was built using the Fedora 23 Beta also shows the problem.
Comment 8 Andrea Musuruane 2015-11-20 15:48:50 EST
Same problem here. It's only present for the "Internet" menu.
Comment 9 Mario Michele Macaluso 2015-11-29 18:55:15 EST
the problem continues, even if there was an update.

rpm -qif  /usr/share/gnome-shell/extensions/apps-menu@gnome-shell-extensions.gcampax.github.com/extension.js
Name        : gnome-shell-extension-apps-menu
Version     : 3.18.2
Release     : 1.fc23
Architecture: noarch
Install Date: mar 24 nov 2015 08:22:17 CET
Group       : User Interface/Desktops
Size        : 26991
License     : GPLv2+
Signature   : RSA/SHA256, sab 14 nov 2015 19:39:34 CET, Key ID 32474cf834ec9cba
Source RPM  : gnome-shell-extensions-3.18.2-1.fc23.src.rpm
Build Date  : gio 12 nov 2015 13:34:42 CET
Build Host  : buildhw-12.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://live.gnome.org/GnomeShell/Extensions
Summary     : Application menu for GNOME Shell
Description :
This GNOME Shell extension adds a GNOME 2.x style menu for applications.
Comment 10 Jonathan Underwood 2015-12-07 06:09:34 EST
Problem still exists. Would be nice if the package owner was to comment.
Comment 11 Daniel 2016-01-04 09:33:55 EST
(In reply to Jon Thomas from comment #4)
> Using entry.get_desktop_file_id() instead of appSys.lookup_app(id) to get
> app (same as what frippery uses), works fine. So it does seem to be a
> problem with lookup_app()
> 
> 
>     while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
>             if (nextType == GMenu.TreeItemType.ENTRY) {
>                 let entry = iter.get_entry();
>                 let appInfo = entry.get_app_info();
>                 let id;
>                 try {
>                     id = appInfo.get_id(); // catch non-UTF8 filenames
>                 } catch(e) {
>                     continue;
>                 }
>                 let app = appSys.lookup_app(entry.get_desktop_file_id());
>                 if (appInfo.should_show()) {
>                     let menu_id = dir.get_menu_id();
>                     this.applicationsByCategory[categoryId].push(app);
>                 }
>             } else if (nextType == GMenu.TreeItemType.DIRECTORY) {

Very good work, thank you Jon. This worked for me perfectly! Did you ever post your patch to the maintainers of this package?
Comment 12 Fedora Update System 2016-01-09 04:52:33 EST
gnome-shell-extensions-3.18.3-1.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-8d466dc1df
Comment 13 Fedora Update System 2016-01-09 13:20:49 EST
gnome-shell-extensions-3.18.3-1.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-8d466dc1df
Comment 14 Fedora Update System 2016-01-12 02:56:32 EST
gnome-shell-extensions-3.18.3-1.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.
Comment 15 Ting-Wei Lan 2016-01-13 10:19:34 EST
After upgrading to gnome-shell-extensions-3.18.3-1.fc23, applications menus fail to load:

gnome-shell-wayland.desktop[6887]: Gjs-Message: JS LOG: Extension "apps-menu@gnome-shell-extensions.gcampax.github.com" had error: TypeError: app is null
Comment 16 Ting-Wei Lan 2016-01-15 18:02:53 EST
Removing /usr/share/applnk/google-chrome.desktop fixes my problem.

Note You need to log in before you can comment on or make changes to this bug.