Hi Maxim, Maxim Cournoyer writes: > Hi, > > Arnaud Daby-Seesaram 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