From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: [PATCH] Fix XFCE shutdown/reboot via menu. Date: Sat, 21 Nov 2015 17:55:23 +0100 Message-ID: <87vb8vqolg.fsf@elephly.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45101) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a0BRl-0003sr-Ry for guix-devel@gnu.org; Sat, 21 Nov 2015 11:55:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a0BRi-0005hU-Tr for guix-devel@gnu.org; Sat, 21 Nov 2015 11:55:33 -0500 Received: from sender163-mail.zoho.com ([74.201.84.163]:24361) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a0BRi-0005hN-G7 for guix-devel@gnu.org; Sat, 21 Nov 2015 11:55:30 -0500 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Hi Guix, in the XFCE panel there is an item called “Action Buttons” offering screen locking, log out, switch user, shutdown and reboot. Shutdown and reboot do not work at the moment. I investigated a little and came up with a configuration in which these two features do work. First I had to patch our xfce-session package. Upower is checked for at configure time and needed for shutdown and reboot. Polkit’s “pkexec” is required to run the shutdown helper. The helper contains a bunch of hardcoded paths to /sbin/shutdown, which are replaced in a build phase — not in a snippet because eventually we should also fix the paths to pm-{suspend,hibernate}, which would be provided by an input that is currently not present(?). I also needed to change my system configuration to add “pkexec” to the list of setuid programs: (setuid-programs (cons #~(string-append #$polkit "/bin/pkexec") %setuid-programs)) Maybe this should just be added to %setuid-programs? Is it okay to use /run/setuid-programs/pkexec in the shutdown helper or should this rather be a reference to the polkit input? Here’s the patch: --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-WIP-xfce-session-Fix-shutdown-reboot-via-menu.patch >From 2d39ace79b79a1672488e09bdcf442ff893cbf98 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 21 Nov 2015 17:47:00 +0100 Subject: [PATCH] WIP: xfce-session: Fix shutdown/reboot via menu. --- gnu/packages/xfce.scm | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index a4987c1..4c223d7 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -35,6 +35,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages gnome) #:use-module (gnu packages pdf) + #:use-module (gnu packages polkit) #:use-module (gnu packages gstreamer) #:use-module (gnu packages linux) #:use-module (gnu packages photo) @@ -429,13 +430,29 @@ your system in categories, so you can quickly find and launch them.") (list (search-patch "xfce4-session-fix-xflock4.patch"))))) (build-system gnu-build-system) (arguments - '(#:configure-flags + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths-to-shutdown-tools + (lambda _ + ;; FIXME: also replace paths to "pm-hibernate" and "pm-suspend" + (substitute* "xfsm-shutdown-helper/main.c" + (("/sbin/shutdown -h now") + "/run/current-system/profile/sbin/halt") + (("/sbin/shutdown -r now") + "/run/current-system/profile/sbin/restart")) + ;; TODO: should we use a store reference to polkit instead? + (substitute* "xfce4-session/xfsm-shutdown-fallback.c" + (("pkexec ") "/run/setuid-programs/pkexec ")) + #t))) + #:configure-flags (list (string-append "--with-xsession-prefix=" %output)))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool))) (inputs `(("iceauth" ,iceauth) + ("upower" ,upower) + ("polkit" ,polkit) ("libsm" ,libsm) ("libwnck" ,libwnck-1) ("libxfce4ui" ,libxfce4ui))) -- 2.5.0 --=-=-= Content-Type: text/plain ~~ Ricardo --=-=-=--