This is an automated email from the git hooks/post-receive script.

vagrantc pushed a commit to branch master
in repository guix.

The following commit(s) were added to refs/heads/master by this push:
     new a1e87abaa3 services: network-manager: Handle existing configuration 
directory.
a1e87abaa3 is described below

commit a1e87abaa364f8391cfd1f49bb01876f7a730bfb
Author: 45mg <[email protected]>
AuthorDate: Sun Mar 2 23:59:49 2025 +0530

    services: network-manager: Handle existing configuration directory.
    
    * gnu/services/networking.scm (network-manager-activation):
    Handle the case where /etc/NetworkManager/conf.d already exists.
    
    Change-Id: I7af4f4ad226eef28bd8667f0708525e77a6a50c8
    Signed-off-by: Vagrant Cascadian <[email protected]>
---
 gnu/services/networking.scm | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 85ad5287f2..67653e2cbf 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -1432,7 +1432,18 @@ project's documentation} for more information."
                '((mkdir-p "/var/lib/misc"))
                '())
         #$@(if (pair? extra-configuration-files)  ;if non-empty
-               `((symlink
+               ;; If /etc/NetworkManager/conf.d is a symlink to a store file,
+               ;; delete it.
+               `((if (and (file-exists? "/etc/NetworkManager/conf.d")
+                          (store-file-name?
+                           (canonicalize-path "/etc/NetworkManager/conf.d")))
+                     (delete-file-recursively
+                      "/etc/NetworkManager/conf.d"))
+                 ;; If it exists but is not a symlink to a store file, then
+                 ;; this will fail with EEXIST; we leave this for the user to
+                 ;; handle, since they probably created the directory
+                 ;; themselves.
+                 (symlink
                   ,(file-union "network-manager-configuration-directory"
                                extra-configuration-files)
                   "/etc/NetworkManager/conf.d"))

Reply via email to