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

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 25 Jul 2023 16:48:20 -0400

Hi Bruno,

Bruno Victal <[email-masked]> writes:

> Hi Maxim,
>
> On 2023-05-05 19:28, Maxim Cournoyer wrote:
>> * gnu/services/audio.scm (mpd-shepherd-service): Register a new update action.
>> * doc/guix.texi (Audio Services): Document it.
>> ---
>>  doc/guix.texi          | 10 ++++++++++
>>  gnu/services/audio.scm | 11 +++++++++++
>>  2 files changed, 21 insertions(+)
>> 
>
> I've been looking at this part for the past few weeks in attempt to
> make it more robust and after countless hours, I'd advise against this
> (in its current form), reason being that this only works if your
> configuration happens to match the default values used by mpc.
>
> My attempts at getting the values from the configuration into
> something that mpc understands have been unsuccessful. Not only the
> decision “logic” of what values to pass is non-trivial, parsing the
> endpoints field has been so far a complete nightmare. (with interesting
> gems like IPv6 address formats that the daemon is happy to use yet
> mpc will reject)
>
> Having the proper hostname (and port) intelligently deduced from
> the endpoints field is a big minefield that is likely to end in
> unmaintainable spaghetti.
>
> Short of introducing additional fields like “internal-mpc-host” and
> “internal-mpc-port”, you could modify this to relay the
> 'environment-variables' field for mpc as well. (since it can make use
> of the MPD_HOST and MPD_PORT varibles if present)

Apologies if it's been a couple weeks, but was the above comment really
meant for patch 02/16 of this series ("services: mpd: Add an 'update'
action to trigger a database update.") ?  I don't see how they relate.

-- 
Thanks,
Maxim