···24242525- OpenSSH has been updated from 9.9p2 to 10.0p2, dropping support for DSA keys and adding a new `ssh-auth` binary to handle user authentication in a different address space from unauthenticated sessions. Additionally, we now enable a configure option by default that attempts to lock sshd into RAM to prevent it from being swapped out, which may improve performance if the system is under memory pressure. See the [full changelog](https://www.openwall.com/lists/oss-security/2025/04/09/1) for more details.
26262727+- GNOME has been updated to version 48.
2828+2929+ - `decibels` music player is now installed by default. You can disable it using [](#opt-environment.gnome.excludePackages).
3030+ - `gnome-shell-extensions` extension collection (which included GNOME Classic extensions, Apps Menu, and User Themes, among others) are no longer installed by default. You can install them again with [](#opt-services.xserver.desktopManager.gnome.sessionPath).
3131+ - Option [](#opt-services.gnome.core-developer-tools.enable) now also installs `sysprof` and `d-spy`.
3232+ - Option `services.gnome.core-utilities.enable` has been renamed to [](#opt-services.gnome.core-apps.enable).
3333+3434+ Refer to the [GNOME release notes](https://release.gnome.org/48/) for more details.
3535+2736- The `intel` video driver for X.org (from the xf86-video-intel package) which was previously removed because it was non-functional has been fixed and the driver has been re-introduced.
28372938- The Mattermost module ({option}`services.mattermost`) and packages (`mattermost` and `mmctl`) have been substantially updated:
···1919While it is not strictly necessary to use GDM as the display manager with GNOME, it is recommended, as some features such as screen lock [might not work](#sec-gnome-faq-can-i-use-lightdm-with-gnome) without it.
2020:::
21212222-The default applications used in NixOS are very minimal, inspired by the defaults used in [gnome-build-meta](https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/40.0/elements/core/meta-gnome-core-utilities.bst).
2222+The default applications used in NixOS are very minimal, inspired by the defaults used in [gnome-build-meta](https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/48.0/elements/core/meta-gnome-core-apps.bst).
23232424### GNOME without the apps {#sec-gnome-without-the-apps}
2525···27272828```nix
2929{
3030- services.gnome.core-utilities.enable = false;
3030+ services.gnome.core-apps.enable = false;
3131}
3232```
3333
···211211 pkgs.gnome-session
212212 pkgs.gnome-shell
213213 ];
214214- environment.systemPackages = [ pkgs.adwaita-icon-theme ];
214214+ environment.systemPackages = [
215215+ pkgs.adwaita-icon-theme
216216+ pkgs.gdm # For polkit rules
217217+ ];
215218216219 # We dont use the upstream gdm service
217220 # it has to be disabled since the gdm package has it
···11+From 7b2d3699ad117199bc316c7007cc5984c3b09368 Mon Sep 17 00:00:00 2001
22+From: Maximiliano Sandoval <msandova@gnome.org>
33+Date: Thu, 20 Mar 2025 22:52:54 +0100
44+Subject: [PATCH] scanner: Prefer some getters over others
55+66+At the moment the current set of heuristics to determine a getter for a
77+property is good for finding *a* getter. However, if there are multiple
88+candidates we might declare the wrong method as a getter.
99+1010+We introduce a priority system to determine which getter candidate is
1111+the most appropriate as the getter. The weight were chosen with gaps in
1212+between so that new and better heuristics have space to thrive.
1313+1414+For a property named `p`, these are the possible getter candidates:
1515+1616+ - A method declared via the `(getter p)` annotation
1717+ - The method `get_p`
1818+ - The method `is_p`
1919+ - The method `p`
2020+2121+we declare the getter to be the first candidate in the list for which a
2222+method of the same name is available.
2323+2424+See https://gitlab.gnome.org/GNOME/gjs/-/issues/681.
2525+---
2626+ giscanner/maintransformer.py | 22 +++++++++++++++-------
2727+ 1 file changed, 15 insertions(+), 7 deletions(-)
2828+2929+diff --git a/giscanner/maintransformer.py b/giscanner/maintransformer.py
3030+index a81b1777..9aaf2578 100644
3131+--- a/giscanner/maintransformer.py
3232++++ b/giscanner/maintransformer.py
3333+@@ -1612,7 +1612,10 @@ method or constructor of some type."""
3434+ if not prop.introspectable:
3535+ continue
3636+ setter = None
3737+- getter = []
3838++ # They keys are method names of candidates for getters. The values
3939++ # are priority weights that measure how tasteful was the heuristic
4040++ # used to propose their candidate.
4141++ getter = {}
4242+ if prop.setter is None:
4343+ if prop.writable and not prop.construct_only:
4444+ setter = 'set_' + normalized_name
4545+@@ -1620,17 +1623,17 @@ method or constructor of some type."""
4646+ setter = prop.setter
4747+ if prop.getter is None:
4848+ if prop.readable:
4949+- getter = ['get_' + normalized_name]
5050++ getter[f"get_{normalized_name}"] = 50
5151+ # Heuristic: boolean properties can have getters that are
5252+ # prefixed by is_property_name, like: gtk_window_is_maximized()
5353+ if prop.type.is_equiv(ast.TYPE_BOOLEAN) and not normalized_name.startswith("is_"):
5454+- getter.append(f"is_{normalized_name}")
5555++ getter[f"is_{normalized_name}"] = 25
5656+ # Heuristic: read-only properties can have getters that are
5757+ # just the property name, like: gtk_widget_has_focus()
5858+ if not prop.writable and prop.type.is_equiv(ast.TYPE_BOOLEAN):
5959+- getter.append(normalized_name)
6060++ getter[normalized_name] = 10
6161+ else:
6262+- getter = [prop.getter]
6363++ getter[prop.getter] = 99
6464+ for method in node.methods:
6565+ if not method.introspectable:
6666+ continue
6767+@@ -1645,7 +1648,7 @@ method or constructor of some type."""
6868+ method.set_property = prop.name
6969+ prop.setter = method.name
7070+ continue
7171+- if getter is not [] and method.name in getter:
7272++ if getter is not {} and method.name in getter:
7373+ if method.get_property is None:
7474+ method.get_property = prop.name
7575+ elif method.get_property != prop.name:
7676+@@ -1654,7 +1657,12 @@ method or constructor of some type."""
7777+ "mismatched '(get-property %s)' annotation" %
7878+ (method.symbol, prop.name, method.get_property))
7979+ method.get_property = prop.name
8080+- prop.getter = method.name
8181++ # Check the priority of the last matching getter
8282++ current_priority = -1
8383++ if current_getter := prop.getter:
8484++ current_priority = getter.get(current_getter, -1)
8585++ if getter[method.name] >= current_priority:
8686++ prop.getter = method.name
8787+ continue
8888+8989+ def _pass_member_numeric_name(self, node):
9090+--
9191+2.48.1
9292+