diff mbox series

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

Message ID 20230725105956.17963-1-levenson@mmer.org
State New
Headers show
Series Provide a way to use multiple dhcp clients with static-networking | expand

Commit Message

Alexey Abramov July 25, 2023, 10:59 a.m. UTC
* 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(-)

Comments

Ludovic Courtès Sept. 17, 2023, 1:06 p.m. UTC | #1
Hi,

Alexey Abramov <levenson@mmer.org> skribis:

> * 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)))

I changed the field name to ‘shepherd-provision’ for consistency and
documented it in ‘doc/guix.texi’.  Committed!

Thanks,
Ludo’.
diff mbox series

Patch

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