GNOME Bugzilla – Bug 785556
GDM doesn't load with gjs 1.49.4
Last modified: 2017-08-10 18:19:09 UTC
gnome-shell 3.25.4 is working fine for me on Ubuntu 17.10 Alpha with the GNOME3 Staging PPA with gjs 1.48 and mozjs38. I then tried building against gjs 1.49.4 built against mozjs52. When I rebooted, gdm loads mostly but the user list doesn't show up. Relevant package versions are generally the latest available 3.25 versions: https://launchpad.net/~gnome3-team/+archive/ubuntu/gnome3-staging/+packages?field.series_filter=artful https://launchpad.net/~jbicha/+archive/ubuntu/temp20170721/+packages I get these errors in my journal: Jul 29 07:52:34 gnome-shell[1298]: JS ERROR: Exception in callback for signal: startup-prepared: Error: No property 'schema_id' in property list (or its value was undefined) LoginDialog<._init@resource:///org/gnome/shell/gdm/loginDialog.js:425:26 wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22 _Base.prototype._construct@resource:///org/gnome/gjs/modules/lang.js:110:5 Class.prototype._construct/newClassConstructor@resource:///org/gnome/gjs/modules/lang.js:213:20 ScreenShield<._ensureUnlockDialog@resource:///org/gnome/shell/ui/screenShield.js:976:28 wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22 ScreenShield<.showDialog@resource:///org/gnome/shell/ui/screenShield.js:917:13 wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22 _initializeUI/<@resource:///org/gnome/shell/ui/main.js:223:13 _emit@resource:///org/gnome/gjs/modules/signals.js:126:27 LayoutManager<._prepareStartupAnimation@resource:///org/gnome/shell/ui/layout.js:621:9 wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22 LayoutManager<._loadBackground/signalId<@resource:///org/gnome/shell/ui/layout.js:566:13 _emit@resource:///org/gnome/gjs/modules/signals.js:126:27 SystemBackground<._init/id<@resource:///org/gnome/shell/ui/background.js:519:40 Jul 29 07:52:34 gnome-shell[1298]: Error looking up permission: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.impl.portal.PermissionStore was not pro Jul 29 07:52:34 dbus-daemon[1286]: Activating service name='ca.desrt.dconf' Jul 29 07:52:34 dbus-daemon[1286]: Successfully activated service 'ca.desrt.dconf' Jul 29 07:52:34 org.gnome.Shell.desktop[1298]: Window manager warning: Overwriting existing binding of keysym ffb5 with keysym ffb5 (keycode 54). Jul 29 07:52:35 gnome-session-binary[1288]: Entering running state Jul 29 07:52:35 dbus[903]: [system] Activating via systemd: service name='org.freedesktop.ColorManager' unit='colord.service' Jul 29 07:52:35 systemd[1]: Starting Manage, Install and Generate Color Profiles... Jul 29 07:52:35 org.gnome.Shell.desktop[1298]: Window manager warning: "XF86RFKill" is not a valid accelerator Jul 29 07:52:35 xbrlapi.desktop[1559]: openConnection: connect: No such file or directory Jul 29 07:52:35 xbrlapi.desktop[1559]: cannot connect to braille devices daemon brltty at :0 Jul 29 07:52:35 dbus[903]: [system] Successfully activated service 'org.freedesktop.ColorManager' Jul 29 07:52:35 systemd[1]: Started Manage, Install and Generate Color Profiles. Jul 29 07:52:35 gnome-shell[1298]: JS WARNING: [resource:///org/gnome/shell/gdm/loginDialog.js 588]: reference to undefined property "_bannerView" Jul 29 07:52:35 gnome-shell[1298]: JS ERROR: TypeError: this._bannerView is undefined LoginDialog<._onAllocate@resource:///org/gnome/shell/gdm/loginDialog.js:588:1 wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22 LayoutManager<._init/<@resource:///org/gnome/shell/ui/layout.js:204:33 Jul 29 07:52:35 gnome-shell[1298]: JS WARNING: [resource:///org/gnome/shell/ui/windowManager.js 1464]: reference to undefined property "MetaWindowX11" Jul 29 07:52:35 org.gnome.Shell.desktop[1298]: Window manager warning: Overwriting existing binding of keysym ffb5 with keysym ffb5 (keycode 54). Jul 29 07:52:35 gnome-shell[1298]: JS WARNING: [resource:///org/gnome/gjs/modules/tweener/tweener.js 540]: reference to Jul 29 07:52:43 gnome-shell[1298]: JS ERROR: TypeError: this._bannerView is undefined LoginDialog<._onAllocate@resource:///org/gnome/shell/gdm/loginDialog.js:588:1 wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22 LayoutManager<._init/<@resource:///org/gnome/shell/ui/layout.js:204:33 Jul 29 07:52:49 gnome-shell[1298]: JS ERROR: TypeError: this._bannerView is undefined LoginDialog<._onAllocate@resource:///org/gnome/shell/gdm/loginDialog.js:588:1 wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22 LayoutManager<._init/<@resource:///org/gnome/shell/ui/layout.js:204:33
https://git.gnome.org/browse/gnome-shell/tree/js/gdm/util.js#n27 and probably some of the following lines too, needs to change `const` to `var`. However, you should have gotten a compatibility warning about that and it should have still worked properly... is GdmUtil a real module object at the point when that callback is called? (What happens if you printerr(GdmUtil) just before the offending line?)
I tried adding the printerr(GdmUtil) line. I don't know if I did it right but this is what I got: gnome-shell[1291]: JS ERROR: Exception in callback for signal: startup-prepared: ReferenceError: GdmUtil is not defined _initializeUI/<@resource:///org/gnome/shell/ui/main.js:223:13 _emit@resource:///org/gnome/gjs/modules/signals.js:126:27 LayoutManager<._prepareStartupAnimation@resource:///org/gnome/shell/ui/layout.js:621:9 wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22 LayoutManager<._loadBackground/signalId<@resource:///org/gnome/shell/ui/layout.js:566:13 _emit@resource:///org/gnome/gjs/modules/signals.js:126:27 SystemBackground<._init/id<@resource:///org/gnome/shell/ui/background.js:519:40 and later --------- gnome-shell[1291]: JS ERROR: ReferenceError: GdmUtil is not defined WindowManager<._mapWindow@resource:///org/gnome/shell/ui/windowManager.js:1464:9 wrapper@resource:///org/gnome/gjs/modules/lang.js:178:22 gnome-shell[1291]: JS WARNING: [resource:///org/gnome/shell/ui/layout.js 29]: reference to undefined property "MetaWindowX11" org.gnome.Shell.desktop[1291]: Window manager warning: Overwriting existing binding of keysym ffb5 with keysym ffb5 (keycode 54). gnome-shell[1291]: JS WARNING: [resource:///org/gnome/gjs/modules/tweener/tweener.js 540]: reference to undefined property "isSpecialProperty" Other Info ---------- Changing 'const' to 'var' in those several lines works.
Based on IRC scrollback it looks like you need this patch in your mozjs: https://github.com/ptomato/mozjs/commit/1b82d28588ad5fe74116c6e6099c8f2f2eb392ff That enables GJS to have the backwards compatibility preserving behaviour. However, those lines should still be patched in gnome-shell, so I'll reassign this.
Potentially related: bug 785556, bug 785568, bug 785569, bug 785571
yes that mozjs patch fixed gdm user list and allows the other apps to run also as per related bugs above. Not withstanding required code changes.
The following fix has been pushed: e39f4ec gdmUtils: Define constants with 'var'
Created attachment 357352 [details] [review] gdmUtils: Define constants with 'var' Most of those are accessed outside the module itself, but commit 033277b6 missed them ...