diff options
author | Marius Bakke <mbakke@fastmail.com> | 2019-01-13 01:40:04 +0100 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2019-01-13 01:40:04 +0100 |
commit | 6764f94317be05d2c3b08acdcbb2c4730f0c617d (patch) | |
tree | adcfd0000cbe9a8c614181e39d7cbe7f1e1bc164 /gnu/services | |
parent | 67ff2bdf6100cc887b0d5aebbcd1f539c634a3dc (diff) | |
parent | 1710ffa4c79c79079ebd4e523eef8883eb2d3953 (diff) |
Merge branch 'master' into staging
Diffstat (limited to 'gnu/services')
-rw-r--r-- | gnu/services/base.scm | 21 | ||||
-rw-r--r-- | gnu/services/docker.scm | 102 | ||||
-rw-r--r-- | gnu/services/mcron.scm | 6 | ||||
-rw-r--r-- | gnu/services/messaging.scm | 10 | ||||
-rw-r--r-- | gnu/services/networking.scm | 20 | ||||
-rw-r--r-- | gnu/services/xorg.scm | 37 |
6 files changed, 161 insertions, 35 deletions
diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 67bdaef18c..8395a856fc 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> @@ -25,6 +25,7 @@ (define-module (gnu services base) #:use-module (guix store) + #:use-module (guix deprecation) #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (gnu system pam) @@ -614,8 +615,9 @@ file systems, as well as corresponding @file{/etc/fstab} entries."))) generator (RNG) with the value recorded when the system was last shut down."))) -(define (urandom-seed-service) ;deprecated - (service urandom-seed-service-type #f)) +(define-deprecated (urandom-seed-service) + urandom-seed-service-type + (service urandom-seed-service-type)) ;;; @@ -1686,7 +1688,9 @@ failed to register public key '~a': ~a~%" key status))))))) (description "Run the build daemon of GNU@tie{}Guix, aka. @command{guix-daemon}."))) -(define* (guix-service #:optional (config %default-guix-configuration)) +(define-deprecated (guix-service #:optional + (config %default-guix-configuration)) + guix-service-type "Return a service that runs the Guix build daemon according to @var{config}." (service guix-service-type config)) @@ -1787,7 +1791,9 @@ failed to register public key '~a': ~a~%" key status))))))) "Add a Shepherd service running @command{guix publish}, a command that allows you to share pre-built binaries with others over HTTP."))) -(define* (guix-publish-service #:key (guix guix) (port 80) (host "localhost")) +(define-deprecated (guix-publish-service #:key (guix guix) + (port 80) (host "localhost")) + guix-publish-service-type "Return a service that runs @command{guix publish} listening on @var{host} and @var{port} (@pxref{Invoking guix publish}). @@ -2078,8 +2084,9 @@ command-line options. GPM allows users to use the mouse in the console, notably to select, copy, and paste text. The default options use the @code{ps2} protocol, which works for both USB and PS/2 mice."))) -(define* (gpm-service #:key (gpm gpm) ;deprecated - (options %default-gpm-options)) +(define-deprecated (gpm-service #:key (gpm gpm) + (options %default-gpm-options)) + gpm-service-type "Run @var{gpm}, the general-purpose mouse daemon, with the given command-line @var{options}. GPM allows users to use the mouse in the console, notably to select, copy, and paste text. The default value of @var{options} diff --git a/gnu/services/docker.scm b/gnu/services/docker.scm new file mode 100644 index 0000000000..09fe3cc1c3 --- /dev/null +++ b/gnu/services/docker.scm @@ -0,0 +1,102 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services docker) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu services base) + #:use-module (gnu services dbus) + #:use-module (gnu services shepherd) + #:use-module (gnu system shadow) + #:use-module (gnu packages docker) + #:use-module (guix records) + #:use-module (guix gexp) + #:use-module (guix packages) + + #:export (docker-configuration + docker-service-type)) + +(define-configuration docker-configuration + (docker + (package docker) + "Docker daemon package.") + (containerd + (package containerd) + "containerd package.")) + +(define %docker-accounts + (list (user-group (name "docker") (system? #t)))) + +(define (%containerd-activation config) + (let ((state-dir "/var/lib/containerd")) + #~(begin + (use-modules (guix build utils)) + (mkdir-p #$state-dir)))) + +(define (%docker-activation config) + (%containerd-activation config) + (let ((state-dir "/var/lib/docker")) + #~(begin + (use-modules (guix build utils)) + (mkdir-p #$state-dir)))) + +(define (containerd-shepherd-service config) + (let* ((package (docker-configuration-containerd config))) + (shepherd-service + (documentation "containerd daemon.") + (provision '(containerd)) + (start #~(make-forkexec-constructor + (list (string-append #$package "/bin/containerd")) + #:log-file "/var/log/containerd.log")) + (stop #~(make-kill-destructor))))) + +(define (docker-shepherd-service config) + (let* ((docker (docker-configuration-docker config))) + (shepherd-service + (documentation "Docker daemon.") + (provision '(dockerd)) + (requirement '(containerd + file-system-/sys/fs/cgroup/blkio + file-system-/sys/fs/cgroup/cpu + file-system-/sys/fs/cgroup/cpuset + file-system-/sys/fs/cgroup/devices + file-system-/sys/fs/cgroup/memory + ; TODO: file-system-/sys/fs/cgroup/pids + )) + (start #~(make-forkexec-constructor + (list (string-append #$docker "/bin/dockerd") + "-p" "/var/run/docker.pid") + #:pid-file "/var/run/docker.pid" + #:log-file "/var/log/docker.log")) + (stop #~(make-kill-destructor))))) + +(define docker-service-type + (service-type (name 'docker) + (description "Provide capability to run Docker application +bundles in Docker containers.") + (extensions + (list + (service-extension activation-service-type + %docker-activation) + (service-extension shepherd-root-service-type + (lambda (config) + (list (containerd-shepherd-service config) + (docker-shepherd-service config)))) + (service-extension account-service-type + (const %docker-accounts)))) + (default-value (docker-configuration)))) diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm index 120b663e3e..e4b652b3d4 100644 --- a/gnu/services/mcron.scm +++ b/gnu/services/mcron.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +21,7 @@ #:use-module (gnu services base) #:use-module (gnu services shepherd) #:autoload (gnu packages guile) (mcron) + #:use-module (guix deprecation) #:use-module (guix records) #:use-module (guix gexp) #:use-module (srfi srfi-1) @@ -142,7 +143,8 @@ files." jobs))))) (default-value (mcron-configuration)))) ;empty job list -(define* (mcron-service jobs #:optional (mcron mcron)) +(define-deprecated (mcron-service jobs #:optional (mcron mcron)) + mcron-service-type "Return an mcron service running @var{mcron} that schedules @var{jobs}, a list of gexps denoting mcron job specifications. diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index 92f86a1b83..e70f1b70ef 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> -;;; Copyright © 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr> ;;; ;;; This file is part of GNU Guix. @@ -32,6 +32,7 @@ #:use-module (guix modules) #:use-module (guix records) #:use-module (guix packages) + #:use-module (guix deprecation) #:use-module (srfi srfi-1) #:use-module (srfi srfi-35) #:use-module (ice-9 match) @@ -882,9 +883,10 @@ string, you could instantiate a prosody service like this: "Run @url{http://bitlbee.org,BitlBee}, a daemon that acts as a gateway between IRC and chat networks."))) -(define* (bitlbee-service #:key (bitlbee bitlbee) ;deprecated - (interface "127.0.0.1") (port 6667) - (extra-settings "")) +(define-deprecated (bitlbee-service #:key (bitlbee bitlbee) + (interface "127.0.0.1") (port 6667) + (extra-settings "")) + bitlbee-service-type "Return a service that runs @url{http://bitlbee.org,BitlBee}, a daemon that acts as a gateway between IRC and chat networks. diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index bfa6e297e6..cab129e0c3 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> @@ -45,6 +45,7 @@ #:use-module (guix gexp) #:use-module (guix records) #:use-module (guix modules) + #:use-module (guix deprecation) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) @@ -206,7 +207,8 @@ fe80::1%lo0 apps.facebook.com\n") (stop #~(make-kill-destructor)))) isc-dhcp)) -(define* (dhcp-client-service #:key (dhcp isc-dhcp)) ;deprecated +(define-deprecated (dhcp-client-service #:key (dhcp isc-dhcp)) + dhcp-client-service-type "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)) @@ -374,9 +376,10 @@ daemon of the @uref{http://www.ntp.org, Network Time Foundation}. The daemon will keep the system clock synchronized with that of the given servers.") (default-value (ntp-configuration)))) -(define* (ntp-service #:key (ntp ntp) ;deprecated - (servers %ntp-servers) - allow-large-adjustment?) +(define-deprecated (ntp-service #:key (ntp ntp) + (servers %ntp-servers) + allow-large-adjustment?) + ntp-service-type "Return a service that runs the daemon from @var{ntp}, the @uref{http://www.ntp.org, Network Time Protocol package}. The daemon will keep the system clock synchronized with that of @var{servers}. @@ -752,9 +755,10 @@ HiddenServicePort ~a ~a~%" "Run the @uref{https://torproject.org, Tor} anonymous networking daemon."))) -(define* (tor-service #:optional - (config-file (plain-file "empty" "")) - #:key (tor tor)) +(define-deprecated (tor-service #:optional + (config-file (plain-file "empty" "")) + #:key (tor tor)) + tor-service-type "Return a service to run the @uref{https://torproject.org, Tor} anonymous networking daemon. diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index b3c24746d1..2f91619219 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> -;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com> ;;; @@ -40,6 +40,7 @@ #:use-module (guix packages) #:use-module (guix derivations) #:use-module (guix records) + #:use-module (guix deprecation) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) @@ -521,14 +522,15 @@ reboot_cmd " shepherd "/sbin/reboot\n" (const (list xterm))))) (default-value (slim-configuration)))) -(define* (slim-service #:key (slim slim) ;deprecated - (allow-empty-passwords? #t) auto-login? - (default-user "") - (theme %default-slim-theme) - (theme-name %default-slim-theme-name) - (xauth xauth) (shepherd shepherd) - (auto-login-session #f) - (startx (xorg-start-command))) +(define-deprecated (slim-service #:key (slim slim) + (allow-empty-passwords? #t) auto-login? + (default-user "") + (theme %default-slim-theme) + (theme-name %default-slim-theme-name) + (xauth xauth) (shepherd shepherd) + (auto-login-session #f) + (startx (xorg-start-command))) + slim-service-type "Return a service that spawns the SLiM graphical login manager, which in turn starts the X display server with @var{startx}, a command as returned by @code{xorg-start-command}. @@ -628,7 +630,8 @@ makes the good ol' XlockMore usable." (allow-empty-passwords? gdm-configuration-allow-empty-passwords? (default #t)) (auto-login? gdm-configuration-auto-login? (default #f)) (default-user gdm-configuration-default-user (default #f)) - (x-server gdm-configuration-x-server)) + (x-server gdm-configuration-x-server + (default (xorg-wrapper)))) (define (gdm-etc-service config) (define gdm-configuration-file @@ -719,14 +722,20 @@ makes the good ol' XlockMore usable." (service-extension etc-service-type gdm-etc-service) (service-extension dbus-root-service-type - (compose list gdm-configuration-gdm)))))) + (compose list + gdm-configuration-gdm)))) + (default-value (gdm-configuration)) + (description + "Run the GNOME Desktop Manager (GDM), a program that allows +you to log in in a graphical session, whether or not you use GNOME."))) ;; This service isn't working yet; it gets as far as starting to run the ;; greeter from gnome-shell but doesn't get any further. It is here because ;; it doesn't hurt anyone and perhaps it inspires someone to fix it :) -(define* (gdm-service #:key (gdm gdm) - (allow-empty-passwords? #t) - (x-server (xorg-wrapper))) +(define-deprecated (gdm-service #:key (gdm gdm) + (allow-empty-passwords? #t) + (x-server (xorg-wrapper))) + gdm-service-type "Return a service that spawns the GDM graphical login manager, which in turn starts the X display server with @var{X}, a command as returned by @code{xorg-wrapper}. |