Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gnome shell 3.36.1 #84792

Merged
merged 4 commits into from Apr 12, 2020
Merged

Gnome shell 3.36.1 #84792

merged 4 commits into from Apr 12, 2020

Conversation

hedning
Copy link
Contributor

@hedning hedning commented Apr 9, 2020

Motivation for this change

Bump gnome-shell. This unfortunately breaks the extension app, as they've introduced a new internal library (libshew) which gets an incorrect path in its typelib ala. eog.

Not sure if we've found a good way to deal with these failures (I seem to recall we've fixed something like this before, but can't quite remember).

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@ofborg ofborg bot added the 6.topic: GNOME GNOME desktop environment and its underlying platform label Apr 9, 2020
@ofborg ofborg bot requested review from worldofpeace and jtojnar April 9, 2020 09:31
url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/766288eec1bd3bd50dfc4ddf410c2b507187e603.patch";
sha256 = "Cp6xLohCM0gmMxtyYjSukS2oV60Khmxf4iQd9EDAlIc=";
})
./fix-bash-completion.patch
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have link to an upstream MR?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jtojnar
Copy link
Contributor

jtojnar commented Apr 9, 2020

Our gobject-introspection patches require that the install_dir for the library in meson is absolute. So replace it with get_option('prefix') / pkglibdir.

@worldofpeace
Copy link
Contributor

Upstream patch for the define variable thing https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1195

@worldofpeace
Copy link
Contributor

We have a request to add another patch #84805.
This one in mutter https://gitlab.gnome.org/GNOME/mutter/-/commit/23d0bdd46d849379ed4c0146fbc1784f5f32f2f8.

@jtojnar
Copy link
Contributor

jtojnar commented Apr 9, 2020

That commit does not look like anything but cleanup.

@worldofpeace
Copy link
Contributor

Oops, I think I grabbed the wrong commit. See https://gitlab.gnome.org/GNOME/mutter/-/issues/1128

@jtojnar
Copy link
Contributor

jtojnar commented Apr 9, 2020

@hedning
Copy link
Contributor Author

hedning commented Apr 10, 2020

Ok, two remaining issues. Looks like the extension app is now activated through dbus or something, so the wrapper is no longer effective. Adding gtk to the search path fixed the issue.

Also forgot about this, but the size of the nixos-graphics in gdm is now wrong for some reason:
image

@jtojnar
Copy link
Contributor

jtojnar commented Apr 10, 2020

I am running this now and did not notice anything other than:

Screenshot from 2020-04-10 09-58-00

Reverting gnome-hell update fixes it.

@hedning
Copy link
Contributor Author

hedning commented Apr 10, 2020

Yeah, looks like this is the problem with the vendor logo: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2591, they use the «natural» scale of the image, which in our case is rather large.

@hedning
Copy link
Contributor Author

hedning commented Apr 10, 2020

Hmm, right, I'm not actually able launch the extension app, getting this error:

april 10 11:37:07 x230 gjs[6098]: JS ERROR: Error: Requiring Gtk, version 3.0: Typelib file for namespace 'Gtk', version '3.0' not found
                                  @resource:///org/gnome/Shell/Extensions/js/main.js:6:17
                                  start@resource:///org/gnome/gjs/modules/script/package.js:206:5
                                  @/nix/store/v4cqz1r08gfvhfyrxq957di3f7iiqfwp-gnome-shell-3.36.1/share/gnome-shell/org.gnome.Shell.Extensions:1:17

I tested things in a nested wayland shell, and that happened to fix the issue (probably seeded the environment with the correct typelib paths).

@jtojnar you're able to launch the extension app?

@jtojnar
Copy link
Contributor

jtojnar commented Apr 10, 2020

I was seeing

