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

[WIP] GNOME: 3.22 -> 3.24 #26879

Closed
wants to merge 1 commit into from
Closed

Conversation

lheckemann
Copy link
Member

Motivation for this change

Upstream release

I'm PRing it now to show that I'm doing it and avoid any potential duplication of efforts. This definitely isn't ready to be merged (although it does build) and I'm planning to split it out into multiple commits and document some of the odder changes — I made this on a trial-and-error cycle where I probably should have committed on every build so I could construct the history more easily, but I didn't :D help is welcome!

Things done
  • Tested using sandboxing
    (nix.useSandbox on NixOS,
    or option build-use-sandbox in nix.conf
    on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • Linux
  • 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 nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Fits CONTRIBUTING.md.

@0xABAB
Copy link
Contributor

0xABAB commented Jun 28, 2017

I looked at it and it seems pretty boring to me, which is a good thing.

One way to improve the quality of the release would be to write automated tests that actually use the applications, which is just a suggestion, not something that would have to be part of this. Before this gets committed into an actual future release, I'd like to see independent verification of someone testing whatever Gnome apps they use, to see that it won't break everything.

@lheckemann
Copy link
Member Author

Yes, I absolutely agree. In fact, I think most modules should be accompanied by tests, which would avoid issues like #25530 popping up unexpectedly just because nobody's using them.

@eqyiel
Copy link
Contributor

eqyiel commented Jul 3, 2017

Great, thanks!

@grahamc
Copy link
Member

grahamc commented Jul 16, 2017

How is this coming @lheckemann?

@lheckemann
Copy link
Member Author

I still haven't got around to testing it, besides checking that it builds. Help welcome!

@jtojnar
Copy link
Contributor

jtojnar commented Jul 19, 2017

I tried the branch and it does not work. Cursor flashes in the middle of the screen for a fraction of the second and then GDM is immediately killed. From journal, it looks like gnome shell requires librsvg introspection.

Jul 19 13:50:09 kaiser .gnome-shell-wr[1090]: JS ERROR: Error: Requiring Rsvg, version none: Typelib file for namespace 'Rsvg' (any version) not found
                                              @resource:///org/gnome/shell/ui/padOsd.js:8:7
                                              @resource:///org/gnome/shell/ui/windowManager.js:20:7
                                              @resource:///org/gnome/shell/ui/workspace.js:19:7
                                              @resource:///org/gnome/shell/ui/appDisplay.js:26:7
                                              @resource:///org/gnome/shell/ui/dash.js:13:7
                                              @resource:///org/gnome/shell/ui/overviewControls.js:10:7
                                              @resource:///org/gnome/shell/ui/overview.js:20:7
                                              @resource:///org/gnome/shell/ui/legacyTray.js:12:7
                                              @resource:///org/gnome/shell/ui/main.js:23:7
                                              @<main>:1:31
Jul 19 13:50:09 kaiser .gnome-shell-wr[1090]: Execution of main.js threw exception: JS_EvaluateScript() failed
Jul 19 13:50:09 kaiser org.gnome.Shell.desktop[1090]: (EE)
Jul 19 13:50:09 kaiser org.gnome.Shell.desktop[1090]: Fatal server error:
Jul 19 13:50:09 kaiser org.gnome.Shell.desktop[1090]: (EE) failed to read Wayland events: Connection reset by peer
Jul 19 13:50:09 kaiser org.gnome.Shell.desktop[1090]: (EE)
Jul 19 13:50:09 kaiser gnome-session[1085]: gnome-session-binary[1085]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Jul 19 13:50:09 kaiser gnome-session-binary[1085]: Unrecoverable failure in required component org.gnome.Shell.desktop
Jul 19 13:50:09 kaiser gnome-session-binary[1085]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1

@domenkozar
Copy link
Member

cc @lethalman

@eqyiel
Copy link
Contributor

eqyiel commented Jul 23, 2017

What's the best way to test this?

I've tried the following:

$ git remote add lheckemann git@github.com:lheckemann/nixpkgs.git
$ git fetch lheckermann && git checkout lheckemann/gnome-3.24
$ sudo nixos-rebuild build -I nixpkgs=.

which fails due to unrelated problems with rustc, and

$ nix-build -A pkgs.gnome3_24 -I nixpkgs=.

with

$ cat ~/.nixpkgs/config.nix
{
  allowBroken = true;
  permittedInsecurePackages = [
    "webkitgtk-2.4.11"
  ];
}

which fails with:

checking for a BSD-compatible install... /nix/store/c6hdfpvm1mamgks4x4h7z0fnihi9rn0i-coreutils-8.27/bin/install -c
checking whether build environment is sane... /nix/store/yhf350xdzv68rz52fpx0kc19y5f552s5-binutils-2.28/bin/ld: cannot find -lcrack
collect2: error: ld returned 1 exit status
make[5]: *** [Makefile:665: frob-account-dialog] Error 1
make[5]: Leaving directory '/tmp/nix-build-gnome-control-center-3.24.2.drv-0/gnome-control-center-3.24.2/panels/user-accounts'
make[4]: *** [Makefile:854: all-recursive] Error 1
make[4]: Leaving directory '/tmp/nix-build-gnome-control-center-3.24.2.drv-0/gnome-control-center-3.24.2/panels/user-accounts'
make[3]: *** [Makefile:606: all] Error 2
make[3]: Leaving directory '/tmp/nix-build-gnome-control-center-3.24.2.drv-0/gnome-control-center-3.24.2/panels/user-accounts'
make[2]: *** [Makefile:473: all-recursive] Error 1
make[2]: Leaving directory '/tmp/nix-build-gnome-control-center-3.24.2.drv-0/gnome-control-center-3.24.2/panels'
make[1]: *** [Makefile:537: all-recursive] Error 1
make[1]: Leaving directory '/tmp/nix-build-gnome-control-center-3.24.2.drv-0/gnome-control-center-3.24.2'
make: *** [Makefile:469: all] Error 2
builder for ‘/nix/store/h58ifcl82qxj5qr2m8d3il6c6gpdgr69-gnome-control-center-3.24.2.drv’ failed with exit code 2
error: build of ‘/nix/store/h58ifcl82qxj5qr2m8d3il6c6gpdgr69-gnome-control-center-3.24.2.drv’ failed

@lheckemann
Copy link
Member Author

Sorry, I've been pretty busy — I don't know why it's not building, I think it worked for me. In any case, I won't have time to look at it again in the next 2 weeks or so so unless someone wants to take this over it'll be on hold for a while.

@teh
Copy link
Contributor

teh commented Aug 8, 2017

I rebased against master and can confirm that this branch still builds.

@teh
Copy link
Contributor

teh commented Aug 8, 2017

For this branch GDM no longer starts with the following messages in sudo journalctl -f -u display-manager.service -n 2000:

Aug 08 22:15:53 nixos systemd[1]: Starting X11 Server...
Aug 08 22:15:53 nixos systemd[1]: Started X11 Server.
Aug 08 22:15:53 nixos gdm[6708]: GdmDisplay: display lasted 0.505423 seconds
Aug 08 22:15:53 nixos gdm[6708]: Child process -6717 was already dead.
Aug 08 22:15:53 nixos gdm[6708]: Child process 6713 was already dead.
Aug 08 22:15:53 nixos gdm[6708]: Unable to kill session worker process
Aug 08 22:15:54 nixos gdm[6708]: Child process -6734 was already dead.
Aug 08 22:15:54 nixos gdm[6708]: Child process 6730 was already dead.
Aug 08 22:15:54 nixos gdm[6708]: Unable to kill session worker process
Aug 08 22:15:54 nixos gdm[6708]: GdmDisplay: display lasted 0.629898 seconds

Edit: Same issue as @jtojnar found.

@lheckemann
Copy link
Member Author

Hi all, sorry I've kind of dropped the ball on this one.

I don't think I'll manage to get it properly sorted out, nor would I be any good at maintaining it (which I feel I should do if I'm going to do this upgrade), as I'm not a GNOME user myself and as such won't actually be using the majority of the software this affects.

If someone does want to take over please feel free to take inspiration from this PR and ask me any questions you might have about the changes I made here.

@lheckemann lheckemann closed this Aug 8, 2017
@teh
Copy link
Contributor

teh commented Aug 8, 2017

Thanks @lheckemann! Biggest question I have is that I see a number of packages that just moved without an update (like GDM). Assuming this was intentional how did you choose the packages you didn't update?

@lheckemann
Copy link
Member Author

I ran the maintainers/scripts/gnome.sh script with update-all and let it do its magic without questioning it much. Perhaps it missed gdm and it needs to be updated and that will fix the crash you're experiencing.

@jtojnar
Copy link
Contributor

jtojnar commented Aug 8, 2017

I rebased the PR and added some more fixes and updates: https://github.com/jtojnar/nixpkgs/tree/gnome3.24

The rsvg issue is not solved yet.

Currently rebuilding stupid webkit.

@teh teh mentioned this pull request Aug 8, 2017
@teh
Copy link
Contributor

teh commented Aug 8, 2017

@jtojnar nice! I fixed the rsvg issue and some others but now running into segfaults :/

See #28053

edit: Feel free to cherry-pick my changes into your branch. I won't have time till weekend to work on this.

@teh
Copy link
Contributor

teh commented Aug 8, 2017

Another thing that's bit annoying is that the switch moves my system into a state where GDM doesn't restart, but I can't get to a tty either, leaving reboot as the only option. I'm trying to figure out how other distributions deal with this but no luck so far.

@jtojnar
Copy link
Contributor

jtojnar commented Aug 8, 2017

Yes, I have also come across that one, extremely annoying.

Also, feel free to cherry pick my changes.

@teh
Copy link
Contributor

teh commented Aug 8, 2017

Fixed the segfault which was self-inflicted. Writing this from

$ gnome-shell --version
GNOME Shell 3.24.2

but with a number of issues. E.g. all extensions broke, and a number of configuration options aren't being picked up (static work spaces e.g.)

@teh
Copy link
Contributor

teh commented Aug 8, 2017

I suspect the culprit is this but not sure what causes it:

Aug 09 00:30:12 nixos gsettings[1555]: Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications.

@jtojnar
Copy link
Contributor

jtojnar commented Aug 8, 2017

That is probably #26113, it is not in nixpkgs-unstable yet. My patch also relies on #27320 which too did not reach unstable yet. That is why I am stuck rebuilding.

@7c6f434c
Copy link
Member

7c6f434c commented Aug 9, 2017

re: stuck-at-X: did you try Alt-SysRq-R Alt-F2 (SysRq is also known as PrtSc/PrintScreen). Although systemd may disable Alt-SysRq kernel handling by default. Magic SysRq is a kernel mechanism to call some low-level commands, like reset keyboard to a mode where TTY switch works, force a storage sync, etc. If it is disabled, it can still be enabled via sysctl most of the time (NixPkgs kernel definitely comes with support for Magic SysRq, I use it — but I am not running precisely NixOS, so may be it is off-by-default after some update).

(I do not use or plan to use Gnome — just noticed a mention of a generic problem)

@lheckemann
Copy link
Member Author

Also re the issue of switching to a tty — were you by any chance trying to switch to tty1? Because IIRC gdm actually runs on tty1.

jtojnar added a commit to jtojnar/nixpkgs that referenced this pull request Sep 24, 2017
In NixOS#26879, GNOME Online Accounts support was removed resulting in
repeated authentication prompts for users relying on services like
Google Calendar.

This commit removes the build flag that disabled the support.
grahamc pushed a commit that referenced this pull request Sep 30, 2017
In #26879, GNOME Online Accounts support was removed resulting in
repeated authentication prompts for users relying on services like
Google Calendar.

This commit removes the build flag that disabled the support.

(cherry picked from commit 29dd3ac)
@lheckemann lheckemann deleted the gnome-3.24 branch January 18, 2019 18:29
@jtojnar jtojnar mentioned this pull request Oct 2, 2019
20 tasks
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

9 participants