Subject: [bug#75145] [PATCH v2 0/1] services: network-manager: Add extra-configuration-files field.

From: Arnaud Daby-Seesaram <[email-masked]>
Date: Tue, 21 Jan 2025 09:36:41 +0100

Hi Maxim,

Maxim Cournoyer <[email-masked]> writes:
> Hi,
>
> Arnaud Daby-Seesaram <[email-masked]> writes:
>
> [...]
>
>>> When we use `etc-service-type`, "/etc/NetworkManager" becomes a symlink
>>> to "/etc/static/NetworkManager"; and "/etc/static" is a symlink to the
>>> result of building the derivation returned by `etc-entry` (see (gnu
>>> services)). And derivations are in the store, which is read-only. So we
>>> can't create "/etc/NetworkManager/system-connections/". And this won't
>>> do, since NetworkManager itself needs to be able to write to that
>>> directory to manage saved connections.
>>>
>>> So it looks like that won't work.
>>
>> That is unfortunate; thank you for trying it out!
>>
>> Re-reading your patch and the implementation of `etc-service-type',
>> maybe `network-manager-configuration-directory' could be replaced by
>> `file-union' defined in `(guix gexp)', WDYT?
>>
>> Otherwise, your patch seems good to me :).  I will let others comment
>> and give their opinion.
>
> A file-union also result in a read-only directory in the store, so if
> NetworkManager needs write access to that location, that also wouldn't
> work.

Sorry, I was imprecise.

NetworkManager needs to write to /etc/NetworkManager/system-connections
The issue with extending etc-service-type was that "/etc/NetworkManager"
became a link to the store, and thus system-connections could no longer
be created/written to.

However, the configuration directory is /etc/NetworkManager/conf.d .

What I was proposing was to use file-union to create the configuration
directory (in the store) and symlink it to /etc/NetworkManager/conf.d .

This is close to what the patch already does.  I merely suggested to
replace a homemade function by a function of (guix gexp):
network-manager-configuration-directory and file-union do a similar job
if I read them correctly.

Best regards,

-- 
Arnaud