guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/06: gnu: polkit: Look for rules in /run/current-system/profile.


From: Andy Wingo
Subject: 02/06: gnu: polkit: Look for rules in /run/current-system/profile.
Date: Wed, 02 Sep 2015 20:58:30 +0000

wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 3f130e42e0237451503a19293fe60daa27853af0
Author: Andy Wingo <address@hidden>
Date:   Tue Sep 1 13:30:31 2015 +0200

    gnu: polkit: Look for rules in /run/current-system/profile.
    
    * gnu/packages/polkit.scm (polkit): Configure to look for actions and
      rules in the system profile.  Arrange to look for the setuid helper in
      /run/setuid-programs.  Fix introspection installation.
    
    Based on a patch by Mark H Weaver <address@hidden>.
---
 gnu/packages/polkit.scm |   62 +++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 52 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 06afdf1..13db7b6 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Andreas Enge <address@hidden>
 ;;; Copyright © 2015 Andy Wingo <address@hidden>
+;;; Copyright © 2015 Mark H Weaver <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -62,20 +63,61 @@
                  (substitute* 
"src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
                    (("systemd") "elogind"))
                  (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
-                   (("systemd") "elogind"))))))
+                   (("systemd") "elogind"))
+
+                 (substitute* "src/polkitagent/polkitagentsession.c"
+                   (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
+                    "\"/run/setuid-programs/polkit-agent-helper-1\""))
+                 (substitute* 
"src/polkitbackend/polkitbackendinteractiveauthority.c"
+                   (("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
+                    "\"/run/current-system/profile/share/polkit-1/actions\""))
+                 (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+                   (("PACKAGE_SYSCONF_DIR \"/polkit-1/rules.d\"")
+                    "\"/run/current-system/profile/etc/polkit-1/rules.d\""))
+                 (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+                   (("PACKAGE_DATA_DIR \"/polkit-1/rules.d\"")
+                    
"\"/run/current-system/profile/share/polkit-1/rules.d\""))))))
     (build-system gnu-build-system)
     (inputs
-      `(("expat" ,expat)
-        ("glib:bin" ,glib "bin") ; for glib-mkenums
-        ("elogind" ,elogind)
-        ("intltool" ,intltool)
-        ("linux-pam" ,linux-pam)
-        ("mozjs" ,mozjs)
-        ("nspr" ,nspr)))
+     `(("expat" ,expat)
+       ("linux-pam" ,linux-pam)
+       ("elogind" ,elogind)
+       ("mozjs" ,mozjs)
+       ("nspr" ,nspr)))
     (propagated-inputs
-      `(("glib" ,glib))) ; required by polkit-gobject-1.pc
+     `(("glib" ,glib))) ; required by polkit-gobject-1.pc
     (native-inputs
-      `(("pkg-config", pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("glib:bin" ,glib "bin") ; for glib-mkenums
+       ("intltool" ,intltool)
+       ("gobject-introspection" ,gobject-introspection)))
+    (arguments
+     `(#:configure-flags '("--sysconfdir=/etc"
+                           "--enable-man-pages")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after
+          'unpack 'fix-introspection-install-dir
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out")))
+              (substitute* (find-files "." "Makefile.in")
+                (("@INTROSPECTION_GIRDIR@")
+                 (string-append out "/share/gir-1.0/"))
+                (("@INTROSPECTION_TYPELIBDIR@")
+                 (string-append out "/lib/girepository-1.0/"))))))
+         (replace
+          'install
+          (lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
+            ;; Override sysconfdir during "make install", to avoid attempting
+            ;; to install in /etc, and to instead install the skeletons in the
+            ;; output directory.
+            (let ((out (assoc-ref outputs "out")))
+             (zero? (apply system*
+                           "make" "install"
+                           (string-append "sysconfdir=" out "/etc")
+                           (string-append "polkit_actiondir="
+                                          out "/share/polkit-1/actions")
+                           make-flags))))))))
     (home-page "http://www.freedesktop.org/wiki/Software/polkit/";)
     (synopsis "Authorization API for privilege management")
     (description "Polkit is an application-level toolkit for defining and



reply via email to

[Prev in Thread] Current Thread [Next in Thread]