diff --git a/desktop/gnome-session/0002-gnome-session-add-profile-sourcing.patch b/desktop/gnome-session/0002-gnome-session-add-profile-sourcing.patch new file mode 100644 index 0000000000..5f273536e3 --- /dev/null +++ b/desktop/gnome-session/0002-gnome-session-add-profile-sourcing.patch @@ -0,0 +1,62 @@ +diff -Naur gnome-session-42.0/gnome-session/gnome-session.in gnome-session-42.0-patched/gnome-session/gnome-session.in +--- gnome-session-42.0/gnome-session/gnome-session.in 2022-08-03 19:15:53.227967625 -0000 ++++ gnome-session-42.0-patched/gnome-session/gnome-session.in 2022-08-03 19:17:49.002962878 -0000 +@@ -10,6 +10,58 @@ + exec bash -c "exec -l '$SHELL' -c '$0 -l $*'" + else + shift ++ ++ # Source some profile scripts in gnome so we dont have to ++ # depend on a systemd locale service. ++ # This code was copied from KDE's "wayland-session" script. ++ # Copyright (C) 2015-2016 Pier Luigi Fiorini ++ # This file is extracted from kde-workspace (kdm/kfrontend/genkdmconf.c) ++ # Copyright (C) 2001-2005 Oswald Buddenhagen ++ # Added to gnome's "gnome-session" script by Bob Funk ++ # Note that the respective logout scripts are not sourced. ++ case $SHELL in ++ */bash) ++ [ -z "$BASH" ] && exec $SHELL $0 "$@" ++ set +o posix ++ [ -f /etc/profile ] && . /etc/profile ++ if [ -f $HOME/.bash_profile ]; then ++ . $HOME/.bash_profile ++ elif [ -f $HOME/.bash_login ]; then ++ . $HOME/.bash_login ++ elif [ -f $HOME/.profile ]; then ++ . $HOME/.profile ++ fi ++ ;; ++ */zsh) ++ [ -z "$ZSH_NAME" ] && exec $SHELL $0 "$@" ++ [ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc ++ zhome=${ZDOTDIR:-$HOME} ++ # zshenv is always sourced automatically. ++ [ -f $zdir/zprofile ] && . $zdir/zprofile ++ [ -f $zhome/.zprofile ] && . $zhome/.zprofile ++ [ -f $zdir/zlogin ] && . $zdir/zlogin ++ [ -f $zhome/.zlogin ] && . $zhome/.zlogin ++ emulate -R sh ++ ;; ++ */csh|*/tcsh) ++ # [t]cshrc is always sourced automatically. ++ # Note that sourcing csh.login after .cshrc is non-standard. ++ wlsess_tmp=`mktemp /tmp/wlsess-env-XXXXXX` ++ $SHELL -c "if (-f /etc/csh.login) source /etc/csh.login; if (-f ~/.login) source ~/.login; /bin/sh -c 'export -p' >! $wlsess_tmp" ++ . $wlsess_tmp ++ rm -f $wlsess_tmp ++ ;; ++ */fish) ++ xsess_tmp=`mktemp /tmp/xsess-env-XXXXXX` ++ $SHELL --login -c "/bin/sh -c 'export -p' > $xsess_tmp" ++ . $xsess_tmp ++ rm -f $xsess_tmp ++ ;; ++ *) # Plain sh, ksh, and anything we do not know. ++ [ -f /etc/profile ] && . /etc/profile ++ [ -f $HOME/.profile ] && . $HOME/.profile ++ ;; ++ esac + fi + fi + diff --git a/desktop/gnome-session/gnome-session.SlackBuild b/desktop/gnome-session/gnome-session.SlackBuild index 80983afd74..1085048f06 100644 --- a/desktop/gnome-session/gnome-session.SlackBuild +++ b/desktop/gnome-session/gnome-session.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=gnome-session VERSION=${VERSION:-42.0} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -79,6 +79,9 @@ find -L . \ # Patch gnome-session so it can be built with elogind: patch -Np1 -i $CWD/0001-meson-add-elogind-support.patch +# Patch the gnome-session wrapper script to source profile scripts: +patch -Np1 -i $CWD/0002-gnome-session-add-profile-sourcing.patch + mkdir build cd build CFLAGS="$SLKCFLAGS" \