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: 43 → 44 #218143

Merged
merged 231 commits into from
Apr 7, 2023
Merged

GNOME: 43 → 44 #218143

merged 231 commits into from
Apr 7, 2023

Conversation

jtojnar
Copy link
Member

@jtojnar jtojnar commented Feb 25, 2023

Announcement: https://discourse.gnome.org/t/gnome-44-released/14606
Release notes: https://release.gnome.org/44/

How can you help

  • Review unreviewed updates with https://github.com/jtojnar/nonemast

    1. Read the changelog for anything mentioning dependencies or anything else that could affect packaging
    2. Check the diff for changes in meson.build files (look especially for changes including dependency and for find_program functions)
    3. If there are packaging changes required, update the expression and commit changes as a fixup commit.
    4. Click “Mark as reviewed” button to create an empty review commit
    5. If you can, push your commits to this branch, otherwise Open a pull request against this branch.
  • Create build fixes for packages that fail to build (same as steps 3–5 above)

  • Pickup an issue from the TODO list and fix it

  • Try running the GNOME config in a VM (e.g. with the config below, you can do nixos-rebuild build-vm -I nixos-config=gnome-config.nix -I nixpkgs=$PWD && ./result/bin/run-*-vm)

    Example VM config
    { pkgs, config, ... }: {
      environment.systemPackages = with pkgs; [
        gdb
        binutils # readelf
        file
        htop
        less
        ashpd-demo # Testing portals
        # For debug symbols
        glib
        gnome.gnome-session
        gnome.mutter
        gnome.gnome-shell
        packagekit
      ];
      # services.gnome.core-utilities.enable = false;
      # services.gnome.core-developer-tools.enable = true;
      # services.gnome.games.enable = true;
      services.fwupd.enable = true;
    
      environment.enableDebugInfo = true;
      services.xserver = {
        enable = true;
        # layout = "cz";
        # xkbVariant = "qwerty";
    
        displayManager.gdm = {
          enable = true;
          debug = true;
        };
        desktopManager.gnome = {
          enable = true;
          debug = true;
        };
      };
      services.openssh.enable = true;
    
      virtualisation.forwardPorts = [
        # forward local port 2222 -> 22, to ssh into the VM
        { from = "host"; host.port = 2222; guest.port = 22; }
      ];
    
      console.useXkbConfig = true;
      i18n = {
        defaultLocale = "en_GB.UTF-8";
      };
    
      programs.gpaste.enable = true;
    
      users.extraUsers.jtojnar = {
        isNormalUser = true;
        uid = 1000;
        extraGroups = [ "wheel" "networkmanager" ];
        password = "";
        openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYbOlZydfRRCGCT08wdtPcpfSrgxMc6weDx3NcWrnMpVgxnMs3HozzkaS/hbcZUocn7XbCOyaxEd1O8Fuaw4JXpUBcMetpPXkQC+bZHQ3YsZZyzVgCXFPRF88QQj0nR7YVE1AeAifjk3TCODstTxit868V1639/TVIi5y5fC0/VbYG2Lt4AadNH67bRv8YiO3iTsHQoZPKD1nxA7yANHCuw38bGTHRhsxeVD+72ThbsYSZeA9dBrzACpEdnwyXclaoyIOnKdN224tu4+4ytgH/vH/uoUfL8SmzzIDvwZ4Ba2yHhZHs5iwsVjTvLe7jjE6I1u8qY7X8ofnanfNcsmz/ jtojnar@kaiser" ];
      };
    
      imports = [ <nixpkgs/nixos/modules/virtualisation/qemu-vm.nix> ];
      virtualisation.memorySize = 3 * 2048;
      virtualisation.diskSize = 28048;
      virtualisation.qemu.options = [ "-device intel-hda" "-device hda-duplex" ];
    
      environment.etc."modprobe.d/floppy.blacklist.conf".text = ''
        blacklist floppy
      '';
    }
  • Try switching your system to this branch:

    • Pass -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/gnome.tar.gz flag to nixos-rebuild
    • With flakes, nix flake update --override-input nixpkgs github:NixOS/nixpkgs/gnome
  • Comment with issues you found.

Main pain points

  • GLib removed unmaintained slab allocator, which revealed ton of memory management issues.
    • If you are still on a system with GLib < 2.75.3, you can check if a program is affected with
      $ export G_SLICE=always-malloc
      $ some-application # does it crash now?
      or just set this globally in your nixos config
      {
        environment.sessionVariables."G_SLICE" = "always-malloc";
      }

- Adds support for libdmapsharing but we are not adding it because the required version depends on libsoup3 but Rhythmox, which also uses libdmapsharing still wants libsoup2.
- Updates supported lua version.

https://gitlab.gnome.org/GNOME/grilo-plugins/-/compare/grilo-plugins-0.3.15...grilo-plugins-0.3.16

Changelog-Reviewed-By: Jan Tojnar <[email protected]>
Starting terminal with autostart makes it harder to control when it is activated.
This reverts commit 7aaf526.

Unfortunately, we cannot simply just go back since that would fail
as mentioned in the reverted commit.
It appears that this is due to the app not being able to find DISPLAY,
since switching to a different terminal emulator will complain:

    (kgx:1612): Gtk-WARNING **: 01:12:49.988: cannot open display: :0.0

