Skip to content

GNOME: 43 → 44#218143

Merged
vcunat merged 231 commits intostaging-nextfrom
gnome
Apr 7, 2023
Merged

GNOME: 43 → 44#218143
vcunat merged 231 commits intostaging-nextfrom
gnome

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";
      }

@github-actions github-actions bot added 6.topic: golang Go is a high-level general purpose programming language that is statically typed and compiled. 6.topic: lua Lua is a powerful, efficient, lightweight, embeddable scripting language. 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: python Python is a high-level, general-purpose programming language. 6.topic: qt/kde Object-oriented framework for GUI creation 6.topic: ruby A dynamic, open source programming language with a focus on simplicity and productivity. 6.topic: rust General-purpose programming language emphasizing performance, type safety, and concurrency. 6.topic: stdenv Standard environment 6.topic: systemd Software suite that provides an array of system components for Linux operating systems. 6.topic: vim Advanced text editor 8.has: changelog This PR adds or changes release notes 8.has: documentation This PR adds or changes documentation 8.has: module (update) This PR changes an existing module in `nixos/` labels Feb 25, 2023
@ofborg ofborg bot added 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-linux-stdenv This PR causes stdenv to rebuild on Linux and must target a staging branch. 8.has: clean-up This PR removes packages or removes other cruft 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. labels Feb 25, 2023
@github-actions github-actions bot added the 6.topic: GNOME GNOME desktop environment and its underlying platform label Feb 25, 2023
@jtojnar jtojnar changed the base branch from master to staging-next February 25, 2023 03:14
@github-actions github-actions bot removed 6.topic: stdenv Standard environment 6.topic: lua Lua is a powerful, efficient, lightweight, embeddable scripting language. 6.topic: vim Advanced text editor 6.topic: golang Go is a high-level general purpose programming language that is statically typed and compiled. 6.topic: rust General-purpose programming language emphasizing performance, type safety, and concurrency. 8.has: documentation This PR adds or changes documentation 8.has: changelog This PR adds or changes release notes labels Feb 25, 2023
jtojnar added 2 commits April 6, 2023 04:19
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

@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

Labels

6.topic: GNOME GNOME desktop environment and its underlying platform 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: pantheon The Pantheon desktop environment 6.topic: python Python is a high-level, general-purpose programming language. 8.has: changelog This PR adds or changes release notes 8.has: clean-up This PR removes packages or removes other cruft 8.has: documentation This PR adds or changes documentation 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. 11.by: package-maintainer This PR was created by a maintainer of all the package it changes.

Projects

None yet

Development

Successfully merging this pull request may close these issues.