From c469f0118dddec0d168ee8fd03c30818275d96af Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Thu, 8 May 2025 13:07:31 +0200 Subject: [PATCH 1/4] nixos/gnome: Update default fonts GNOME 48 switched to new Inter and Iosevka based Adwaita fonts: https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/-/commit/067cb4b155b67db6f358a666d4bdced7059c6e00 https://blogs.gnome.org/monster/introducing-adwaita-fonts/ The default fonts were last changed to Cantarell and Source Code Pro in GNOME 3.32: https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/-/commit/965062de47f5171727c1e4f7f0aac2ad40e3484a Source Sans was added alongside them in c99a666aac8f613095a9ef582419d67bd17c3f99 but it does not seem to be needed nowadays. The only relevant package mentioning it according is GNOME Recipes: https://codesearch.debian.net/search?q=Source+Sans+-pkg%3Atexlive+-pkg%3Aopenjdk+-pkg%3Abootswatch+-pkg%3Aqt%28%5Cd-%29%3Fwebengine+-pkg%3Afirefox+-pkg%3Ar-cran+-pkg%3Ataskflow+-pkg%3Afonts-adobe-sourcesans+-path%3Asvg%24+-path%3A%2Fdoc%2F+-path%3A%2Fdocs%2F&literal=1 DejaVu fonts are meant as a generic fallback but they are already pulled in by `fonts.enableDefaultPackages` option. --- nixos/doc/manual/release-notes/rl-2505.section.md | 1 + nixos/modules/services/x11/desktop-managers/gnome.nix | 7 ++----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md index ac8f2a0510360..23fb52ecaa5a9 100644 --- a/nixos/doc/manual/release-notes/rl-2505.section.md +++ b/nixos/doc/manual/release-notes/rl-2505.section.md @@ -30,6 +30,7 @@ - `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). - Option [](#opt-services.gnome.core-developer-tools.enable) now also installs `sysprof` and `d-spy`. - Option `services.gnome.core-utilities.enable` has been renamed to [](#opt-services.gnome.core-apps.enable). + - `cantarell-fonts`, `source-code-pro` and `source-sans` fonts are no longer installed by default. They have been replaced by `adwaita-fonts`. Refer to the [GNOME release notes](https://release.gnome.org/48/) for more details. diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix index 6fe467425fc11..1341b9f5ae1a3 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome.nix @@ -378,11 +378,8 @@ in services.orca.enable = notExcluded pkgs.orca; - fonts.packages = with pkgs; [ - cantarell-fonts - dejavu_fonts - source-code-pro # Default monospace font in 3.32 - source-sans + fonts.packages = [ + pkgs.adwaita-fonts ]; # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-48/elements/core/meta-gnome-core-shell.bst From b9e74b654e530a8f5e9a6c4bf399331db6706c65 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Thu, 8 May 2025 13:08:25 +0200 Subject: [PATCH 2/4] nixos/gnome: Allow removal of default fonts with `environment.gnome.excludePackages` People are particular about fonts that they have installed on their systems. --- nixos/modules/services/x11/desktop-managers/gnome.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix index 1341b9f5ae1a3..26950872bba16 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome.nix @@ -378,9 +378,9 @@ in services.orca.enable = notExcluded pkgs.orca; - fonts.packages = [ + fonts.packages = utils.removePackagesByName [ pkgs.adwaita-fonts - ]; + ] config.environment.gnome.excludePackages; # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-48/elements/core/meta-gnome-core-shell.bst environment.systemPackages = From fe27b6690c4c558c7fed32280e59df3c3d9d17e5 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Thu, 8 May 2025 11:55:50 +0000 Subject: [PATCH 3/4] =?UTF-8?q?evolution-ews:=203.54.3.0=20=E2=86=92=203.5?= =?UTF-8?q?6.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://gitlab.gnome.org/GNOME/evolution-ews/-/compare/3.54.3.0...3.56.1 - The Evolution GSettings schemas are now checked: https://gitlab.gnome.org/GNOME/evolution-ews/-/commit/a0c514bd345c67fe0fd2ed6ef48a25649b1f4d8e --- .../ev/evolution-ews/hardcode-gsettings.patch | 113 +++++++++++------- pkgs/by-name/ev/evolution-ews/package.nix | 5 +- 2 files changed, 72 insertions(+), 46 deletions(-) diff --git a/pkgs/by-name/ev/evolution-ews/hardcode-gsettings.patch b/pkgs/by-name/ev/evolution-ews/hardcode-gsettings.patch index 2e1611cc942bf..2032686395fb6 100644 --- a/pkgs/by-name/ev/evolution-ews/hardcode-gsettings.patch +++ b/pkgs/by-name/ev/evolution-ews/hardcode-gsettings.patch @@ -1,8 +1,17 @@ diff --git a/src/EWS/camel/camel-ews-utils.c b/src/EWS/camel/camel-ews-utils.c -index 44a20d6..90d5729 100644 +index 32817df..da65217 100644 --- a/src/EWS/camel/camel-ews-utils.c +++ b/src/EWS/camel/camel-ews-utils.c -@@ -1554,7 +1554,18 @@ ews_utils_save_category_changes (GHashTable *old_categories, /* gchar *guid ~> C +@@ -1550,7 +1550,7 @@ ews_utils_save_category_changes (GHashTable *old_categories, /* gchar *guid ~> C + gboolean changed = FALSE; + + /* cannot save, when evolution is not installed */ +- if (!e_ews_common_utils_gsettings_schema_exists ("org.gnome.evolution.mail")) ++ if (!true) + return FALSE; + + if (!old_categories || !new_categories) +@@ -1558,7 +1558,18 @@ ews_utils_save_category_changes (GHashTable *old_categories, /* gchar *guid ~> C evo_labels = g_ptr_array_new_full (5, g_free); @@ -23,10 +32,19 @@ index 44a20d6..90d5729 100644 for (ii = 0; strv && strv[ii]; ii++) { diff --git a/src/Microsoft365/camel/camel-m365-store.c b/src/Microsoft365/camel/camel-m365-store.c -index 3db3564..a233d4d 100644 +index 7374c36..7da2023 100644 --- a/src/Microsoft365/camel/camel-m365-store.c +++ b/src/Microsoft365/camel/camel-m365-store.c -@@ -309,7 +309,18 @@ m365_store_save_category_changes (GHashTable *old_categories, /* gchar *id ~> Ca +@@ -305,7 +305,7 @@ m365_store_save_category_changes (GHashTable *old_categories, /* gchar *id ~> Ca + gboolean changed = FALSE; + + /* cannot save, when evolution is not installed */ +- if (!e_ews_common_utils_gsettings_schema_exists ("org.gnome.evolution.mail")) ++ if (!true) + return FALSE; + + if (!old_categories || !new_categories) +@@ -313,7 +313,18 @@ m365_store_save_category_changes (GHashTable *old_categories, /* gchar *id ~> Ca evo_labels = g_ptr_array_new_full (5, g_free); @@ -47,51 +65,58 @@ index 3db3564..a233d4d 100644 for (ii = 0; strv && strv[ii]; ii++) { diff --git a/src/Microsoft365/common/e-m365-tz-utils.c b/src/Microsoft365/common/e-m365-tz-utils.c -index 7a1d7f4..3c0d5e1 100644 +index cec5417..2e744a0 100644 --- a/src/Microsoft365/common/e-m365-tz-utils.c +++ b/src/Microsoft365/common/e-m365-tz-utils.c -@@ -192,7 +192,18 @@ e_m365_tz_utils_get_user_timezone (void) - gchar *location; +@@ -192,10 +192,21 @@ e_m365_tz_utils_get_user_timezone (void) + gchar *location = NULL; ICalTimezone *zone = NULL; -- settings = g_settings_new ("org.gnome.evolution.calendar"); -+ { -+ g_autoptr(GSettingsSchemaSource) schema_source; -+ g_autoptr(GSettingsSchema) schema; -+ schema_source = g_settings_schema_source_new_from_directory("@evo@", -+ g_settings_schema_source_get_default(), -+ TRUE, -+ NULL); -+ schema = g_settings_schema_source_lookup(schema_source, -+ "org.gnome.evolution.calendar", -+ FALSE); -+ settings = g_settings_new_full(schema, NULL, NULL); -+ } +- if (e_ews_common_utils_gsettings_schema_exists ("org.gnome.evolution.calendar")) { ++ if (true) { + GSettings *settings; - if (g_settings_get_boolean (settings, "use-system-timezone")) - location = e_cal_util_get_system_timezone_location (); +- settings = g_settings_new ("org.gnome.evolution.calendar"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@evo@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution.calendar", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + + if (g_settings_get_boolean (settings, "use-system-timezone")) + location = e_cal_util_get_system_timezone_location (); diff --git a/src/common/e-ews-common-utils.c b/src/common/e-ews-common-utils.c -index 5017d40..34547e3 100644 +index 3458c10..7d21784 100644 --- a/src/common/e-ews-common-utils.c +++ b/src/common/e-ews-common-utils.c -@@ -218,7 +218,19 @@ e_ews_common_utils_get_configured_icaltimezone (void) - if (schema) { - GSettings *settings; - -- settings = g_settings_new ("org.gnome.evolution.calendar"); -+ { -+ g_autoptr(GSettingsSchemaSource) schema_source; -+ g_autoptr(GSettingsSchema) schema; -+ schema_source = g_settings_schema_source_new_from_directory("@evo@", -+ g_settings_schema_source_get_default(), -+ TRUE, -+ NULL); -+ schema = g_settings_schema_source_lookup(schema_source, -+ "org.gnome.evolution.calendar", -+ FALSE); -+ settings = g_settings_new_full(schema, NULL, -+ NULL); -+ } - - if (g_settings_get_boolean (settings, "use-system-timezone")) - location = e_cal_util_get_system_timezone_location (); +@@ -208,10 +208,21 @@ e_ews_common_utils_get_configured_icaltimezone (void) + ICalTimezone *zone = NULL; + gchar *location = NULL; + +- if (e_ews_common_utils_gsettings_schema_exists ("org.gnome.evolution.calendar")) { ++ if (true) { + GSettings *settings; + +- settings = g_settings_new ("org.gnome.evolution.calendar"); ++ { ++ g_autoptr(GSettingsSchemaSource) schema_source; ++ g_autoptr(GSettingsSchema) schema; ++ schema_source = g_settings_schema_source_new_from_directory("@evo@", ++ g_settings_schema_source_get_default(), ++ TRUE, ++ NULL); ++ schema = g_settings_schema_source_lookup(schema_source, ++ "org.gnome.evolution.calendar", ++ FALSE); ++ settings = g_settings_new_full(schema, NULL, NULL); ++ } + + if (g_settings_get_boolean (settings, "use-system-timezone")) + location = e_cal_util_get_system_timezone_location (); diff --git a/pkgs/by-name/ev/evolution-ews/package.nix b/pkgs/by-name/ev/evolution-ews/package.nix index 4298118ad7c0a..9b4a5d7d3e3cd 100644 --- a/pkgs/by-name/ev/evolution-ews/package.nix +++ b/pkgs/by-name/ev/evolution-ews/package.nix @@ -23,11 +23,11 @@ stdenv.mkDerivation rec { pname = "evolution-ews"; - version = "3.54.3.0"; + version = "3.56.1"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - hash = "sha256-GscHzyWRqERRJXViGkkwx2GyF028XsscihhSYpRqFPY="; + hash = "sha256-DgC2qxV9j+r7T1HXchusP2IfI4f1WrS7PEPRN0KFrWs="; }; patches = [ @@ -71,6 +71,7 @@ stdenv.mkDerivation rec { "org.gnome.evolution.mail" = "evo"; "org.gnome.evolution.calendar" = "evo"; }; + schemaExistsFunction = "e_ews_common_utils_gsettings_schema_exists"; }; updateScript = From c14154ee300978b922e52f5334f595efc19795e1 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Thu, 8 May 2025 16:56:47 +0200 Subject: [PATCH 4/4] mutter: Fix gdctl shebang It requires python with pygobject, and, optionally, argcomplete, for bash completion to work. --- pkgs/by-name/mu/mutter/package.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/by-name/mu/mutter/package.nix b/pkgs/by-name/mu/mutter/package.nix index deeeb75022d4c..03ad81a4612e2 100644 --- a/pkgs/by-name/mu/mutter/package.nix +++ b/pkgs/by-name/mu/mutter/package.nix @@ -173,6 +173,12 @@ stdenv.mkDerivation (finalAttrs: { libXrandr libXinerama libXau + + # for gdctl shebang + (python3.withPackages (pp: [ + pp.pygobject3 + pp.argcomplete + ])) ]; postPatch = ''