From e960862393be601f42a71d7f8c2582eef96bea2aaf91acba49d9ad64ca91201e Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 9 Nov 2022 13:54:41 +0000 Subject: [PATCH] For sudo OBS-URL: https://build.opensuse.org/package/show/editors/emacs?expand=0&rev=335 --- emacs.changes | 6 ++++++ emacs.sh | 18 +++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/emacs.changes b/emacs.changes index 9f2b9b0..d22e56f 100644 --- a/emacs.changes +++ b/emacs.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Nov 9 13:46:06 UTC 2022 - Dr. Werner Fink + +- Add workaround for boo#1205109, that is started with sudo there + is maybe no active user session for root hence no dbus + ------------------------------------------------------------------- Wed Oct 26 11:56:36 UTC 2022 - Andreas Schwab diff --git a/emacs.sh b/emacs.sh index 954a3b1..470eef4 100644 --- a/emacs.sh +++ b/emacs.sh @@ -47,14 +47,30 @@ else echo "no emacs binary found" exit 1 fi +if [[ "$1" =~ .*-nox ]] ; then + exec -a $arg0 ${1+"$@"} "${argv[@]}" +fi dbusdaemon=$(type -p dbus-daemon 2>/dev/null) # # Now check for valid dbus, e.g. after su/sudo/slogin # if test -n "$dbusdaemon" ; then + # + # Workaround for boo#1205109 + # + if test "$EUID" = 0 -a "$XDG_RUNTIME_DIR" != /run/user/0; then + unset XDG_CONFIG_HOME XDG_CACHE_HOME XDG_DESKTOP_DIR XDG_RUNTIME_DIR XDG_DATA_DIRS +# unset DBUS_SESSION_BUS_ADDRESS + if test ! -d /run/user/0; then + systemctl start user@0 >/dev/null 2>&1 + fi + if test -S /run/user/0/bus; then + DBUS_SESSION_BUS_ADDRESS=unix:/run/user/0/bus + fi + fi # Standard on modern systems - : ${XDG_RUNTIME_DIR:=/run/user/${UID}} + : ${XDG_RUNTIME_DIR:=/run/user/${EUID}} export XDG_RUNTIME_DIR # Oops ... no dbus-daemon then launch a new session