the network interface.
@cindex DHCP, networking service
-@deffn {Scheme Procedure} dhcp-client-service [#:dhcp @var{isc-dhcp}]
-Return a service that runs @var{dhcp}, a Dynamic Host Configuration
-Protocol (DHCP) client, on all the non-loopback network interfaces.
-@end deffn
+@defvr {Scheme Variable} dhcp-client-service-type
+This is the type of services that run @var{dhcp}, a Dynamic Host Configuration
+Protocol (DHCP) client, on all the non-loopback network interfaces. Its value
+is the DHCP client package to use, @code{isc-dhcp} by default.
+@end defvr
@deffn {Scheme Procedure} dhcpd-service-type
This type defines a service that runs a DHCP daemon. To create a
A simple services setup for nginx with php can look like this:
@example
-(services (cons* (dhcp-client-service)
+(services (cons* (service dhcp-client-service-type)
(service php-fpm-service-type)
(service nginx-service-type
(nginx-server-configuration
static-networking-service-type)
#:export (%facebook-host-aliases
dhcp-client-service
+ dhcp-client-service-type
dhcpd-service-type
dhcpd-configuration
"-pf" #$pid-file ifaces))))
(and (zero? (cdr (waitpid pid)))
(read-pid-file #$pid-file)))))
- (stop #~(make-kill-destructor))))))
+ (stop #~(make-kill-destructor))))
+ isc-dhcp))
-(define* (dhcp-client-service #:key (dhcp isc-dhcp))
+(define* (dhcp-client-service #:key (dhcp isc-dhcp)) ;deprecated
"Return a service that runs @var{dhcp}, a Dynamic Host Configuration
Protocol (DHCP) client, on all the non-loopback network interfaces."
(service dhcp-client-service-type dhcp))
;; Add services to the baseline: a DHCP client and
;; an SSH server.
- (services (cons* (dhcp-client-service)
+ (services (cons* (service dhcp-client-service-type)
(service openssh-service-type
(openssh-configuration
(port-number 2222)))
;; Globally-installed packages.
(packages (cons* screen openssh %base-packages))
- (services (cons* (dhcp-client-service)
+ (services (cons* (service dhcp-client-service-type)
;; mingetty does not work on serial lines.
;; Use agetty with board-specific serial parameters.
(agetty-service
(name-service-switch %mdns-host-lookup-nss)
(services (cons* (avahi-service #:debug? #t)
(dbus-service)
- (dhcp-client-service) ;needed for multicast
+ (service dhcp-client-service-type) ;needed for multicast
;; Enable heavyweight debugging output.
(modify-services (operating-system-user-services
(define %memcached-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service memcached-service-type)))
(define* (run-memcached-test #:optional (port 11211))
(operating-system
(inherit
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service mongodb-service-type)))
(packages (cons* mongodb
%base-packages))))
(define %dicod-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service dicod-service-type
(dicod-configuration
(interfaces '("0.0.0.0"))
(define %opensmtpd-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service opensmtpd-service-type
(opensmtpd-configuration
(config-file
(define %exim-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service mail-aliases-service-type '())
(service exim-service-type
(exim-configuration
(define %dovecot-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(dovecot-service #:config
(dovecot-configuration
(disable-plaintext-auth? #f)
"Run a test of an OS running XMPP-SERVICE, which writes its PID to PID-FILE."
(define os
(marionette-operating-system
- (simple-operating-system (dhcp-client-service)
+ (simple-operating-system (service dhcp-client-service-type)
xmpp-service)
#:imported-modules '((gnu services herd))))
(define (run-bitlbee-test)
(define os
(marionette-operating-system
- (simple-operating-system (dhcp-client-service)
+ (simple-operating-system (service dhcp-client-service-type)
(service bitlbee-service-type
(bitlbee-configuration
(interface "0.0.0.0"))))
(define %prometheus-node-exporter-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service prometheus-node-exporter-service-type
(prometheus-node-exporter-configuration))))
(define %inetd-os
;; Operating system with 2 inetd services.
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service inetd-service-type
(inetd-configuration
(entries (list
(define os
(marionette-operating-system
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service inetd-service-type
(inetd-configuration
(entries (list
(services (cons*
(service rpcbind-service-type
(rpcbind-configuration))
- (dhcp-client-service)
+ (service dhcp-client-service-type)
%base-services))))
(define (run-nfs-test name socket)
;; Return operating system under test.
(let ((base-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service rsync-service-type))))
(operating-system
(inherit base-os)
When SFTP? is true, run an SFTP server test."
(define os
(marionette-operating-system
- (simple-operating-system (dhcp-client-service) ssh-service)
+ (simple-operating-system (service dhcp-client-service-type) ssh-service)
#:imported-modules '((gnu services herd)
(guix combinators))))
(define vm
;; Operating system under test.
(let ((base-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service cgit-service-type
(cgit-configuration
(nginx %cgit-configuration-nginx)))
(define %git-http-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service fcgiwrap-service-type)
(service nginx-service-type %git-nginx-configuration)
%test-repository-service))
(define %gitolite-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service openssh-service-type)
(service gitolite-service-type
(gitolite-configuration
(define %libvirt-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(dbus-service)
(polkit-service)
(service libvirt-service-type)))
(define %httpd-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service httpd-service-type
(httpd-configuration
(config
(define %nginx-os
;; Operating system under test.
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service nginx-service-type
(nginx-configuration
(log-directory "/var/log/nginx")
(define %varnish-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
;; Pretend to be a web server that serves %index.html-contents.
(service varnish-service-type
(varnish-configuration
(define %php-fpm-os
;; Operating system under test.
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service php-fpm-service-type)
(service nginx-service-type
(nginx-configuration
(define %hpcguix-web-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service hpcguix-web-service-type
(hpcguix-web-configuration
(specs %hpcguix-web-specs)))))
(define %tailon-os
;; Operating system under test.
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service tailon-service-type
(tailon-configuration
(config-file
(base file-append-base) ;<package> | <derivation> | ...
(suffix file-append-suffix)) ;list of strings
+(define (write-file-append file port)
+ (match file
+ (($ <file-append> base suffix)
+ (format port "#<file-append ~s ~s>" base
+ (string-join suffix)))))
+
+(set-record-type-printer! <file-append> write-file-append)
+
(define (file-append base . suffix)
"Return a <file-append> object that expands to the concatenation of BASE and
SUFFIX."
(operating-system
$OS_BASE
- (services (cons* (dhcp-client-service)
- (dhcp-client-service) ;twice!
+ (services (cons* (service dhcp-client-service-type)
+ (service dhcp-client-service-type) ;twice!
%base-services)))
EOF