gnu: polkit: Look up polkit rules under /etc, and enable session tracking.
This is a follow-up to commit 290ac5cd1e
.
* gnu/packages/polkit.scm (polkit-mozjs)[source](snippet): Add substitutions.
[source](patches): New field.
[arguments]: Pass --sysconfdir and -Dsession_tracking in #:configure-flags.
* gnu/packages/patches/polkit-disable-systemd.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
master
parent
c7032683a5
commit
92fdda5a63
|
@ -1649,6 +1649,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/plib-CVE-2011-4620.patch \
|
%D%/packages/patches/plib-CVE-2011-4620.patch \
|
||||||
%D%/packages/patches/plib-CVE-2012-4552.patch \
|
%D%/packages/patches/plib-CVE-2012-4552.patch \
|
||||||
%D%/packages/patches/plotutils-spline-test.patch \
|
%D%/packages/patches/plotutils-spline-test.patch \
|
||||||
|
%D%/packages/patches/polkit-disable-systemd.patch \
|
||||||
%D%/packages/patches/portaudio-audacity-compat.patch \
|
%D%/packages/patches/portaudio-audacity-compat.patch \
|
||||||
%D%/packages/patches/portmidi-modular-build.patch \
|
%D%/packages/patches/portmidi-modular-build.patch \
|
||||||
%D%/packages/patches/postgresql-disable-resolve_symlinks.patch \
|
%D%/packages/patches/postgresql-disable-resolve_symlinks.patch \
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
Don't install systemd units unless using libsystemd session tracking.
|
||||||
|
|
||||||
|
Submitted upstream:
|
||||||
|
|
||||||
|
https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/134
|
||||||
|
|
||||||
|
diff --git a/data/meson.build b/data/meson.build
|
||||||
|
--- a/data/meson.build
|
||||||
|
+++ b/data/meson.build
|
||||||
|
@@ -26,7 +26,7 @@ if enable_pam
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
|
||||||
|
-if enable_logind
|
||||||
|
+if session_tracking == 'libsystemd-login'
|
||||||
|
configure_file(
|
||||||
|
input: 'polkit.service.in',
|
||||||
|
output: '@BASENAME@',
|
||||||
|
diff --git a/meson.build b/meson.build
|
||||||
|
--- a/meson.build
|
||||||
|
+++ b/meson.build
|
||||||
|
@@ -199,7 +199,7 @@ if enable_logind
|
||||||
|
|
||||||
|
# systemd unit / service files
|
||||||
|
systemd_systemdsystemunitdir = get_option('systemdsystemunitdir')
|
||||||
|
- if systemd_systemdsystemunitdir == ''
|
||||||
|
+ if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login'
|
||||||
|
systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it')
|
||||||
|
# FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used
|
||||||
|
systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir')
|
|
@ -63,6 +63,7 @@
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
"https://www.freedesktop.org/software/polkit/releases/"
|
"https://www.freedesktop.org/software/polkit/releases/"
|
||||||
name "-" version ".tar.gz"))
|
name "-" version ".tar.gz"))
|
||||||
|
(patches (search-patches "polkit-disable-systemd.patch"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1apz3bh7nbpmlp1cr00pb8z8wp0c7yb23ninb959jz3r38saxiwx"))
|
"1apz3bh7nbpmlp1cr00pb8z8wp0c7yb23ninb959jz3r38saxiwx"))
|
||||||
|
@ -75,11 +76,17 @@
|
||||||
(substitute* "test/meson.build"
|
(substitute* "test/meson.build"
|
||||||
(("subdir\\('polkitbackend'\\)")
|
(("subdir\\('polkitbackend'\\)")
|
||||||
""))
|
""))
|
||||||
;; Guix System's polkit
|
;; Look up actions and rules from /etc/polkit ...
|
||||||
;; service stores actions under /etc/polkit-1/actions.
|
(substitute* "src/polkitbackend/meson.build"
|
||||||
|
(("'-DPACKAGE_SYSCONF_DIR=.*,")
|
||||||
|
"'-DPACKAGE_SYSCONF_DIR=\"/etc\"',"))
|
||||||
(substitute* "src/polkitbackend/polkitbackendinteractiveauthority.c"
|
(substitute* "src/polkitbackend/polkitbackendinteractiveauthority.c"
|
||||||
(("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
|
(("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
|
||||||
"PACKAGE_SYSCONF_DIR \"/polkit-1/actions\""))
|
"PACKAGE_SYSCONF_DIR \"/polkit-1/actions\""))
|
||||||
|
;; ... but install package files below the prefix.
|
||||||
|
(substitute* "meson.build"
|
||||||
|
(("pk_sysconfdir = get_option\\('sysconfdir'\\)")
|
||||||
|
"pk_sysconfdir = get_option('prefix') + '/etc'"))
|
||||||
;; Set the setuid helper's real location.
|
;; Set the setuid helper's real location.
|
||||||
(substitute* "src/polkitagent/polkitagentsession.c"
|
(substitute* "src/polkitagent/polkitagentsession.c"
|
||||||
(("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
|
(("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
|
||||||
|
@ -104,7 +111,9 @@
|
||||||
docbook-xsl)) ;for man page generation
|
docbook-xsl)) ;for man page generation
|
||||||
(arguments
|
(arguments
|
||||||
(list #:configure-flags
|
(list #:configure-flags
|
||||||
#~'("-Dman=true"
|
#~'("--sysconfdir=/etc"
|
||||||
|
"-Dsession_tracking=libelogind"
|
||||||
|
"-Dman=true"
|
||||||
"-Dtests=true"
|
"-Dtests=true"
|
||||||
"-Djs_engine=mozjs"
|
"-Djs_engine=mozjs"
|
||||||
;; Work around broken gobject-introspection detection when
|
;; Work around broken gobject-introspection detection when
|
||||||
|
|
Reference in New Issue