all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Liliana Marie Prikler <liliana.prikler@gmail.com>
Cc: 63082@debbugs.gnu.org
Subject: bug#63082: [PATCH 04/17] services: mpd: Obsolete the 'group' field.
Date: Sun, 30 Apr 2023 21:07:41 -0400	[thread overview]
Message-ID: <87zg6o7tb6.fsf@gmail.com> (raw)
In-Reply-To: <652275711a94ce83399f8e79d545fbbe230ee824.camel@gmail.com> (Liliana Marie Prikler's message of "Sun, 30 Apr 2023 00:07:26 +0200")

Hi Liliana,

Liliana Marie Prikler <liliana.prikler@gmail.com> writes:

> Am Samstag, dem 29.04.2023 um 13:16 -0400 schrieb Maxim Cournoyer:
>> This means we do not have to expose user-accounts at the
>> <mpd-configuration>, which is not the right place for that anyway;
>> it's already exposed via the users/groups fields of the <operating-
>> system> record.
>>
>> That's much easier to reason with, for both humans and the code, in
>> my opinion.
> We have the tools to make this meaningful with user-accounts already –
> we've had them for some while in fact.
>
> (operating-system
>   ...
>   (users (cons* alice bob mpd %base-user-accounts))
>   (services (cons* (mpd-service (user (find mpd-user? users)))
>                    %base-services))
>   ...)
>
> is a perfectly fine configuration given concrete values for alice, bob,
> and mpd with mpd-user? matching the MPD user account by name.  The
> point in providing user-accounts in the MPD service is so that the
> right thing is done w.r.t. account creation regardless of whether the
> user exists in users or not.  In the former case, it is checked that
> definitions match (using pointer identity), in the latter the user is
> automatically added.  "I will assume that a user by this name exists
> even if it does not" is a recipe for shooting oneself in the knee.

I agree looks nice "on paper", but in practice, I was confronted with
the following problem, which is enough annoying to make me want to go
back to the simpler string contract:

A <user-account> record encodes a lossy version of a <user-group> as a
string, as its 'group' field.  This way of specifying a group implies it
already exist, since it doesn't capture all the <user-group> details,
e.g.: is it a system group or not?

In the current mpd-configuration, to use my own user, I must also
provide the matching group as a <user-group> record, even if
e.g. 'users' is something I've never created myself and don't really
have a clue as to how it was defined without looking at the source, yet
it's important that it matches the original definition otherwise I'd
have two same-named groups differing only subtly, which would introduce
issues probably harder to diagnose than "sorry, no such group!"

One way that seems like it'd solve it is to make the group field of a
<user-account> accept a <user-group>; then the user object would be
self-contained as far as extending user-accounts goes; the API becomes a
bit more obtuse though, especially when you simply want to specify a
group known to exist ('users', 'audio', 'netdev', etc.).  We'd probably
now need to export %users-group, %audio-group, etc. to make this API a
bit more manageable/convenient.

-- 
Thanks,
Maxim




  reply	other threads:[~2023-05-01  9:14 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-26  2:58 bug#63082: mpd defaul configuration does not work ('No database' error) Maxim Cournoyer
2023-04-26  3:11 ` Maxim Cournoyer
2023-04-26 18:28   ` Liliana Marie Prikler
2023-04-28 14:26 ` bug#63082: [PATCH 00/17] Improve out-of-the-box experience with mpd-service-type Maxim Cournoyer
2023-04-28 14:26   ` bug#63082: [PATCH 01/17] services: mpd: Add an 'update' action to trigger a database update Maxim Cournoyer
2023-04-28 14:26   ` bug#63082: [PATCH 02/17] services: mpd: Streamline mpd-user-sanitizer and mympd-user-sanitizer Maxim Cournoyer
2023-04-28 14:26   ` bug#63082: [PATCH 03/17] services: mpd: Rename %set-user-group to set-user-group Maxim Cournoyer
2023-04-28 14:26   ` bug#63082: [PATCH 04/17] services: mpd: Obsolete the 'group' field Maxim Cournoyer
2023-04-28 21:50     ` Bruno Victal
2023-04-29  1:15       ` Maxim Cournoyer
2023-04-29 12:12         ` Bruno Victal
2023-04-29 17:12           ` Maxim Cournoyer
2023-04-29  6:26     ` Liliana Marie Prikler
2023-04-29  6:35       ` Liliana Marie Prikler
2023-04-29 17:09         ` Maxim Cournoyer
2023-04-29 17:16         ` Maxim Cournoyer
2023-04-29 22:07           ` Liliana Marie Prikler
2023-05-01  1:07             ` Maxim Cournoyer [this message]
2023-05-01  6:13               ` Liliana Marie Prikler
2023-05-03  1:53                 ` Maxim Cournoyer
2023-04-28 14:26   ` bug#63082: [PATCH 05/17] services: mpd: List log-level in decreasing verbosity order in doc Maxim Cournoyer
2023-04-28 14:26   ` bug#63082: [PATCH 06/17] services: mympd: Fix log file name Maxim Cournoyer
2023-04-28 21:53     ` Bruno Victal
2023-04-29  1:49       ` Maxim Cournoyer
2023-04-29  1:56         ` Bruno Victal
2023-04-28 14:27   ` bug#63082: [PATCH 07/17] services: mpd: Log to syslog by default Maxim Cournoyer
2023-04-28 22:02     ` Bruno Victal
2023-04-29 16:06       ` Maxim Cournoyer
2023-04-28 14:27   ` bug#63082: [PATCH 08/17] services: mpd: Only rotate log when a log file is specified Maxim Cournoyer
2023-04-28 14:27   ` bug#63082: [PATCH 09/17] services: mpd: Let Shepherd effect the user/group change Maxim Cournoyer
2023-04-28 22:11     ` Bruno Victal
2023-04-29 16:52       ` Maxim Cournoyer
2023-04-28 14:27   ` bug#63082: [PATCH 10/17] system: accounts: Export <user-account> Maxim Cournoyer
2023-04-28 14:27   ` bug#63082: [PATCH 11/17] services: mpd: Warn when the MPD user is not in the "audio" group Maxim Cournoyer
2023-04-29  6:29     ` Liliana Marie Prikler
2023-04-29 17:10       ` Maxim Cournoyer
2023-04-28 14:27   ` bug#63082: [PATCH 12/17] services: mpd: Auto-detect mpd-output mixer type by default Maxim Cournoyer
2023-04-28 14:27   ` bug#63082: [PATCH 13/17] services: mpd: Fix indentation Maxim Cournoyer
2023-04-28 14:27   ` bug#63082: [PATCH 14/17] services: mpd: Obsolete 'environment-variables' field Maxim Cournoyer
2023-04-28 22:17     ` Bruno Victal
2023-04-29 17:04       ` Maxim Cournoyer
2023-04-29 17:23         ` Bruno Victal
2023-05-03  1:44           ` Maxim Cournoyer
2023-05-04 16:21             ` Bruno Victal
2023-05-05 14:44               ` Maxim Cournoyer
2023-04-28 14:27   ` bug#63082: [PATCH 15/17] services: mpd: Provision a default cache directory and set HOME Maxim Cournoyer
2023-04-28 22:22     ` Bruno Victal
2023-04-29 17:07       ` Maxim Cournoyer
2023-04-28 14:27   ` bug#63082: [PATCH 16/17] services: mpd: Update basic example Maxim Cournoyer
2023-04-28 14:27   ` bug#63082: [PATCH 17/17] services: Avoid 'delete' overrides warning in audio module Maxim Cournoyer
2023-04-29 17:21 ` bug#63082: [PATCH v2 00/16] Improve out-of-the-box experience with mpd-service-type Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 01/16] services: mpd: Add an 'update' action to trigger a database update Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 02/16] services: mpd: Streamline mpd-user-sanitizer and mympd-user-sanitizer Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 03/16] services: mpd: Rename %set-user-group to set-user-group Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 04/16] services: mpd: Obsolete the 'group' field Maxim Cournoyer
2023-05-05  0:38     ` Bruno Victal
2023-05-05 15:09       ` bug#63082: mpd defaul configuration does not work ('No database' error) Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 05/16] services: mpd: List log-level in decreasing verbosity order in doc Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 06/16] services: mpd; Refactor start slot directory initialization Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 07/16] services: mpd: Log to syslog by default Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 08/16] services: mpd: Do not rotate logs when using syslog Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 09/16] services: mpd: Let Shepherd effect the user/group change Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 10/16] system: accounts: Export <user-account> Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 11/16] services: mpd: Warn when the MPD user is not in the "audio" group Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 12/16] services: mpd: Auto-detect mpd-output mixer type by default Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 13/16] services: mpd: Obsolete 'environment-variables' field Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 14/16] services: mpd: Provision a default cache directory and set HOME Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 15/16] services: mpd: Update basic example Maxim Cournoyer
2023-04-29 17:21   ` bug#63082: [PATCH v2 16/16] services: Avoid 'delete' overrides warning in audio module Maxim Cournoyer
2023-05-05 18:28 ` bug#63082: [PATCH v3 00/16] Improve out-of-the-box experience with mpd-service-type Maxim Cournoyer
2023-05-05 18:28   ` bug#63082: [PATCH v3 01/16] services: mpd: Add auto-update? field to mpd-configuration Maxim Cournoyer
2023-05-05 18:28   ` bug#63082: [PATCH v3 02/16] services: mpd: Add an 'update' action to trigger a database update Maxim Cournoyer
2023-05-24 16:00     ` Bruno Victal
2023-07-25 20:48       ` bug#63082: mpd defaul configuration does not work ('No database' error) Maxim Cournoyer
2023-07-26 14:02         ` Bruno Victal
2023-07-26 16:12           ` Maxim Cournoyer
2023-05-05 18:28   ` bug#63082: [PATCH v3 03/16] services: mpd: Streamline mpd-user-sanitizer and mympd-user-sanitizer Maxim Cournoyer
2023-05-05 18:28   ` bug#63082: [PATCH v3 04/16] services: mpd: Rename %set-user-group to set-user-group Maxim Cournoyer
2023-05-05 19:42     ` Liliana Marie Prikler
2023-05-07  2:37       ` Maxim Cournoyer
2023-05-24 16:09     ` Bruno Victal
2023-05-05 18:29   ` bug#63082: [PATCH v3 05/16] services: mpd: Obsolete the 'group' field Maxim Cournoyer
2023-05-05 19:51     ` Liliana Marie Prikler
2023-05-07  2:55       ` Maxim Cournoyer
2023-05-07  5:35         ` Liliana Marie Prikler
2023-05-07 18:12           ` Maxim Cournoyer
2023-05-07 18:31             ` Liliana Marie Prikler
2023-05-08  1:05               ` Maxim Cournoyer
2023-05-08 17:21                 ` Liliana Marie Prikler
2023-05-05 18:29   ` bug#63082: [PATCH v3 06/16] services: mpd: List log-level in decreasing verbosity order in doc Maxim Cournoyer
2023-05-05 18:29   ` bug#63082: [PATCH v3 07/16] services: mpd; Refactor start slot directory initialization Maxim Cournoyer
2023-05-24 16:26     ` Bruno Victal
2023-07-25 20:07       ` bug#63082: mpd defaul configuration does not work ('No database' error) Maxim Cournoyer
2023-05-05 18:29   ` bug#63082: [PATCH v3 08/16] services: mpd: Log to syslog by default Maxim Cournoyer
2023-05-05 18:29   ` bug#63082: [PATCH v3 09/16] services: mpd: Do not rotate logs when using syslog Maxim Cournoyer
2023-05-05 18:29   ` bug#63082: [PATCH v3 10/16] services: mpd: Let Shepherd effect the user/group change Maxim Cournoyer
2023-05-24 16:41     ` Bruno Victal
2023-07-25 19:39       ` bug#63082: mpd defaul configuration does not work ('No database' error) Maxim Cournoyer
2023-07-26 15:54       ` bug#63082: [PATCH v3 10/16] services: mpd: Let Shepherd effect the user/group change Maxim Cournoyer
2023-05-05 18:29   ` bug#63082: [PATCH v3 11/16] system: accounts: Export <user-account> Maxim Cournoyer
2023-05-05 18:29   ` bug#63082: [PATCH v3 12/16] services: mpd: Warn when the MPD user is not in the "audio" group Maxim Cournoyer
2023-05-05 18:29   ` bug#63082: [PATCH v3 13/16] services: mpd: Auto-detect mpd-output mixer type by default Maxim Cournoyer
2023-05-05 18:29   ` bug#63082: [PATCH v3 14/16] services: mpd: Provision a default cache directory and set HOME Maxim Cournoyer
2023-05-05 18:29   ` bug#63082: [PATCH v3 15/16] services: mpd: Update basic example Maxim Cournoyer
2023-05-05 18:29   ` bug#63082: [PATCH v3 16/16] services: Avoid 'delete' overrides warning in audio module Maxim Cournoyer

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=87zg6o7tb6.fsf@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=63082@debbugs.gnu.org \
    --cc=liliana.prikler@gmail.com \
    /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.