From 8fa1c6d44d0705fb7b84a313e0fe2542baf76e0b Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 6 Sep 2025 17:12:46 +0000 Subject: [PATCH] =?UTF-8?q?gnome-session:=2048.0=20=E2=86=92=2049.rc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X11 support now disabled by default. https://gitlab.gnome.org/GNOME/gnome-session/-/compare/48.0...49.rc Co-authored-by: Bobby Rong Changelog-Reviewed-By: Jan Tojnar --- pkgs/by-name/gn/gnome-session/fix-paths.patch | 35 ------------------ .../nixos_set_environment_done.patch | 14 +++++++ pkgs/by-name/gn/gnome-session/package.nix | 37 ++++++++----------- 3 files changed, 29 insertions(+), 57 deletions(-) delete mode 100644 pkgs/by-name/gn/gnome-session/fix-paths.patch create mode 100644 pkgs/by-name/gn/gnome-session/nixos_set_environment_done.patch diff --git a/pkgs/by-name/gn/gnome-session/fix-paths.patch b/pkgs/by-name/gn/gnome-session/fix-paths.patch deleted file mode 100644 index 22f06ddfd2e8..000000000000 --- a/pkgs/by-name/gn/gnome-session/fix-paths.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in -index b4b1f8fa..99d52cba 100755 ---- a/gnome-session/gnome-session.in -+++ b/gnome-session/gnome-session.in -@@ -4,13 +4,15 @@ if [ "x$XDG_SESSION_TYPE" = "xwayland" ] && - [ "x$XDG_SESSION_CLASS" != "xgreeter" ] && - [ -n "$SHELL" ]; then - if [ "$1" != '-l' ]; then -- exec bash -c "exec -l '$SHELL' -c 'exec $0 -l $*'" -+ # Make sure the shell actually sets up the environment. -+ unset __NIXOS_SET_ENVIRONMENT_DONE -+ exec @bash@ -c "exec -l '$SHELL' -c 'exec $0 -l $*'" - else - shift - fi - fi - --SETTING=$(G_MESSAGES_DEBUG='' gsettings get org.gnome.system.locale region) -+SETTING=$(G_MESSAGES_DEBUG='' @gsettings@ get org.gnome.system.locale region) - REGION=${SETTING#\'} - REGION=${REGION%\'} - -diff --git a/gnome-session/main.c b/gnome-session/main.c -index a460a849..9d07898f 100644 ---- a/gnome-session/main.c -+++ b/gnome-session/main.c -@@ -215,7 +215,7 @@ require_dbus_session (int argc, - } - new_argv[i + 2] = NULL; - -- if (!execvp ("dbus-launch", new_argv)) { -+ if (!execvp ("@dbusLaunch@", new_argv)) { - g_set_error (error, - G_SPAWN_ERROR, - G_SPAWN_ERROR_FAILED, diff --git a/pkgs/by-name/gn/gnome-session/nixos_set_environment_done.patch b/pkgs/by-name/gn/gnome-session/nixos_set_environment_done.patch new file mode 100644 index 000000000000..50101ca681c1 --- /dev/null +++ b/pkgs/by-name/gn/gnome-session/nixos_set_environment_done.patch @@ -0,0 +1,14 @@ +diff --git a/gnome-session/leader-main.c b/gnome-session/leader-main.c +index 511166d6..8bac2912 100644 +--- a/gnome-session/leader-main.c ++++ b/gnome-session/leader-main.c +@@ -92,6 +92,9 @@ maybe_reexec_with_login_shell (GStrv argv) + + g_debug ("Relaunching with login shell %s (%s)", login_shell, shell); + ++ /* Make sure the shell actually sets up the environment */ ++ g_unsetenv ("__NIXOS_SET_ENVIRONMENT_DONE"); ++ + /* First, we construct the command executed by the login shell */ + builder = g_strv_builder_new (); + g_strv_builder_add (builder, "exec"); diff --git a/pkgs/by-name/gn/gnome-session/package.nix b/pkgs/by-name/gn/gnome-session/package.nix index d60b3ca2d110..4823b4cc4b8b 100644 --- a/pkgs/by-name/gn/gnome-session/package.nix +++ b/pkgs/by-name/gn/gnome-session/package.nix @@ -7,9 +7,10 @@ ninja, pkg-config, gnome, + gobject-introspection, adwaita-icon-theme, glib, - gtk3, + gtk4, gsettings-desktop-schemas, gnome-desktop, gnome-settings-daemon, @@ -19,22 +20,21 @@ libICE, xmlto, docbook_xsl, - docbook_xml_dtd_412, + docbook_xml_dtd_45, python3, libxslt, gettext, - makeWrapper, systemd, xorg, libepoxy, - bash, gnome-session-ctl, + wrapGAppsHook4, }: stdenv.mkDerivation (finalAttrs: { pname = "gnome-session"; # Also bump ./ctl.nix when bumping major version. - version = "48.0"; + version = "49.rc"; outputs = [ "out" @@ -43,34 +43,32 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "mirror://gnome/sources/gnome-session/${lib.versions.major finalAttrs.version}/gnome-session-${finalAttrs.version}.tar.xz"; - hash = "sha256-3ZCfvFsizb2y/E3xpH140bWUPMxeYeaiChhGJGNHxBc="; + hash = "sha256-xr7cRcosGWvLsSV5rgazg2o+7U2E4DxSIEN2Qc5f+Ic="; }; patches = [ - (replaceVars ./fix-paths.patch { - gsettings = "${glib.bin}/bin/gsettings"; - dbusLaunch = "${dbus.lib}/bin/dbus-launch"; - bash = "${bash}/bin/bash"; - }) + # https://github.com/NixOS/nixpkgs/pull/48517 + ./nixos_set_environment_done.patch ]; nativeBuildInputs = [ + gobject-introspection.setupHook meson ninja pkg-config gettext - makeWrapper xmlto libxslt docbook_xsl - docbook_xml_dtd_412 + docbook_xml_dtd_45 python3 dbus # for DTD + wrapGAppsHook4 ]; buildInputs = [ glib - gtk3 + gtk4 libICE gnome-desktop json-glib @@ -107,15 +105,11 @@ stdenv.mkDerivation (finalAttrs: { rm -rf $out/libexec/gnome-session-ctl ''; - # `bin/gnome-session` will reset the environment when run in wayland, we - # therefor wrap `libexec/gnome-session-binary` instead which is the actual - # binary needing wrapping preFixup = '' - wrapProgram "$out/libexec/gnome-session-binary" \ - --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ - --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \ - --suffix XDG_DATA_DIRS : "${gnome-shell}/share" \ + gappsWrapperArgs+=( + --suffix XDG_DATA_DIRS : "${gnome-shell}/share" --suffix XDG_CONFIG_DIRS : "${gnome-settings-daemon}/etc/xdg" + ) ''; separateDebugInfo = true; @@ -126,7 +120,6 @@ stdenv.mkDerivation (finalAttrs: { }; providedSessions = [ "gnome" - "gnome-xorg" ]; };