about summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2024-08-28 23:56:05 +0200
committerJan Tojnar <jtojnar@gmail.com>2024-09-01 14:16:31 +0200
commitc2f1fa833e43b34b11f0f47072482a9a41f1b579 (patch)
treeeac738412c8b08579a895755ce80a6b8ea100a54 /pkgs/desktops
parentca9576c81da013b7ab7a302990f7928d33e85198 (diff)
gnome-session: Move from gnome scope to top-level
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/gnome/core/gnome-session/ctl.nix43
-rw-r--r--pkgs/desktops/gnome/core/gnome-session/default.nix142
-rw-r--r--pkgs/desktops/gnome/core/gnome-session/fix-paths.patch35
-rw-r--r--pkgs/desktops/gnome/default.nix3
-rw-r--r--pkgs/desktops/pantheon/default.nix4
5 files changed, 2 insertions, 225 deletions
diff --git a/pkgs/desktops/gnome/core/gnome-session/ctl.nix b/pkgs/desktops/gnome/core/gnome-session/ctl.nix
deleted file mode 100644
index fbdad96f92368..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-session/ctl.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-  lib,
-  stdenv,
-  fetchFromGitHub,
-  meson,
-  ninja,
-  pkg-config,
-  glib,
-  systemd,
-  wrapGAppsHook3,
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-session-ctl";
-  version = "42.0";
-
-  src = fetchFromGitHub {
-    owner = "nix-community";
-    repo = pname;
-    rev = version;
-    hash = "sha256-XGJVmlxqbJ/1frbzn2TI7BJm449xeLk43xMMqFsLYko=";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    glib
-    systemd
-  ];
-
-  meta = with lib; {
-    description = "gnome-session-ctl extracted from gnome-session for nixpkgs";
-    homepage = "https://github.com/nix-community/gnome-session-ctl";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-session/default.nix b/pkgs/desktops/gnome/core/gnome-session/default.nix
deleted file mode 100644
index 841458f940373..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-session/default.nix
+++ /dev/null
@@ -1,142 +0,0 @@
-{
-  fetchurl,
-  lib,
-  stdenv,
-  substituteAll,
-  meson,
-  ninja,
-  pkg-config,
-  gnome,
-  adwaita-icon-theme,
-  glib,
-  gtk3,
-  gsettings-desktop-schemas,
-  gnome-desktop,
-  gnome-settings-daemon,
-  gnome-shell,
-  dbus,
-  json-glib,
-  libICE,
-  xmlto,
-  docbook_xsl,
-  docbook_xml_dtd_412,
-  python3,
-  libxslt,
-  gettext,
-  makeWrapper,
-  systemd,
-  xorg,
-  libepoxy,
-  bash,
-  gnome-session-ctl,
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "gnome-session";
-  # Also bump ./ctl.nix when bumping major version.
-  version = "46.0";
-
-  outputs = [
-    "out"
-    "sessions"
-  ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-session/${lib.versions.major finalAttrs.version}/gnome-session-${finalAttrs.version}.tar.xz";
-    hash = "sha256-xuFiSvYJC8ThoZH+Imir+nqN4HgxynpX8hfmeb97mlQ=";
-  };
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      gsettings = "${glib.bin}/bin/gsettings";
-      dbusLaunch = "${dbus.lib}/bin/dbus-launch";
-      bash = "${bash}/bin/bash";
-    })
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    gettext
-    makeWrapper
-    xmlto
-    libxslt
-    docbook_xsl
-    docbook_xml_dtd_412
-    python3
-    dbus # for DTD
-  ];
-
-  buildInputs = [
-    glib
-    gtk3
-    libICE
-    gnome-desktop
-    json-glib
-    xorg.xtrans
-    adwaita-icon-theme
-    gnome-settings-daemon
-    gsettings-desktop-schemas
-    systemd
-    libepoxy
-  ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py # patchShebangs requires executable file
-    patchShebangs meson_post_install.py
-
-    # Use our provided `gnome-session-ctl`
-    original="@libexecdir@/gnome-session-ctl"
-    replacement="${gnome-session-ctl}/libexec/gnome-session-ctl"
-
-    find data/ -type f -name "*.service.in" -exec sed -i \
-      -e s,$original,$replacement,g \
-      {} +
-  '';
-
-  # We move the GNOME sessions to another output since gnome-session is a dependency of
-  # GDM itself. If we do not hide them, it will show broken GNOME sessions when GDM is
-  # enabled without proper GNOME installation.
-  postInstall = ''
-    mkdir $sessions
-    moveToOutput share/wayland-sessions "$sessions"
-    moveToOutput share/xsessions "$sessions"
-
-    # Our provided one is being used
-    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" \
-      --suffix XDG_CONFIG_DIRS : "${gnome-settings-daemon}/etc/xdg"
-  '';
-
-  separateDebugInfo = true;
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-session";
-      attrPath = "gnome.gnome-session";
-    };
-    providedSessions = [
-      "gnome"
-      "gnome-xorg"
-    ];
-  };
-
-  meta = with lib; {
-    description = "GNOME session manager";
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-session";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-})
diff --git a/pkgs/desktops/gnome/core/gnome-session/fix-paths.patch b/pkgs/desktops/gnome/core/gnome-session/fix-paths.patch
deleted file mode 100644
index 38805c645b95f..0000000000000
--- a/pkgs/desktops/gnome/core/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 '$0 -l $*'"
-+    # Make sure the shell actually sets up the environment.
-+    unset __NIXOS_SET_ENVIRONMENT_DONE
-+    exec @bash@ -c "exec -l '$SHELL' -c '$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/desktops/gnome/default.nix b/pkgs/desktops/gnome/default.nix
index 29e94b1ce79d6..206190913e25d 100644
--- a/pkgs/desktops/gnome/default.nix
+++ b/pkgs/desktops/gnome/default.nix
@@ -19,8 +19,6 @@ in
 
   gnome-control-center = callPackage ./core/gnome-control-center { };
 
-  gnome-session = callPackage ./core/gnome-session { };
-
   gvfs = pkgs.gvfs.override { gnomeSupport = true; };
 
   networkmanager-openvpn = pkgs.networkmanager-openvpn.override {
@@ -121,6 +119,7 @@ in
   gnome-remote-desktop = lib.warn "The ‘gnome.gnome-remote-desktop’ was moved to top-level. Please use ‘pkgs.gnome-remote-desktop’ directly." pkgs.gnome-remote-desktop; # Added on 2024-08-11.
   gnome-robots = lib.warn "The ‘gnome.gnome-robots’ was moved to top-level. Please use ‘pkgs.gnome-robots’ directly." pkgs.gnome-robots; # Added on 2024-08-11.
   gnome-screenshot = lib.warn "The ‘gnome.gnome-screenshot’ was moved to top-level. Please use ‘pkgs.gnome-screenshot’ directly." pkgs.gnome-screenshot; # Added on 2024-06-22.
+  gnome-session = lib.warn "The ‘gnome.gnome-session’ was moved to top-level. Please use ‘pkgs.gnome-session’ directly." pkgs.gnome-session; # Added on 2024-08-28.
   gnome-session-ctl = lib.warn "The ‘gnome.gnome-session-ctl’ was moved to top-level. Please use ‘pkgs.gnome-session-ctl’ directly." pkgs.gnome-session-ctl; # Added on 2024-08-28.
   gnome-settings-daemon = lib.warn "The ‘gnome.gnome-settings-daemon’ was moved to top-level. Please use ‘pkgs.gnome-settings-daemon’ directly." pkgs.gnome-settings-daemon; # Added on 2024-08-28.
   gnome-settings-daemon43 = lib.warn "The ‘gnome.gnome-settings-daemon43’ was moved to top-level. Please use ‘pkgs.gnome-settings-daemon43’ directly." pkgs.gnome-settings-daemon43; # Added on 2024-08-28.
diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix
index ae524b4b48889..cde3255eb46fc 100644
--- a/pkgs/desktops/pantheon/default.nix
+++ b/pkgs/desktops/pantheon/default.nix
@@ -95,9 +95,7 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   elementary-print-shim = callPackage ./desktop/elementary-print-shim { };
 
-  elementary-session-settings = callPackage ./desktop/elementary-session-settings {
-    inherit (gnome) gnome-session;
-  };
+  elementary-session-settings = callPackage ./desktop/elementary-session-settings { };
 
   elementary-shortcut-overlay = callPackage ./desktop/elementary-shortcut-overlay { };