Subject: bug#63082: closed (Re: bug#63082: [PATCH v3 10/16] services: mpd: Let Shepherd effect the user/group change.)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 26 Jul 2023 15:55:02 +0000

Your bug report

#63082: mpd defaul configuration does not work ('No database' error)

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
63082: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63082
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#63082: [PATCH v3 10/16] services: mpd: Let Shepherd effect the user/group change.
From: Maxim Cournoyer <[email-masked]>
To: Bruno Victal <[email-masked]>
Cc: Liliana Prikler <[email-masked]>, [email-masked]
Date: Wed, 26 Jul 2023 11:54:31 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

Bruno Victal <[email-masked]> writes:

> On 2023-05-05 19:29, Maxim Cournoyer wrote:
>> Relates to <https://issues.guix.gnu.org/63082>.
>> 
>> Quoting a MPD developer, regarding MPD's feature to switch user itself:
>> "that's legacy for the dark ages when proper service managers did not exist"
>> :-).
>> 
>> * gnu/services/audio.scm (mpd-serialize-user-account)
>> (mpd-serialize-user-group): Delete procedures.
>> * gnu/services/audio.scm (mpd-configuration) [user]: Do not serialize.
>> [group]: Likewise.
>> (mpd-shepherd-service): Provide the #:user, #:group and #:supplementary-groups
>> arguments.
>> (mympd-shepherd-service): Likewise, and remove the '--user' argument.
>> * doc/guix.texi (Audio Services): Update doc.
>> (mympd-configuration) [port]: Change default value to 8080.
>> [ssl-port]: Change default value to 443.
>> * gnu/tests/audio.scm (run-mympd-test): Adjust accordingly.
>> ---
>>  doc/guix.texi          | 12 +++++-----
>>  gnu/services/audio.scm | 52 +++++++++++++++++++++++++-----------------
>>  gnu/tests/audio.scm    |  4 ++--
>>  3 files changed, 39 insertions(+), 29 deletions(-)
>
> This contains a submarine change that isn't easily spotted from the
> commit message, that mympd is getting its default port changed and that
> it can no longer bind to privileged ports, since although mympd can
> start as root in order to bind to possibly privileged ports, it will
> explicitly refuse to continue running as root afterwards.
>
> I think we can have shepherd effect for mympd, but only if (and after)
> shepherd gets support for POSIX capabilities (CAP_NET_BIND_SERVICE) or
> a suitable way to specify that “yes, the program invoked by the service
> should have CAP_NET_BIND_SERVICE” is provided.

As mentioned before, I've let go of this commit for now (though that
means supplementary-groups on a user-account are not honored anymore)
and other commits touching the current group mechanism until we've
implemented support for POSIX capabilities as mentioned in
https://issues.guix.gnu.org/64862.

We can thus close this issue for now, keeping on mind that some bits
could be salvaged at a later time when 64862 is done.

-- 
Thanks,
Maxim

Subject: mpd defaul configuration does not work ('No database' error)
From: Maxim Cournoyer <[email-masked]>
To: bug-guix <[email-masked]>
Date: Tue, 25 Apr 2023 22:58:16 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

Our MPD service does not work out of the box.  Running under its default
'mpd' user, clients would get the following error attempting to update
its database, e.g. by running 'mpc update':

--8<---------------cut here---------------start------------->8---
MPD error: database
--8<---------------cut here---------------end--------------->8---

This particular problem was solved by adding the following field to my
mpd-configuration record (thanks to Bruno):

--8<---------------cut here---------------start------------->8---
                (database (mpd-plugin
                           (plugin "simple")
                           (extra-options
                            '((path . "/var/lib/mpd/database")
                              (cache-directory . "/var/cache/mpd")))))
--8<---------------cut here---------------end--------------->8---

and running

--8<---------------cut here---------------start------------->8---
mkdir /var/cache/mpd && chown mpd:users /var/cache/mpd
--8<---------------cut here---------------end--------------->8---

Now the above error is gone, but I do not hear any audio coming out, so
there seems to be another problem.

I'm opening this ticket so that we can document and resolve all these
issues in the configuration, so that hopefully our mpd system service
can work out of the box.

-- 
Thanks,
Maxim