Commit 8fa1c6d4 authored by Jan Tojnar's avatar Jan Tojnar
Browse files

gnome-session: 48.0 → 49.rc

X11 support now disabled by default.

https://gitlab.gnome.org/GNOME/gnome-session/-/compare/48.0...49.rc



Co-authored-by: default avatarBobby Rong <rjl931189261@126.com>
Changelog-Reviewed-By: default avatarJan Tojnar <jtojnar@gmail.com>
parent 0c5e26db
Loading
Loading
Loading
Loading
+0 −35
Original line number Diff line number Diff line
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,
+14 −0
Original line number Diff line number Diff line
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");
+15 −22
Original line number Diff line number Diff line
@@ -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"
    ];
  };