From: Florian Pelz Date: Mon, 10 Jan 2022 17:24:50 +0100 Subject: [PATCH] gnu: elogind: Revert changes to logind waiting for polkit. * gnu/packages/patches/elogind-revert-logind-check-policykit.patch: New file. * gnu/packages/freedesktop.scm (elogind): Use it. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/freedesktop.scm | 1 + ...logind-revert-logind-check-policykit.patch | 164 ++++++++++++++++++ 3 files changed, 166 insertions(+) create mode 100644 gnu/packages/patches/elogind-revert-logind-check-policykit.patch diff --git a/gnu/local.mk b/gnu/local.mk index a7106d5f77..f295e22924 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1017,6 +1017,7 @@ dist_patch_DATA = \ %D%/packages/patches/elm-compiler-disable-reactor.patch \ %D%/packages/patches/elm-compiler-fix-map-key.patch \ %D%/packages/patches/elogind-revert-polkit-detection.patch \ + %D%/packages/patches/elogind-revert-logind-check-policykit.patch \ %D%/packages/patches/emacs-exec-path.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-ignore-empty-xim-styles.patch \ diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index a14fba862c..48f4fb11ce 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -576,6 +576,7 @@ (define-public elogind (base32 "16045bhpwjq2nqgswln67ipg1zrz2djxlgkfngqng3jqpwagmnzq")) (patches (search-patches + "elogind-revert-logind-check-policykit.patch" "elogind-revert-polkit-detection.patch")))) (build-system meson-build-system) (arguments diff --git a/gnu/packages/patches/elogind-revert-logind-check-policykit.patch b/gnu/packages/patches/elogind-revert-logind-check-policykit.patch new file mode 100644 index 0000000000..a589fa9591 --- /dev/null +++ b/gnu/packages/patches/elogind-revert-logind-check-policykit.patch @@ -0,0 +1,164 @@ +From 1c3f1db2f8a93957386813b1be4274f6ac8b851f Mon Sep 17 00:00:00 2001 +From: Florian Pelz +Date: Mon, 10 Jan 2022 17:12:40 +0100 +Subject: [PATCH] Revert "logind: check PolicyKit before allowing VT switch" + +This reverts commit 150d7b05074f16db70a2872765edbb39066d80af. +--- + src/login/logind-dbus.c | 16 --------- + src/login/logind-seat-dbus.c | 58 +-------------------------------- + src/login/logind-session-dbus.c | 14 -------- + 3 files changed, 1 insertion(+), 87 deletions(-) + +diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c +index a9c954c43..ba30fa7c3 100644 +--- a/src/login/logind-dbus.c ++++ b/src/login/logind-dbus.c +@@ -1035,8 +1035,6 @@ static int method_activate_session(sd_bus_message *message, void *userdata, sd_b + if (r < 0) + return r; + +- /* PolicyKit is done by bus_session_method_activate() */ +- + return bus_session_method_activate(message, session, error); + } + +@@ -1068,20 +1066,6 @@ static int method_activate_session_on_seat(sd_bus_message *message, void *userda + return sd_bus_error_setf(error, BUS_ERROR_SESSION_NOT_ON_SEAT, + "Session %s not on seat %s", session_name, seat_name); + +- r = bus_verify_polkit_async( +- message, +- CAP_SYS_ADMIN, +- "org.freedesktop.login1.chvt", +- NULL, +- false, +- UID_INVALID, +- &m->polkit_registry, +- error); +- if (r < 0) +- return r; +- if (r == 0) +- return 1; /* Will call us back */ +- + r = session_activate(session); + if (r < 0) + return r; +diff --git a/src/login/logind-seat-dbus.c b/src/login/logind-seat-dbus.c +index a91765205..01fc8ddf6 100644 +--- a/src/login/logind-seat-dbus.c ++++ b/src/login/logind-seat-dbus.c +@@ -179,20 +179,6 @@ static int method_activate_session(sd_bus_message *message, void *userdata, sd_b + if (session->seat != s) + return sd_bus_error_setf(error, BUS_ERROR_SESSION_NOT_ON_SEAT, "Session %s not on seat %s", name, s->id); + +- r = bus_verify_polkit_async( +- message, +- CAP_SYS_ADMIN, +- "org.freedesktop.login1.chvt", +- NULL, +- false, +- UID_INVALID, +- &s->manager->polkit_registry, +- error); +- if (r < 0) +- return r; +- if (r == 0) +- return 1; /* Will call us back */ +- + r = session_activate(session); + if (r < 0) + return r; +@@ -213,21 +199,7 @@ static int method_switch_to(sd_bus_message *message, void *userdata, sd_bus_erro + return r; + + if (to <= 0) +- return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid virtual terminal"); +- +- r = bus_verify_polkit_async( +- message, +- CAP_SYS_ADMIN, +- "org.freedesktop.login1.chvt", +- NULL, +- false, +- UID_INVALID, +- &s->manager->polkit_registry, +- error); +- if (r < 0) +- return r; +- if (r == 0) +- return 1; /* Will call us back */ ++ return -EINVAL; + + r = seat_switch_to(s, to); + if (r < 0) +@@ -243,20 +215,6 @@ static int method_switch_to_next(sd_bus_message *message, void *userdata, sd_bus + assert(message); + assert(s); + +- r = bus_verify_polkit_async( +- message, +- CAP_SYS_ADMIN, +- "org.freedesktop.login1.chvt", +- NULL, +- false, +- UID_INVALID, +- &s->manager->polkit_registry, +- error); +- if (r < 0) +- return r; +- if (r == 0) +- return 1; /* Will call us back */ +- + r = seat_switch_to_next(s); + if (r < 0) + return r; +@@ -271,20 +229,6 @@ static int method_switch_to_previous(sd_bus_message *message, void *userdata, sd + assert(message); + assert(s); + +- r = bus_verify_polkit_async( +- message, +- CAP_SYS_ADMIN, +- "org.freedesktop.login1.chvt", +- NULL, +- false, +- UID_INVALID, +- &s->manager->polkit_registry, +- error); +- if (r < 0) +- return r; +- if (r == 0) +- return 1; /* Will call us back */ +- + r = seat_switch_to_previous(s); + if (r < 0) + return r; +diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c +index beca34a33..9c223418e 100644 +--- a/src/login/logind-session-dbus.c ++++ b/src/login/logind-session-dbus.c +@@ -194,20 +194,6 @@ int bus_session_method_activate(sd_bus_message *message, void *userdata, sd_bus_ + assert(message); + assert(s); + +- r = bus_verify_polkit_async( +- message, +- CAP_SYS_ADMIN, +- "org.freedesktop.login1.chvt", +- NULL, +- false, +- UID_INVALID, +- &s->manager->polkit_registry, +- error); +- if (r < 0) +- return r; +- if (r == 0) +- return 1; /* Will call us back */ +- + r = session_activate(s); + if (r < 0) + return r; +-- +2.34.0 + base-commit: 87624540b486d710749ad00ef5aa427a9e5c1d0c -- 2.34.0