diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session')
3 files changed, 65 insertions, 11 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/ctl.nix b/infra/libkookie/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/ctl.nix new file mode 100644 index 000000000000..6bc18d5379f4 --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/ctl.nix @@ -0,0 +1,41 @@ +{ stdenv +, fetchFromGitHub +, meson +, ninja +, pkg-config +, glib +, systemd +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "gnome-session-ctl"; + version = "3.38.0"; + + src = fetchFromGitHub { + owner = "nix-community"; + repo = pname; + rev = "c20907fea27fa96568b8375a6756c40d0bfb9e40"; # main + hash = "sha256-y9/yOH6N8wf93+gPqnqzRzV/lPXYD0M6v7dsLFF8lWo="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + glib + systemd + ]; + + meta = with stdenv.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/infra/libkookie/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/infra/libkookie/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix index b25688ea5a9d..4684f3ebee0b 100644 --- a/infra/libkookie/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix +++ b/infra/libkookie/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix @@ -1,16 +1,16 @@ { fetchurl, stdenv, substituteAll, meson, ninja, pkgconfig, gnome3, glib, gtk3, gsettings-desktop-schemas , gnome-desktop, dbus, json-glib, libICE, xmlto, docbook_xsl, docbook_xml_dtd_412, python3 -, libxslt, gettext, makeWrapper, systemd, xorg, epoxy, gnugrep, bash }: +, libxslt, gettext, makeWrapper, systemd, xorg, epoxy, gnugrep, bash, gnome-session-ctl }: stdenv.mkDerivation rec { pname = "gnome-session"; - version = "3.36.0"; + version = "3.38.0"; outputs = ["out" "sessions"]; src = fetchurl { url = "mirror://gnome/sources/gnome-session/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0ymvf1bap35348rpjqp63qwnwnnawdwi4snch95zc4n832w3hjym"; + sha256 = "0rrxjk3vbqy3cdgnl7rw71dvcyrvhwq3m6s53dnkyjxsrnr0xk3v"; }; patches = [ @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { }) ]; - mesonFlags = [ "-Dsystemd=true" ]; + mesonFlags = [ "-Dsystemd=true" "-Dsystemd_session=default" ]; nativeBuildInputs = [ meson ninja pkgconfig gettext makeWrapper @@ -39,6 +39,14 @@ stdenv.mkDerivation rec { 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 \ + {} + ''; # `bin/gnome-session` will reset the environment when run in wayland, we @@ -59,6 +67,9 @@ stdenv.mkDerivation rec { mkdir $sessions moveToOutput share/wayland-sessions "$sessions" moveToOutput share/xsessions "$sessions" + + # Our provided one is being used + rm -rf $out/libexec/gnome-session-ctl ''; passthru = { diff --git a/infra/libkookie/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch index 2399c656016a..320b3024deee 100644 --- a/infra/libkookie/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch +++ b/infra/libkookie/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch @@ -1,6 +1,8 @@ +diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in +index ddd1a591..46a3488b 100755 --- a/gnome-session/gnome-session.in +++ b/gnome-session/gnome-session.in -@@ -3,11 +3,13 @@ +@@ -3,17 +3,19 @@ if [ "x$XDG_SESSION_TYPE" = "xwayland" ] && [ "x$XDG_SESSION_CLASS" != "xgreeter" ] && [ -n "$SHELL" ] && @@ -12,24 +14,24 @@ + ! (echo "$SHELL" | @grep@ -q "nologin"); then if [ "$1" != '-l' ]; then - exec bash -c "exec -l '$SHELL' -c '$0 -l $*'" -+ # Make sure the shell actually sets up the environment ++ # 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 -@@ -13,7 +13,7 @@ - fi fi --SETTING=$(G_MESSAGES_DEBUG= gsettings get org.gnome.system.locale region) -+SETTING=$(G_MESSAGES_DEBUG= @gsettings@ get org.gnome.system.locale region) +-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 84edfbe5..e5285489 100644 --- a/gnome-session/main.c +++ b/gnome-session/main.c -@@ -203,7 +203,7 @@ +@@ -215,7 +215,7 @@ require_dbus_session (int argc, } new_argv[i + 2] = NULL; |