services: Rename 'dmd' services to 'shepherd'.
[jackhill/guix/guix.git] / gnu / services / networking.scm
index 0c54512..5a0a211 100644 (file)
@@ -19,7 +19,7 @@
 
 (define-module (gnu services networking)
   #:use-module (gnu services)
-  #:use-module (gnu services dmd)
+  #:use-module (gnu services shepherd)
   #:use-module (gnu services dbus)
   #:use-module (gnu system shadow)
   #:use-module (gnu system pam)
@@ -98,7 +98,7 @@ fe80::1%lo0 apps.facebook.com\n")
   (net-tools static-networking-net-tools))
 
 (define static-networking-service-type
-  (dmd-service-type
+  (shepherd-service-type
    'static-networking
    (match-lambda
      (($ <static-networking> interface ip gateway provision
@@ -107,7 +107,7 @@ fe80::1%lo0 apps.facebook.com\n")
 
         ;; TODO: Eventually replace 'route' with bindings for the appropriate
         ;; ioctls.
-        (dmd-service
+        (shepherd-service
 
          ;; Unless we're providing the loopback interface, wait for udev to be up
          ;; and running so that INTERFACE is actually usable.
@@ -171,7 +171,7 @@ gateway."
                               (net-tools net-tools))))
 
 (define dhcp-client-service-type
-  (dmd-service-type
+  (shepherd-service-type
    'dhcp-client
    (lambda (dhcp)
      (define dhclient
@@ -180,7 +180,7 @@ gateway."
      (define pid-file
        "/var/run/dhclient.pid")
 
-     (dmd-service
+     (shepherd-service
       (documentation "Set up networking via DHCP.")
       (requirement '(user-processes udev))
 
@@ -248,7 +248,7 @@ Protocol (DHCP) client, on all the non-loopback network interfaces."
             (default ntp))
   (servers  ntp-configuration-servers))
 
-(define ntp-dmd-service
+(define ntp-shepherd-service
   (match-lambda
     (($ <ntp-configuration> ntp servers)
      (let ()
@@ -271,7 +271,7 @@ restrict -6 ::1\n"))
        (define ntpd.conf
          (plain-file "ntpd.conf" config))
 
-       (list (dmd-service
+       (list (shepherd-service
               (provision '(ntpd))
               (documentation "Run the Network Time Protocol (NTP) daemon.")
               (requirement '(user-processes networking))
@@ -292,8 +292,8 @@ restrict -6 ::1\n"))
 (define ntp-service-type
   (service-type (name 'ntp)
                 (extensions
-                 (list (service-extension dmd-root-service-type
-                                          ntp-dmd-service)
+                 (list (service-extension shepherd-root-service-type
+                                          ntp-shepherd-service)
                        (service-extension account-service-type
                                           (const %ntp-accounts))))))
 
@@ -351,12 +351,13 @@ keep the system clock synchronized with that of @var{servers}."
               (display "\
 # The beginning was automatically added.
 User tor
+DataDirectory /var/lib/tor
 Log notice syslog\n" port)
 
               (for-each (match-lambda
                           ((service (ports hosts) ...)
                            (format port "\
-HiddenServiceDir /var/lib/tor/~a~%"
+HiddenServiceDir /var/lib/tor/hidden-services/~a~%"
                                    service)
                            (for-each (lambda (tcp-port host)
                                        (format port "\
@@ -375,12 +376,12 @@ HiddenServicePort ~a ~a~%"
               #t)))
       #:modules '((guix build utils))))))
 
-(define (tor-dmd-service config)
-  "Return a <dmd-service> running TOR."
+(define (tor-shepherd-service config)
+  "Return a <shepherd-service> running TOR."
   (match config
     (($ <tor-configuration> tor)
      (let ((torrc (tor-configuration->torrc config)))
-       (list (dmd-service
+       (list (shepherd-service
               (provision '(tor))
 
               ;; Tor needs at least one network interface to be up, hence the
@@ -397,16 +398,22 @@ HiddenServicePort ~a ~a~%"
   #~(begin
       (use-modules (guix build utils))
 
+      (define %user
+        (getpw "tor"))
+
       (define (initialize service)
-        (let ((directory (string-append "/var/lib/tor/"
-                                        service))
-              (user      (getpw "tor")))
+        (let ((directory (string-append "/var/lib/tor/hidden-services/"
+                                        service)))
           (mkdir-p directory)
-          (chown directory (passwd:uid user) (passwd:gid user))
+          (chown directory (passwd:uid %user) (passwd:gid %user))
 
           ;; The daemon bails out if we give wider permissions.
           (chmod directory #o700)))
 
+      (mkdir-p "/var/lib/tor")
+      (chown "/var/lib/tor" (passwd:uid %user) (passwd:gid %user))
+      (chmod "/var/lib/tor" #o700)
+
       (for-each initialize
                 '#$(map hidden-service-name
                         (tor-configuration-hidden-services config)))))
@@ -414,8 +421,8 @@ HiddenServicePort ~a ~a~%"
 (define tor-service-type
   (service-type (name 'tor)
                 (extensions
-                 (list (service-extension dmd-root-service-type
-                                          tor-dmd-service)
+                 (list (service-extension shepherd-root-service-type
+                                          tor-shepherd-service)
                        (service-extension account-service-type
                                           (const %tor-accounts))
                        (service-extension activation-service-type
@@ -462,8 +469,8 @@ and lines for hidden services added via @code{tor-hidden-service}.  Run
 In this example, port 22 of the hidden service is mapped to local port 22, and
 port 80 is mapped to local port 8080.
 
-This creates a @file{/var/lib/tor/@var{name}} directory, where the
-@file{hostname} file contains the @code{.onion} host name for the hidden
+This creates a @file{/var/lib/tor/hidden-services/@var{name}} directory, where
+the @file{hostname} file contains the @code{.onion} host name for the hidden
 service.
 
 See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the Tor
@@ -485,7 +492,7 @@ project's documentation} for more information."
   (port bitlbee-configuration-port)
   (extra-settings bitlbee-configuration-extra-settings))
 
-(define bitlbee-dmd-service
+(define bitlbee-shepherd-service
   (match-lambda
     (($ <bitlbee-configuration> bitlbee interface port extra-settings)
      (let ((conf (plain-file "bitlbee.conf"
@@ -497,7 +504,7 @@ project's documentation} for more information."
   DaemonPort = " (number->string port) "
 " extra-settings))))
 
-       (list (dmd-service
+       (list (shepherd-service
               (provision '(bitlbee))
               (requirement '(user-processes loopback))
               (start #~(make-forkexec-constructor
@@ -530,8 +537,8 @@ project's documentation} for more information."
 (define bitlbee-service-type
   (service-type (name 'bitlbee)
                 (extensions
-                 (list (service-extension dmd-root-service-type
-                                          bitlbee-dmd-service)
+                 (list (service-extension shepherd-root-service-type
+                                          bitlbee-shepherd-service)
                        (service-extension account-service-type
                                           (const %bitlbee-accounts))
                        (service-extension activation-service-type
@@ -572,9 +579,9 @@ configuration file."
           (copy-file (string-append #$wicd file-name)
                      file-name)))))
 
-(define (wicd-dmd-service wicd)
-  "Return a dmd service for WICD."
-  (list (dmd-service
+(define (wicd-shepherd-service wicd)
+  "Return a shepherd service for WICD."
+  (list (shepherd-service
          (documentation "Run the Wicd network manager.")
          (provision '(networking))
          (requirement '(user-processes dbus-system loopback))
@@ -586,8 +593,8 @@ configuration file."
 (define wicd-service-type
   (service-type (name 'wicd)
                 (extensions
-                 (list (service-extension dmd-root-service-type
-                                          wicd-dmd-service)
+                 (list (service-extension shepherd-root-service-type
+                                          wicd-shepherd-service)
                        (service-extension dbus-root-service-type
                                           list)
                        (service-extension activation-service-type
@@ -617,9 +624,9 @@ and @command{wicd-curses} user interfaces."
       (use-modules (guix build utils))
       (mkdir-p "/etc/NetworkManager/system-connections")))
 
-(define (network-manager-dmd-service network-manager)
-  "Return a dmd service for NETWORK-MANAGER."
-  (list (dmd-service
+(define (network-manager-shepherd-service network-manager)
+  "Return a shepherd service for NETWORK-MANAGER."
+  (list (shepherd-service
          (documentation "Run the NetworkManager.")
          (provision '(networking))
          (requirement '(user-processes dbus-system loopback))
@@ -632,8 +639,8 @@ and @command{wicd-curses} user interfaces."
 (define network-manager-service-type
   (service-type (name 'network-manager)
                 (extensions
-                 (list (service-extension dmd-root-service-type
-                                          network-manager-dmd-service)
+                 (list (service-extension shepherd-root-service-type
+                                          network-manager-shepherd-service)
                        (service-extension dbus-root-service-type list)
                        (service-extension activation-service-type
                                           (const %network-manager-activation))