Let’s use D-Bus activation rather than executing the program through su.
That will hopefully take care of all the necessary environment variables.

And since GNOME Terminal does not support D-Bus activation for the app,
let’s switch to GNOME Console. It probably makes sense anyway,
as it is the default terminal emulator.

Also let’s unify the WMClass detection a bit. Though, weirdly,
the WMClass differs on Wayland.
1. Launching an app externally (like we do in tests) does not dismiss the GNOME Shell’s Activities view opened on log-in.
2. Activities view grabs input so that user can type to search.
3. Due to a regression in Mutter 44, a window focus is not acquired when Shell grabs input
   https://gitlab.gnome.org/GNOME/mutter/-/commit/3ac82a58c51a5c8db6b49e89a1232f99c79644cc

As a result, trying to determine the WMClass would throw:

    TypeError: global.display.focus_window is null

Let’s dismiss the Activities view with Escape key as a workaround.
@jtojnar jtojnar marked this pull request as ready for review April 6, 2023 02:24
@jtojnar
Copy link
Member Author

jtojnar commented Apr 6, 2023

I pushed a workaround for the test failure (verified pre-rebase), I want to merge this ASAP so that we can get as much people testing the GLib slice allocator fallout before branch-off as possible.

I would not block on the tracker issue, I do not think we support 32-bit platforms. if it is problematic for aarch64, we can disable the tests there, from the patch, it looks like it should not affect runtime.

Edit(bobby285271): There is some quick discussion in #gnome:nixos.org for this.

@vcunat vcunat merged commit b856c0f into staging-next Apr 7, 2023
@vcunat
Copy link
Member

vcunat commented Apr 7, 2023

tracker tests also have issues on aarch64-linux: https://hydra.nixos.org/build/215237988

Edit(jtojnar): Fixed in 5c10f40

@jtojnar jtojnar deleted the gnome branch April 7, 2023 19:59
@vcunat
Copy link
Member

vcunat commented Apr 9, 2023

gtk4 started to fail on darwin: https://hydra.nixos.org/build/215254265
(though I don't consider that important)

@jtojnar
Copy link
Member Author

jtojnar commented Apr 9, 2023

Looks like it is macOS 10.13+. Thought that should be fixed with https://gitlab.gnome.org/GNOME/gtk/-/commit/7c9bc7a2049f985a206a8da8250e3d958368bb09

cc @NixOS/darwin-maintainers

@bobby285271
Copy link
Member

bobby285271 commented Apr 9, 2023

This probably compiles: bobby285271@1e2ccb0, but I have no way to test it other than building on github-actions.

Edit 1: I filed https://gitlab.gnome.org/GNOME/gtk/-/issues/5738

Edit 2: After checking the attempt in conda-forge/gtk4-feedstock#35, I decided for use of undeclared identifier 'NSPasteboardTypeURL', this will be more simple:

-        [ret addObject:NSPasteboardTypeURL];
+        [ret addObject:PTYPE(URL)];

Though I expect both way should do the same job (#define PTYPE(k) (get_pasteboard_type(TYPE_##k)))

@vcunat
Copy link
Member

vcunat commented Apr 9, 2023

Does compile for me on x86_64-darwin.

@vcunat
Copy link
Member

vcunat commented Apr 10, 2023

Pushed as 96fb05e

@vcunat
Copy link
Member

vcunat commented Apr 11, 2023

newsflash can't cope with the webkitgtk upgrade. Maintainers: @kira-bruneau, @Stunkymonkey

Edit(bobby285271): More info & fix -> https://gitlab.com/news-flash/news_flash_gtk/-/issues/416
Edit 2: 5996268

@vcunat
Copy link
Member

vcunat commented Apr 11, 2023

Same with webkit2-sharp. Maintainer: @kevincox

@kira-bruneau
Copy link
Contributor

kira-bruneau commented Apr 11, 2023

@vcunat & @bobby285271 Thanks for the heads up! It think we can just use the webkit-6 patch until the next version is released.

@bobby285271
Copy link
Member

bobby285271 commented Apr 11, 2023

For webkit2-sharp, I filed hbons/webkit2-sharp#6.

For now replacing parentInstance here to parent seems to work. Though that sounds like a generated file and I am not sure if this is actually a breaking change for 4.0.

Edit: 029a32f

@buckley310
Copy link
Contributor

Is anyone successfully using the new "background apps" feature? It's not showing up for me.

Aside from usual apps like Steam, I tested it with amberol since I've seen screenshots with that app using the feature.

Testing on nixos-unstable fe2ecaf, using X11, all extensions disabled.

@dimitarg
Copy link

@buckley310 Same here. I was operating under the impression that feature is (currently) limited to flatpak-installed apps, and that's why I don't see it.

@pennae
Copy link
Contributor

pennae commented Apr 18, 2023

this seems to have broken ibus emoji entry, bisect points to 8e5ee715d12efa8fe3d1071d83c141a6a03d328a. at this commit ibus can no longer properly enumerate and display emoji, giving only a selection of Favourites and arbitrary unicode choice (which itself only lists U+FFFFFFFF three times). ancestor commit works fine. reverting isn't feasible since more updates have happened since, and other packages require the newer glib version.

@lilyinstarlight
Copy link
Member

@pennae, see #226526

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.