Subject: [bug#64850] [PATCH 1/1] services: dhcp-client-configuration: Allow provision override

From: Alexey Abramov <[email-masked]>
Date: Tue, 25 Jul 2023 12:59:56 +0200

* gnu/services/networking.scm: Allow setting up provision to allow running
DHCP client and static network configuration simultaneously.
---
 gnu/services/networking.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 5657b141d9..dc75c2f59d 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -88,6 +88,7 @@ (define-module (gnu services networking)
             dhcp-client-configuration
             dhcp-client-configuration?
             dhcp-client-configuration-package
+            dhcp-client-configuration-provision
             dhcp-client-configuration-interfaces
             dhcp-client-configuration-shepherd-requirement
 
@@ -303,6 +304,8 @@ (define-record-type* <dhcp-client-configuration>
                 (default isc-dhcp))
   (shepherd-requirement dhcp-client-configuration-shepherd-requirement
                         (default '()))
+  (provision    dhcp-client-configuration-provision
+                (default '(networking)))
   (interfaces   dhcp-client-configuration-interfaces
                 (default 'all)))                  ;'all | list of strings
 
@@ -312,6 +315,7 @@ (define dhcp-client-shepherd-service
      (let ((package (dhcp-client-configuration-package config))
            (shepherd-requirement (dhcp-client-configuration-shepherd-requirement config))
            (interfaces (dhcp-client-configuration-interfaces config))
+           (provision (dhcp-client-configuration-provision config))
            (pid-file "/var/run/dhclient.pid"))
        (list (shepherd-service
               (documentation "Set up networking via DHCP.")
@@ -321,7 +325,7 @@ (define dhcp-client-shepherd-service
               ;; networking is unavailable, but also means that the interface is not up
               ;; yet when 'start' completes.  To wait for the interface to be ready, one
               ;; should instead monitor udev events.
-              (provision '(networking))
+              (provision provision)
 
               (start #~(lambda _
                          (define dhclient
-- 
2.40.1