~ruther/guix-local

66df3296c4a8012c745c792cd95edfe2aad81031 — 45mg 1 year, 4 months ago f8513ce
services: dnsmasq: Allow custom Shepherd provision

Allow users to have multiple dnsmasq instances by specifying different
`provision` values for the corresponding Shepherd services, similar to
what is done with `static-networking-service-type`.

* gnu/services/dns.scm (<dnsmasq-configuration>)[provision]: new option.
(dnsmasq-shepherd-service): Use supplied provision value.
* doc/guix.texi (DNS Services)[dnsmasq-configuration]: Document it.

Change-Id: I78c7f015cb1db239a600bc5373b2fd80e8b9b9f4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2 files changed, 7 insertions(+), 1 deletions(-)

M doc/guix.texi
M gnu/services/dns.scm
M doc/guix.texi => doc/guix.texi +4 -0
@@ 34169,6 34169,10 @@ Data type representing the configuration of dnsmasq.
@item @code{package} (default: @var{dnsmasq})
Package object of the dnsmasq server.

@item @code{provision} (default: @code{'(dnsmasq)})
A list of symbols for the Shepherd service corresponding to this dnsmasq
configuration.

@item @code{no-hosts?} (default: @code{#f})
When true, don't read the hostnames in /etc/hosts.


M gnu/services/dns.scm => gnu/services/dns.scm +3 -1
@@ 731,6 731,8 @@ cache.size = 100 * MB
  dnsmasq-configuration?
  (package          dnsmasq-configuration-package
                    (default dnsmasq))  ;file-like
  (provision        dnsmasq-provision
                    (default '(dnsmasq)))
  (no-hosts?        dnsmasq-configuration-no-hosts?
                    (default #f))       ;boolean
  (port             dnsmasq-configuration-port


@@ 802,7 804,7 @@ cache.size = 100 * MB
     tftp-lowercase? tftp-port-range
     tftp-root tftp-unique-root extra-options)
    (shepherd-service
     (provision '(dnsmasq))
     (provision (dnsmasq-provision config))
     (requirement '(networking))
     (documentation "Run the dnsmasq DNS server.")
     (start #~(make-forkexec-constructor