From: Leo Prikler <leo.prikler@student.tugraz.at>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guix-devel@gnu.org
Subject: Re: Wheel group as polkit admins
Date: Sun, 17 Nov 2019 18:52:07 +0100 [thread overview]
Message-ID: <329f03fbb1df8c78deaef37c06c5041b3504c15e.camel@student.tugraz.at> (raw)
In-Reply-To: <87mucuo3hh.fsf@gnu.org>
Hi Ludo,
Am Sonntag, den 17.11.2019, 17:46 +0100 schrieb Ludovic Courtès:
> Hi Leo,
>
> Leo Prikler <leo.prikler@student.tugraz.at> skribis:
>
> > Since our polkit service expects a list of packages as extension, I
> > currently use the following in my /etc/config.scm:
> >
> > (define polkit-wheel
> > (package
> > (name "polkit-wheel")
> > (version "0")
> > (source #f)
> > (build-system trivial-build-system)
> > (arguments
> > `(#:modules ((guix build utils))
> > #:builder
> > (begin
> > (use-modules ((guix build utils)))
> > (let ((rules.d (string-append %output "/share/polkit-
> > 1/rules.d")))
> > (mkdir-p rules.d)
> > (with-output-to-file (string-append rules.d
> > "/wheel.rules")
> > (lambda ()
> > (display "polkit.addAdminRule(function(action,
> > subject) {
> > return [\"unix-group:wheel\"];
> > });
> > ")))))))
> > (home-page #f)
> > (synopsis "Make wheel adminstrate")
> > (description #f)
> > (license #f)))
> >
> > (define polkit-wheel-service-type
> > (service-type (name 'polkit-wheel)
> > (extensions
> > (list (service-extension polkit-service-type
> > (const (list polkit-
> > wheel)))))
> > (default-value '())))
> >
> > The problems with this apporach should be clear. "polkit-wheel" is
> > by
> > no stretch of the imagination an actual package. It is so trivial,
> > that it might as well just be a file. Is there a simpler way of
> > extending polkit, perhaps with just a g-expression?
>
> Yup, I think you could make it a ‘computed-file’ instead of a
> package:
>
> (computed-file "polkit-wheel-rule"
> (with-imported-modules '((guix build utils))
> #~(begin …)))
Thanks for the hint. Since it's all just static text, I don't really
need the whole Guile power of computed-file, so I've shortened it to:
--8<---------------cut here---------------start------------->8---
(define polkit-wheel
(file-union
"polkit-wheel"
`(("share/polkit-1/rules.d/wheel.rules"
,(plain-file
"wheel.rules"
"polkit.addAdminRule(function(action, subject) {
return [\"unix-group:wheel\"];
});
")))))
--8<---------------cut here---------------end--------------->8---
"guix system build" seems to return what I want with that. Strangely
enough plain-file does not like to build directories, so I had to use a
file-union here.
> Should we make that the default, BTW? It would seem to make sense as
> that’s the whole point of the “wheel” group.
>
> What do people think?
I'm probably biased as the author of this service, but I think it would
probably make sense to include it in %desktop-services. Perhaps we
could even add wheel.rules to polkit-service-type itself, although I'm
somewhat conflicted on that, as one could not opt out.
Regards,
Leo
next prev parent reply other threads:[~2019-11-17 17:52 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-09 14:40 Wheel group as polkit admins Leo Prikler
2019-11-17 16:46 ` Ludovic Courtès
2019-11-17 17:52 ` Leo Prikler [this message]
2019-11-23 17:17 ` Ludovic Courtès
2019-11-23 19:08 ` Leo Prikler
2019-11-26 10:17 ` Ludovic Courtès
2019-11-26 12:35 ` Leo Prikler
2019-11-30 22:51 ` Ludovic Courtès
2019-11-17 18:18 ` Marius Bakke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=329f03fbb1df8c78deaef37c06c5041b3504c15e.camel@student.tugraz.at \
--to=leo.prikler@student.tugraz.at \
--cc=guix-devel@gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.