(gnome-shell-extension-prefs:27699): Gjs-WARNING **: 10:15:31.722: JS ERROR: Gio.DBusError: Error calling StartServiceByName for org.gnome.Shell.Extensions: Process org.gnome.Shell.Extensions exited with status 1
_injectToMethod/klass[method]@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:290:25
_makeProxyWrapper/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:267:17
vfunc_startup@resource:///org/gnome/Extensions/js/main.js:69:28
main@resource:///org/gnome/Extensions/js/main.js:499:23
run@resource:///org/gnome/gjs/modules/script/package.js:222:19
start@resource:///org/gnome/gjs/modules/script/package.js:206:5
@/nix/store/s5yirnjfa4mncn9ds4a4iplraj7nyxvl-gnome-shell-3.36.1/share/gnome-shell/org.gnome.Extensions:1:17

Gjs-Message: 10:15:31.722: JS WARNING: [resource:///org/gnome/Extensions/js/main.js 51]: reference to undefined property "_shellProxy"

(gnome-shell-extension-prefs:27699): Gjs-WARNING **: 10:15:31.722: JS ERROR: TypeError: this._shellProxy is undefined
vfunc_activate@resource:///org/gnome/Extensions/js/main.js:51:9
main@resource:///org/gnome/Extensions/js/main.js:499:23
run@resource:///org/gnome/gjs/modules/script/package.js:222:19
start@resource:///org/gnome/gjs/modules/script/package.js:206:5
@/nix/store/s5yirnjfa4mncn9ds4a4iplraj7nyxvl-gnome-shell-3.36.1/share/gnome-shell/org.gnome.Extensions:1:17

how did you deduce the missing typelib from that?

Weirdly $out/share/dbus-1/services/org.gnome.Extensions.service goes through bin/ which is wrapped. Edit: Oh, there is also $out/share/dbus-1/services/org.gnome.Shell.Extensions.service (?!), we probably need to give it gnome-characters treatment.

GTK would not be enough since it depends on pango and other typelibs.

@hedning
Copy link
Contributor Author

hedning commented Apr 10, 2020

The tyeblib error pops up in the journal. It's indeed a bit weird that the wrapper doesn't work, since the service is launched through it as you note. But I guess there's a layer of indirection there somewhere, which causes the problem and results in the error being in the journal and not stderr.

@jtojnar
Copy link
Contributor

jtojnar commented Apr 10, 2020

Okay, so org.gnome.Shell.Extensions is a portal-like service in $out/share/gnome-shell/org.gnome.Shell.Extensions (https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/master/js/dbusServices/extensions/main.js) and org.gnome.Extensions is the app. The error was coming from the service but you were inserting the typelibs to the app, which failed because it depends on the service.

@jtojnar jtojnar self-assigned this Apr 10, 2020
@jtojnar
Copy link
Contributor

jtojnar commented Apr 10, 2020

I wondered how does the org.gnome.Shell.Notifications work when it depends on GLib typelibs and it looks like gjs supports it even when it is not in GI_TYPELIB_PATH:

$ nix run --ignore-environment -f . gjs -c gjs -c 'print(imports.gi.GLib)'
[object GIRepositoryNamespace]

@jtojnar jtojnar marked this pull request as ready for review April 11, 2020 10:33
@jtojnar
Copy link
Contributor

jtojnar commented Apr 11, 2020

Reverted the greeter logo patch and fixed the wrapping of the notification services but it is pretty ugly.

@jtojnar jtojnar removed their assignment Apr 11, 2020
hedning and others added 4 commits April 12, 2020 13:37
- Adds bash-completion depedency.
- New internal library (`libshew`) require absolute install path.
- Some services (like the extension app) isn't wrapped correctly without
  patching.

Co-authored-by: Jan Tojnar <jtojnar@gmail.com>
@hedning
Copy link
Contributor Author

hedning commented Apr 12, 2020

Looks good to me now, thanks for taking this on :)

@hedning hedning merged commit 4cfe8fb into NixOS:master Apr 12, 2020
@hedning hedning deleted the gnome-shell-3.36.1 branch April 12, 2020 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants