From aa8ee1e7ea30c5ebe5168f1f73ada5f9ce21911e Mon Sep 17 00:00:00 2001 From: oreo639 Date: Fri, 9 Sep 2022 16:46:44 -0700 Subject: [PATCH] gnome-session: remove outdated workaround and fix overwriting lang The issue the revert autostart-app patch was added for was fixed in elogind: https://gitlab.gnome.org/GNOME/gnome-session/-/issues/44 The LANG variable is set by GDM but gets overwritten when loading /etc/profile. This resets it afterwards using the GDM_LANG variable. --- ...-app-Strip-blacklisted-variables-fro.patch | 67 ------------------- .../include-profile-env-variables.patch | 10 ++- .../patches/no-systemd-dep.patch | 41 ++++++++++-- srcpkgs/gnome-session/template | 9 +-- 4 files changed, 48 insertions(+), 79 deletions(-) delete mode 100644 srcpkgs/gnome-session/patches/0001-revert-autostart-app-Strip-blacklisted-variables-fro.patch diff --git a/srcpkgs/gnome-session/patches/0001-revert-autostart-app-Strip-blacklisted-variables-fro.patch b/srcpkgs/gnome-session/patches/0001-revert-autostart-app-Strip-blacklisted-variables-fro.patch deleted file mode 100644 index af8350b8d933..000000000000 --- a/srcpkgs/gnome-session/patches/0001-revert-autostart-app-Strip-blacklisted-variables-fro.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 1de3575a1ea9cdb3579ad538108c51818847797c Mon Sep 17 00:00:00 2001 -From: Rasmus Thomsen -Date: Fri, 6 Dec 2019 11:48:02 +0100 -Subject: [PATCH] revert: autostart-app: Strip blacklisted variables from - autostart environment - -This breaks gnome-session on non-systemd systems. - -https://gitlab.gnome.org/GNOME/gnome-session/issues/44 ---- - gnome-session/gsm-autostart-app.c | 5 ----- - gnome-session/gsm-util.c | 6 ------ - gnome-session/gsm-util.h | 1 - - 3 files changed, 12 deletions(-) - -diff --git a/gnome-session/gsm-autostart-app.c b/gnome-session/gsm-autostart-app.c -index 6fd5915..01ba5f9 100644 ---- a/gnome-session/gsm-autostart-app.c -+++ b/gnome-session/gsm-autostart-app.c -@@ -997,7 +997,6 @@ autostart_app_start_spawn (GsmAutostartApp *app, - gboolean success; - GError *local_error; - const char *startup_id; -- const char * const *variable_blacklist; - const char * const *child_environment; - int i; - GAppLaunchContext *ctx; -@@ -1014,10 +1013,6 @@ autostart_app_start_spawn (GsmAutostartApp *app, - local_error = NULL; - ctx = g_app_launch_context_new (); - -- variable_blacklist = gsm_util_get_variable_blacklist (); -- for (i = 0; variable_blacklist[i] != NULL; i++) -- g_app_launch_context_unsetenv (ctx, variable_blacklist[i]); -- - child_environment = gsm_util_listenv (); - for (i = 0; child_environment[i] != NULL; i++) { - char **environment_tuple; -diff --git a/gnome-session/gsm-util.c b/gnome-session/gsm-util.c -index 02bc4a5..ada1225 100644 ---- a/gnome-session/gsm-util.c -+++ b/gnome-session/gsm-util.c -@@ -808,9 +808,3 @@ gsm_util_listenv (void) - return (const char * const *) child_environment; - - } -- --const char * const * --gsm_util_get_variable_blacklist (void) --{ -- return variable_blacklist; --} -diff --git a/gnome-session/gsm-util.h b/gnome-session/gsm-util.h -index bd7b698..8bca5f4 100644 ---- a/gnome-session/gsm-util.h -+++ b/gnome-session/gsm-util.h -@@ -50,7 +50,6 @@ char * gsm_util_generate_startup_id (void); - void gsm_util_setenv (const char *variable, - const char *value); - const char * const * gsm_util_listenv (void); --const char * const * gsm_util_get_variable_blacklist(void); - - gboolean gsm_util_export_activation_environment (GError **error); - #ifdef HAVE_SYSTEMD --- -2.24.0 - diff --git a/srcpkgs/gnome-session/patches/include-profile-env-variables.patch b/srcpkgs/gnome-session/patches/include-profile-env-variables.patch index 2e06bddecb1f..c25840f5457a 100644 --- a/srcpkgs/gnome-session/patches/include-profile-env-variables.patch +++ b/srcpkgs/gnome-session/patches/include-profile-env-variables.patch @@ -4,6 +4,8 @@ specific /etc/environment.d to set environment variables. With this patch we just force gnome-session's hand to include the env variables of /etc/profile. +diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in +index ddd1a591..bbb05260 100755 --- a/gnome-session/gnome-session.in +++ b/gnome-session/gnome-session.in @@ -1,4 +1,4 @@ @@ -12,10 +14,14 @@ of /etc/profile. if [ "x$XDG_SESSION_TYPE" = "xwayland" ] && [ "x$XDG_SESSION_CLASS" != "xgreeter" ] && -@@ -25,4 +25,6 @@ if [ -n "$REGION" ]; then - export LC_PAPER=$REGION +@@ -29,4 +29,10 @@ if [ -n "$REGION" ]; then + fi fi +source /etc/profile ++ ++if [ -n "$GDM_LANG" ]; then ++ LANG=$GDM_LANG ++fi + exec @libexecdir@/gnome-session-binary "$@" diff --git a/srcpkgs/gnome-session/patches/no-systemd-dep.patch b/srcpkgs/gnome-session/patches/no-systemd-dep.patch index 8292d60d5a9e..8568a638ddd8 100644 --- a/srcpkgs/gnome-session/patches/no-systemd-dep.patch +++ b/srcpkgs/gnome-session/patches/no-systemd-dep.patch @@ -1,14 +1,47 @@ +Status: Patch submitted. Not currently in upstream. + +From d2be832ae5ea12996fe8b9f42346c1038b01c9cb Mon Sep 17 00:00:00 2001 +From: oreo639 +Date: Fri, 9 Sep 2022 21:43:11 -0700 +Subject: [PATCH] meson: Add option to override sytemd user unit directory + +This also fixes building with elogind. +--- + meson.build | 9 ++++++--- + meson_options.txt | 1 + + 2 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/meson.build b/meson.build +index 5aa5e749..72509922 100644 --- a/meson.build +++ b/meson.build -@@ -130,10 +130,7 @@ if enable_systemd or enable_consolekit +@@ -124,9 +124,12 @@ if enable_systemd or enable_consolekit # Check for systemd if enable_systemd - systemd_dep = dependency('systemd', version: '>= 242', required: true) - systemd_userunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir', - define_variable: ['prefix', prefix]) -- -+ systemd_userunitdir = '/tmp' ++ systemd_userunitdir = get_option('systemduserunitdir') ++ if systemd_userunitdir == '' ++ systemd_dep = dependency('systemd', version: '>= 242', required: true) ++ systemd_userunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir', ++ define_variable: ['prefix', prefix]) ++ endif + libsystemd_dep = dependency('libsystemd', version: '>= 209', required: false) session_bin_deps += libsystemd_dep - +diff --git a/meson_options.txt b/meson_options.txt +index 4c05dc6e..d3bd3838 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -3,6 +3,7 @@ option('session_selector', type: 'boolean', value: false, description: 'enable b + option('systemd', type: 'boolean', value: true, description: 'Use systemd') + option('systemd_session', type: 'combo', choices: ['disable', 'enable', 'default'], value: 'default', description: 'Whether to include systemd session support and use it by default') + option('systemd_journal', type: 'boolean', value:'true', description: 'Send log to systemd-journal') ++option('systemduserunitdir', type: 'string', description: 'Directory for systemd user service files') + option('consolekit', type: 'boolean', value: false, description: 'Use consolekit') + option('docbook', type: 'boolean', value: true, description: 'build documentation') + option('man', type: 'boolean', value: true, description: 'build documentation (requires xmlto)') +-- +GitLab diff --git a/srcpkgs/gnome-session/template b/srcpkgs/gnome-session/template index cce39e931eb8..fe3d7ac09514 100644 --- a/srcpkgs/gnome-session/template +++ b/srcpkgs/gnome-session/template @@ -1,9 +1,10 @@ # Template file for 'gnome-session' pkgname=gnome-session version=42.0 -revision=1 +revision=2 build_style=meson -configure_args="-Dsystemd_journal=false -Dsystemd_session=disable" +configure_args="-Dsystemd_journal=false -Dsystemd_session=disable + -Dsystemduserunitdir=/usr/lib/systemd/user" hostmakedepends="glib-devel intltool pkg-config xmlto" makedepends="elogind-devel gnome-desktop-devel gtk+3-devel json-glib-devel libglib-devel libICE-devel libSM-devel libXtst-devel startup-notification-devel @@ -17,7 +18,3 @@ homepage="https://gitlab.gnome.org/GNOME/gnome-session" changelog="https://gitlab.gnome.org/GNOME/gnome-session/-/blob/main/NEWS" distfiles="${GNOME_SITE}/${pkgname}/${version%.*}/${pkgname}-${version}.tar.xz" checksum=3cca06053ab682926920951a7da95f8cc6d72da74c682c46d0a0653332969caa - -post_install() { - rm -rf ${DESTDIR}/tmp -}