This is guix.fr.info, produced by makeinfo version 6.7 from
guix.fr.texi.

Copyright © 2012-2022 Ludovic Courtès
Copyright © 2013, 2014, 2016 Andreas Enge
Copyright © 2013 Nikita Karetnikov
Copyright © 2014, 2015, 2016 Alex Kost
Copyright © 2015, 2016 Mathieu Lirzin
Copyright © 2014 Pierre-Antoine Rault
Copyright © 2015 Taylan Ulrich Bayırlı/Kammer
Copyright © 2015, 2016, 2017, 2019, 2020, 2021 Leo Famulari
Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo
Wurmus
Copyright © 2016 Ben Woodcroft
Copyright © 2016, 2017, 2018, 2021 Chris Marusich
Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner
Copyright © 2016 John Darrington
Copyright © 2016, 2017 Nikita Gillmann
Copyright © 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen
Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Julien Lepiller
Copyright © 2016 Alex ter Weele
Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines
Copyright © 2017, 2018, 2019 Clément Lassieur
Copyright © 2017, 2018, 2020, 2021, 2022 Mathieu Othacehe
Copyright © 2017 Federico Beffa
Copyright © 2017, 2018 Carlo Zancanaro
Copyright © 2017 Thomas Danckaert
Copyright © 2017 humanitiesNerd
Copyright © 2017, 2021 Christine Lemmer-Webber
Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Marius Bakke
Copyright © 2017, 2019, 2020, 2022 Hartmut Goebel
Copyright © 2017, 2019, 2020, 2021, 2022 Maxim Cournoyer
Copyright © 2017–2022 Tobias Geerinckx-Rice
Copyright © 2017 George Clemmer
Copyright © 2017 Andy Wingo
Copyright © 2017, 2018, 2019, 2020 Arun Isaac
Copyright © 2017 nee
Copyright © 2018 Rutger Helling
Copyright © 2018, 2021 Oleg Pykhalov
Copyright © 2018 Mike Gerwitz
Copyright © 2018 Pierre-Antoine Rouby
Copyright © 2018, 2019 Gábor Boskovits
Copyright © 2018, 2019, 2020, 2022 Florian Pelz
Copyright © 2018 Laura Lazzati
Copyright © 2018 Alex Vong
Copyright © 2019 Josh Holland
Copyright © 2019, 2020 Diego Nicola Barbato
Copyright © 2019 Ivan Petkov
Copyright © 2019 Jakob L. Kreuze
Copyright © 2019 Kyle Andrews
Copyright © 2019 Alex Griffin
Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant
Copyright © 2020 Liliana Marie Prikler
Copyright © 2019, 2020, 2021, 2022 Simon Tournier
Copyright © 2020 Wiktor Żelazny
Copyright © 2020 Damien Cassou
Copyright © 2020 Jakub Kądziołka
Copyright © 2020 Jack Hill
Copyright © 2020 Naga Malleswari
Copyright © 2020, 2021 Brice Waegeneire
Copyright © 2020 R Veera Kumar
Copyright © 2020, 2021 Pierre Langlois
Copyright © 2020 pinoaffe
Copyright © 2020 André Batista
Copyright © 2020, 2021 Alexandru-Sergiu Marton
Copyright © 2020 raingloom
Copyright © 2020 Daniel Brooks
Copyright © 2020 John Soo
Copyright © 2020 Jonathan Brielmaier
Copyright © 2020 Edgar Vincent
Copyright © 2021, 2022 Maxime Devos
Copyright © 2021 B. Wilson
Copyright © 2021 Xinglu Chen
Copyright © 2021 Raghav Gururajan
Copyright © 2021 Domagoj Stolfa
Copyright © 2021 Hui Lu
Copyright © 2021 pukkamustard
Copyright © 2021 Alice Brenon
Copyright © 2021, 2022 Josselin Poiret
Copyright © 2021 muradm
Copyright © 2021, 2022 Andrew Tropin
Copyright © 2021 Sarah Morgensen
Copyright © 2022 Remco van ’t Veer
Copyright © 2022 Aleksandr Vityazev
Copyright © 2022 Philip M^{c}Grath
Copyright © 2022 Karl Hallsby
Copyright © 2022 Justin Veilleux
Copyright © 2022 Reily Siegel
Copyright © 2022 Simon Streit
Copyright © 2022 (
Copyright © 2022 John Kehayias

   Vous avez la permission de copier, distribuer ou modifier ce document
sous les termes de la Licence GNU Free Documentation, version 1.3 ou
toute version ultérieure publiée par la Free Software Foundation ; sans
section invariante, texte de couverture et sans texte de quatrième de
couverture. Une copie de la licence est incluse dans la section
intitulée « GNU Free Documentation License ».
INFO-DIR-SECTION Administration système
START-INFO-DIR-ENTRY
* Guix: (guix.fr).           Gérer les logiciels installés et la
                               configuration du système.
* guix package : (guix.fr)Invoquer guix package.  Installer, supprimer et
                                                      mettre à jour des
                                                      paquets.
* guix gc : (guix.fr)Invoquer guix gc.  Récupérer de l’espace disque
                                            inutilisé.
* guix pull : (guix.fr)Invoquer guix pull.  Mettre à jour la liste des
                                                paquets disponibles.
* guix system : (guix.fr)Invoquer guix system.  Gérer la configuration du
                                                    système d’exploitation.
* guix deploy: (guix.fr)Invoquer guix deploy.  Gérer la configuration du
                                                 système d’exploitation
                                                 d’hôtes distants.
END-INFO-DIR-ENTRY

INFO-DIR-SECTION Développement logiciel
START-INFO-DIR-ENTRY
* guix shell: (guix.fr)Invoquer guix shell.  Créer des environnements
                                               logiciels.
* guix environment : (guix.fr)Invoquer guix environment.  Construire des
                                                              environnements
                                                              de construction
                                                              avec Guix.
* guix build : (guix.fr)Invoquer guix build.  Construire des paquets.
* guix pack : (guix.fr) Invoquer guix pack.  Créer des lots binaires.
END-INFO-DIR-ENTRY


File: guix.fr.info,  Node: Services réseau,  Next: Mises à jour non surveillées (Unattended Upgrades),  Prev: Configuration du réseau,  Up: Services

12.9.5 Services réseau
----------------------

Le module ‘(gnu services networking)’ dont on a parlé dans la section
précédente fournit des services pour des configuration plus avancées :
fournir un service DHCP que d’autres peuvent utiliser, filtrer des
paquets avec iptables ou nftables, faire tourner un point d’accès WiFi
avec ‘hostadp’, lancer le « superdémon » ‘inetd’ et bien plus encore.
Cette section les décrit.

 -- Procédure Scheme : dhcpd-service-type
     Ce type définie un service qui lance un démon DHCP. Pour créer un
     service de ce type, vous devez appliquer un objet
     ‘<dhcpd-configuration>’. Par exemple :

          (service dhcpd-service-type
                   (dhcpd-configuration
                    (config-file (local-file "my-dhcpd.conf"))
                    (interfaces '("enp0s25"))))

 -- Type de données : dhcpd-configuration
     ‘package’ (par défaut : ‘isc-dhcp’)
          Le paquet qui fournit le démon DHCP. ce paquet doit fournir le
          démon ‘sbin/dhcpd’ relativement à son répertoire de sortie. Le
          paquet par défaut est le serveur DHCP d’ISC
          (https://www.isc.org/dhcp/).
     ‘config-file’ (par défaut : ‘#f’)
          Le fichier de configuration à utiliser. Il est requis. Il sera
          passé à ‘dhcpd’ via son option ‘-cf’. La valeur peut être
          n’importe quel objet « simili-fichier » (*note file-like
          objects: G-Expressions.). Voir ‘man dhcpd.conf’ pour des
          détails sur la syntaxe du fichier de configuration.
     ‘version’ (par défaut : ‘"4"’)
          La version de DHCP à utiliser. Le serveur DHCP d’ISC supporte
          les valeur « 4 », « 6 » et « 4o6 ». Elles correspondent aux
          options ‘-4’, ‘-6’ et ‘-4o6’ du programme ‘dhcpd’. Voir ‘man
          dhcpd’ pour plus de détails.
     ‘run-directory’ (par défaut : ‘"/run/dhcpd"’)
          Le répertoire d’exécution à utiliser. Au moment de
          l’activation du service, ce répertoire sera créé s’il n’existe
          pas.
     ‘pid-file’ (par défaut : ‘"/run/dhcpd/dhcpd.pid"’)
          Le fichier de PID à utiliser. Cela correspond à l’option ‘-pf’
          de ‘dhcpd’. Voir ‘man dhcpd’ pour plus de détails.
     ‘interfaces’ (par défaut : ‘'()’)
          Les noms des interfaces réseaux sur lesquelles dhcpd écoute.
          Si cette liste n’est pas vide, alors ses éléments (qui doivent
          être des chaînes de caractères) seront ajoutés à l’invocation
          de ‘dhcpd’ lors du démarrage du démon. Il n’est pas forcément
          nécessaire de spécifier des interfaces ici ; voir ‘man dhcpd’
          pour plus de détails.

 -- Variable Scheme : hostapd-service-type
     Il s’agit du type de service permettant d’exécuter le démon hostapd
     (https://w1.fi/hostapd/) pour mettre en place des points d’accès et
     des serveurs d’authentification WiFi (IEEE 802.11). Sa valeur
     associée doit être un ‘hostapd-configuration’ comme indiqué
     ci-dessous :

          ;; Utiliser wlan1 pour lancer le point d'accès pour « My Network ».
          (service hostapd-service-type
                   (hostapd-configuration
                    (interface "wlan1")
                    (ssid "My Network")
                    (channel 12)))

 -- Type de données : hostapd-configuration
     Ce type de données représente la configuration du service hostapd,
     avec les champs suivants :

     ‘package’ (par défaut : ‘hostapd’)
          Le paquet hostapd à utiliser.

     ‘interface’ (par défaut : ‘"wlan0"’)
          L’interface réseau pour faire fonctionner le point d’accès
          WiFi.

     ‘ssid’
          Le SSID (“identifiant de l’ensemble de services”), une chaîne
          de caractères qui identifie ce réseau.

     ‘broadcast-ssid?’ (par défaut : ‘#t’)
          La diffusion de ce SSID.

     ‘channel’ (par défaut : ‘#f’)
          Le canal WiFi à utiliser.

     ‘drivers’ (par défaut : ‘"nl80211"’)
          Le type d’interface du conducteur. ‘"nl80211"’ est utilisé
          avec tous les pilotes mac80211 de Linux. Utilisez ‘"none"’ si
          vous construisez hostapd comme un serveur RADIUS autonome qui
          ne # contrôle aucun pilote sans-fil/filaire.

     ‘extra-settings’ (par défaut : ‘""’)
          Paramètres supplémentaires à ajouter tels quels au fichier de
          configuration de hostapd. Voir
          <https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf> pour la
          référence du fichier de configuration.

 -- Variable Scheme : simulated-wifi-service-type
     C’est le type de service permettant de simuler la mise en réseau
     WiFi, qui peut être utile dans les machines virtuelles à des fins
     de test. Le service charge le noyau Linux module ‘mac80211_hwsim’
     (https://www.kernel.org/doc/html/latest/networking/mac80211_hwsim/mac80211_hwsim.html)
     et lance hostapd pour créer un pseudo réseau WiFi qui peut être vu
     sur ‘wlan0’, par défaut.

     La valeur du service est un enregistrement ‘hostapd-configuration’.

 -- Variable Scheme : iptables-service-type
     C’est le type de service pour mettre en place une configuration
     iptables. iptables est un outil de filtrage de paquets pris en
     charge par le noyau Linux. Ce service prend en charge la
     configuration d’iptable pour IPv4 et IPv6. Un exemple de
     configuration simple, qui rejette les connexions entrantes sauf
     celles sur le port 22 est présenté ci-dessous.

          (service iptables-service-type
                   (iptables-configuration
                    (ipv4-rules (plain-file "iptables.rules" "*filter
          :INPUT ACCEPT
          :FORWARD ACCEPT
          :OUTPUT ACCEPT
          -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
          -A INPUT -p tcp --dport 22 -j ACCEPT
          -A INPUT -j REJECT --reject-with icmp-port-unreachable
          COMMIT
          "))
                    (ipv6-rules (plain-file "ip6tables.rules" "*filter
          :INPUT ACCEPT
          :FORWARD ACCEPT
          :OUTPUT ACCEPT
          -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
          -A INPUT -p tcp --dport 22 -j ACCEPT
          -A INPUT -j REJECT --reject-with icmp6-port-unreachable
          COMMIT
          "))))

 -- Type de données : iptables-configuration
     Type de données représentant la configuration d’iptables.

     ‘iptables’ (par défaut : ‘iptables’)
          Le paquet iptables qui fournit ‘iptables-restore’ et
          ‘ip6tables-restore’.
     ‘ipv4-rules’ (par défaut : ‘%iptables-accept-all-rules’)
          Les règles iptables à utiliser. Elles seront passées à
          ‘iptables-restore’. Cela peut être un objet « simili-fichier »
          (*note file-like objects: G-Expressions.).
     ‘ipv6-rules’ (par défaut : ‘%iptables-accept-all-rules’)
          Les règles iptables à utiliser. Elles seront passées à
          ‘ip6tables-restore’. Cela peut être un objet « simili-fichier
          » (*note file-like objects: G-Expressions.).

 -- Variable Scheme : nftables-service-type
     C’est le type de service permettant de mettre en place une
     configuration nftables. nftables est un projet de netfilter qui
     vise à remplacer le cadre existant iptables, ip6tables, arptables
     et ebtables. Il fournit un nouveau cadre de filtrage de paquets, un
     nouvel utilitaire d’espace utilisateur·rice ‘nft’, et une couche de
     compatibilité pour iptables. Ce service est fourni avec un jeu de
     règles par défaut ‘%default-nftables-ruleset’ qui rejette toutes
     les connexions entrantes sauf celles vers le port ssh 22. Pour
     l’utiliser, il suffit d’écrire :

          (service nftables-service-type)

 -- Type de données : nftables-configuration
     Type de données représentant la configuration de nftables.

     ‘package’ (par défaut : ‘nftables’)
          Le paquet nftables qui fournit ‘nft’.
     ‘ruleset’ (par défaut : ‘%default-nftables-ruleset’)
          Les règles d’utilisation de nftables. Il peut s’agir de
          n’importe quel objet « de type fichier » (*note objets de type
          fichier: G-Expressions.).

 -- Variable Scheme : ntp-service-type
     C’est le type de service qui lance le démon Network Time Protocol
     (NTP) (https://www.ntp.org), ‘ntpd’. Le démon gardera l’horloge
     système synchronisée avec celle des serveurs NTP spécifiés.

     La valeur de ce service est un objet ‘ntpd-configuration’, décrit
     ci-dessous.

 -- Type de données : ntp-configuration
     C’est le type de données représentant la configuration du service
     NTP.

     ‘servers’ (par défaut : ‘%ntp-servers’)
          C’est la liste des serveurs (enregistrements ‘<ntp-server>’)
          avec lesquels ‘ntpd’ sera synchronisé. Voir la définition du
          type de données ‘ntp-server’ ci-dessous.

     ‘allow-large-adjustment?’ (par défaut : ‘#t’)
          Détermine si ‘ntpd’ peut faire un ajustement initial de plus
          de 1 000 secondes.

     ‘ntp’ (par défaut : ‘ntp’)
          Le paquet NTP à utiliser.

 -- Variable Scheme : %ntp-servers
     Liste de noms d’hôtes à utiliser comme serveurs NTP par défaut. Ce
     sont les serveurs du projet NTP Pool (https://www.ntppool.org/fr/).

 -- Type de données : ntp-server
     Le type de données représentant la configuration d’un serveur NTP.

     ‘type’ (par défaut : ‘'server’)
          Le type de serveur NTP, indiqué par un symbole. L’un des types
          suivants : ‘'pool’, ‘'server’, ‘'peer’, ‘'broadcast’ ou
          ‘'manycastclient’.

     ‘adresse’
          L’adresse du serveur, comme une chaîne de caractères.

     ‘options’
          Les options NTPD à utiliser avec ce serveur spécifique,
          données sous la forme d’une liste de noms d’options et/ou de
          tuples de noms et de valeurs d’options. L’exemple suivant
          définit un serveur à utiliser avec les options ‘iburst’ et
          ‘prefer’, ainsi que ‘version’ 3 et un temps ‘maxpoll’ de 16
          secondes.

               (ntp-server
                (type 'server)
                (address "some.ntp.server.org")
                (options `(iburst (version 3) (maxpoll 16) prefer))))

 -- Procédure Scheme : openntpd-service-type
     Lance le démon NTP ‘ntpd’, implémenté par OpenNTPD
     (http://www.openntpd.org). Le démon gardera l’horloge système
     synchronisée avec celle des serveurs donnés.

          (service
           openntpd-service-type
           (openntpd-configuration
            (listen-on '("127.0.0.1" "::1"))
            (sensor '("udcf0 correction 70000"))
            (constraint-from '("www.gnu.org"))
            (constraints-from '("https://www.google.com/"))))


 -- Variable Scheme : %openntpd-servers
     Cette variable est une liste des adresses de serveurs définies dans
     ‘%ntp-servers’.

 -- Type de données : openntpd-configuration
     ‘openntpd’ (par défaut : ‘(file-append openntpd "/sbin/ntpd")’)
          L’exécutable openntpd à utiliser.
     ‘listen-on’ (par défaut : ‘'("127.0.0.1" "::1")’)
          Une liste d’adresses IP locales ou de noms d’hôtes que devrait
          écouter le démon ntpd.
     ‘query-from’ (par défaut : ‘'()’)
          Une liste d’adresses IP que le démon devrait utiliser pour les
          requêtes sortantes.
     ‘sensor’ (par défaut : ‘'()’)
          Spécifie une liste de senseurs de différences de temps que
          ntpd devrait utiliser. ‘ntpd’ écoutera chaque senseur qui
          existe et ignorera ceux qui n’existent pas. Voir la
          documentation en amont (https://man.openbsd.org/ntpd.conf)
          pour plus d’informations.
     ‘server’ (par défaut : ‘'()’)
          Spécifie une liste d’adresses IP ou de noms d’hôtes de
          serveurs NTP avec lesquels se synchroniser.
     ‘servers’ (par défaut : ‘%openntp-servers’)
          Spécifie une liste d’adresses IP ou de noms d’hôtes de banques
          de serveurs NTP avec lesquelles se synchroniser.
     ‘constraint-from’ (par défaut : ‘'()’)
          ‘ntpd’ peut être configuré pour demander la « Date » à des
          serveurs HTTPS de confiance via TLS. Cette information de
          temps n’est pas utilisée pour sa précision mais agit comme une
          contrainte authentifiée, ce qui réduit l’impact d’une attaque
          par l’homme du milieu sur le protocole NTP non authentifié.
          Spécifie une liste d’URL, d’adresses IP ou de noms d’hôtes de
          serveurs HTTPS qui fournissent cette contrainte.
     ‘constraints-from’ (par défaut : ‘'()’)
          Comme pour ‘constraint-from’, spécifie une liste d’URL,
          d’adresses IP ou de noms d’hôtes de serveurs HTTPS qui
          fournissent une contrainte. Si les noms d’hôtes sont résolus
          en plusieurs adresses IP, ‘ntpd’ calculera la contrainte
          médiane.

 -- Variable Scheme : inetd-service-type
     Ce service lance le démon ‘inetd’ (*note (inetutils)inetd
     invocation::). ‘inetd’ écoute des connexions sur des sockets
     internet et démarre le programme spécifié uniquement lorsqu’une
     connexion arrive sur l’un de ces sockets.

     La valeur de ce service est un objet ‘inetd-configuration’.
     L’exemple suivant configure le démon ‘inetd’ pour qu’il fournisse
     le service ‘echo’, ainsi qu’un service smtp qui transfère le trafic
     smtp par ssh à un serveur ‘smtp-server’ derrière une passerelle
     ‘hostname’ :

          (service
           inetd-service-type
           (inetd-configuration
            (entries (list
                      (inetd-entry
                       (name "echo")
                       (socket-type 'stream)
                       (protocol "tcp")
                       (wait? #f)
                       (user "root"))
                      (inetd-entry
                       (node "127.0.0.1")
                       (name "smtp")
                       (socket-type 'stream)
                       (protocol "tcp")
                       (wait? #f)
                       (user "root")
                       (program (file-append openssh "/bin/ssh"))
                       (arguments
                        '("ssh" "-qT" "-i" "/chemin/vers/ssh_key"
                          "-W" "smtp-server:25" "user@hostname")))))))

     Voir plus bas pour plus de détails sur ‘inetd-configuration’.

 -- Type de données : inetd-configuration
     Type de données représentant la configuration de ‘inetd’.

     ‘program’ (par défaut : ‘(file-append inetutils "/libexec/inetd")’)
          L’exécutable ‘inetd’ à utiliser.

     ‘entries’ (par défaut : ‘'()’)
          Une liste d’entrées de services ‘inetd’. Chaque entrée devrait
          être crée avec le constructeur ‘inetd-entry’.

 -- Type de données : inetd-entry
     Type de données représentant une entrée dans la configuration
     d’‘inetd’. Chaque entrée correspond à un socket sur lequel ‘inetd’
     écoutera les requêtes.

     ‘node’ (par défaut : ‘#f’)
          Chaîne de caractères facultative, un liste d’adresses locales
          séparées par des virgules que ‘inetd’ devrait utiliser pour
          écouter ce service. *Note (inetutils)Configuration file:: pour
          une description complète de toutes les options.
     ‘name’
          Une chaîne de caractères dont le nom doit correspondre à une
          entrée de ‘/etc/services’.
     ‘socket-type’
          Un symbole parmi ‘'stream’, ‘'dgram’, ‘'raw’, ‘'rdm’ ou
          ‘'seqpacket’.
     ‘protocol’
          Une chaîne de caractères qui doit correspondre à une entrée
          dans ‘/etc/protocols’.
     ‘wait?’ (par défaut : ‘#t’)
          Indique si ‘inetd’ devrait attendre que le serveur ait quitté
          avant d’écouter de nouvelles demandes de service.
     ‘user’
          Une chaîne de caractères contenant le nom d’utilisateur (et
          éventuellement de groupe) de l’utilisateur en tant que lequel
          le serveur devrait tourner. Le nom du groupe peut être
          spécifié comme un suffixe, séparé par un deux-points ou un
          point, c.-à-d. ‘"utilisateur"’, ‘"utilisateur:groupe"’ ou
          ‘"utilisateur.groupe"’.
     ‘program’ (par défaut : ‘"internal"’)
          Le programme du serveur qui servira les requêtes, ou
          ‘"internal"’ si ‘inetd’ devrait utiliser un service inclus.
     ‘arguments’ (par défaut : ‘'()’)
          Une liste de chaînes de caractères ou d’objets simili-fichiers
          qui sont les arguments du programme du serveur, en commençant
          par le zéroième argument, c.-à-d. le nom du programme
          lui-même. Pour les services internes à ‘inetd’, cette entrée
          doit être ‘'()’ ou ‘'("internal")’.

     *Note (inetutils)Configuration file:: pour trouver une discussion
     plus détaillée de chaque champ de configuration.

 -- Variable Scheme : opendht-service-type
     C’est le type du service qui lance un nœud OpenDHT
     (https://opendht.net), ‘dhtnode’. Le démon peut être utilisé pour
     héberger votre propre service mandataire à la table de hash
     distribue (DHT), par exemple pour y connecter Jami, entre autres
     applications.

          Important : Lorsque vous utiliser le serveur mandataire
          OpenDHT, les adresses IP qu’il « voit » venant des clients
          devraient être les adresses atteignables depuis les autres
          pairs. En pratique cela signifie qu’une adresse accessible
          publiquement est préférable pour un serveur mandataire, en
          dehors de votre réseau privé. Par exemple, héberger le serveur
          mandataire sur un réseau local privé en IPv4 et l’exposer via
          une redirection de port pourrait fonctionner pour les pairs
          externes, mais les pairs locaux au mandataire verront leur
          adresse privée partagées avec les pairs externes, ce qui
          posera des problèmes de connectivité.

     La valeur de ce service est un objet ‘opendht-configuration’,
     décrit ci-dessous.

 -- Type de données : opendht-configuration
     Les champs de ‘opendht-configuration’ disponibles sont :

     ‘opendht’ (par défaut : ‘opendht’) (type : simili-fichier)
          Le paquet ‘opendht’ à utiliser.

     ‘peer-discovery?’ (par défaut : ‘#f’) (type : booléen)
          Indique s’il faut activer le mécanisme de découverte de pairs
          locaux en multidiffusion.

     ‘enable-logging?’ (par défaut : ‘#f’) (type : booléen)
          Indique s’il faut activer la journalisation des messages vers
          syslog. C’est désactivé par défaut car cette option est plutôt
          verbeuse.

     ‘debug?’ (par défaut : ‘#f’) (type : booléen)
          Indique s’il faut activer la journalisation de débogage. Cela
          n’a aucun effet si la journalisation n’est pas activée.

     ‘bootstrap-host’ (par défaut : ‘"bootstrap.jami.net:4222"’) (type : peut-être-chaine)
          Le nom d’hôte du nœud utilisé pour effectuer la première
          connexion au réseau. Vous pouvez fournir une valeur de port
          spécifique en ajoutant le suffixe ‘:PORT’. Par défaut, cela
          utilise les nœuds d’amorçage de Jami, mais n’importe quel hôte
          peut être spécifié ici. Il est aussi possible de désactiver
          l’amorçage en paramétrant explicitement ce champ à la valeur
          ‘%unset-value’.

     ‘port’ (par défaut : ‘4222’) (type : peut-être-entier)
          Le port UDP sur lequel se lier. Lorsque la valeur est laissée
          non spécifiée, un port disponible est automatiquement choisi.

     ‘proxy-server-port’ (type : peut-être-entier)
          Crée un serveur mandataire écoutant sur le port spécifié.

     ‘proxy-server-port-tls’ (type : peut-être-entier)
          Crée un serveur mandataire écoutant les connexions TLS sur le
          port spécifié.

 -- Variable Scheme : tor-service-type
     C’est le type pour un service qui lance le démon de navigation
     anonyme Tor (https://torproject.org). Le service est configuré avec
     un enregistrement ‘<tor-configuration>’. Par défaut, le démon Tor
     est lancé en tant qu’utilisateur non privilégié ‘tor’, membre du
     groupe ‘tor’.

 -- Type de données : tor-configuration
     ‘tor’ (par défaut : ‘tor’)
          Le paquet qui fournit le démon Tor. Ce paquet doit fournir le
          démon ‘bin/tor’ relativement à son répertoire de sortie. Le
          paquet par défaut est le l’implémentation du projet Tor
          (https://www.torproject.org).

     ‘config-file’ (par défaut : ‘(plain-file "empty" "")’)
          Le fichier de configuration à utiliser. Il sera ajouté au
          fichier de configuration par défaut, et le fichier de
          configuration final sera passé à ‘tor’ via son option ‘-f’.
          Cela peut être n’importe quel objet « simili-fichier » (*note
          file-like objects: G-Expressions.). Voir ‘man tor’ pour plus
          de détails sur la syntaxe du fichier de configuration.

     ‘hidden-services’ (par défaut : ‘'()’)
          La liste des enregistrements ‘<hidden-service>’ à utiliser.
          Pour n’importe quel service cache que vous ajoutez à cette
          liste, la configuration appropriée pour activer le service
          caché sera automatiquement ajouté au fichier de configuration
          par défaut. Vous pouvez aussi créer des enregistrements
          ‘<hidden-service>’ avec la procédure ‘tor-hidden-service’
          décrite plus bas.

     ‘socks-socket-type’ (par défaut : ‘'tcp’)
          Le type de socket par défaut que Tor devrait utiliser pour les
          socket SOCKS. Cela doit être soit ‘'tcp’ soit ‘'unix’. S’il
          s’agit de ‘'tcp’, alors Tor écoutera pas défaut sur le port
          TCP 9050 sur l’interface de boucle locale (c.-à-d. localhost).
          S’il s’agit de ‘'unix’, Tor écoutera sur le socket UNIX domain
          ‘/var/run/tor/socks-sock’, qui sera inscriptible pour les
          membres du groupe ‘tor’.

          Si vous voulez personnaliser le socket SOCKS plus avant,
          laissez ‘socks-socket-type’ à sa valeur par défaut de ‘'tcp’
          et utilisez ‘config-file’ pour remplacer les valeurs par
          défaut avec votre propre option ‘SocksPort’.

     ‘control-socket?’ (par défaut : ‘#f’)
          Indique s’il faut utiliser un « socket de contrôle » par
          lequel on peut contrôler Tor pour, par exemple, instancier des
          services onion dynamiquement. Si la valeur est ‘#t’, Tor
          écoutera les commandes de contrôle sur le socket UNIX domain
          ‘/var/run/tor/control-sock’, qui sera inscriptible pour les
          membres du groupe ‘tor’.

 -- Procédure Scheme : tor-hidden-service NAME MAPPING
     Définie un “service caché” pour Tor nommé NAME qui implémente
     MAPPING. MAPPING est une liste de paires de port et d’hôte, comme
     dans :

           '((22 "127.0.0.1:22")
             (80 "127.0.0.1:8080"))

     Dans cet exemple, le port 22 du service caché est relié au port
     local 22 et le port 80 est relié au port local 8080.

     Cela crée un répertoire ‘/var/lib/tor/hidden-services/NAME’ où le
     fichier ‘hostname’ contient le nom d’hôte ‘.onion’ pour le service
     caché.

     Voir the Tor project’s documentation
     (https://www.torproject.org/docs/tor-hidden-service.html.en) pour
     trouver plus d’information.

   Le module ‘(gnu services rsync)’ fournit les services suivant :

   Vous pourriez vouloir un démon rsync si vous voulez que des fichiers
soient disponibles pour que n’importe qui (ou juste vous) puisse
télécharger des fichiers existants ou en téléverser des nouveaux.

 -- Variable Scheme : rsync-service-type
     C’est le type pour le démon rsync (https://rsync.samba.org). La
     valeur de ce service est un enregistrement ‘rsync-configuration’
     comme dans cet exemple :

          ;; Exporte deux répertoires par rsync.  Par défaut rsync écoute sur toutes
          ;; les interfaces réseau.
          (service rsync-service-type
                   (rsync-configuration
                     (modules (list (rsync-module
                                      (name "music")
                                      (file-name "/srv/zik")
                                      (read-only? #f))
                                    (rsync-module
                                      (name "movies")
                                      (file-name "/home/charlie/movies"))))))

     Voir plus pas pour trouver des détails à propos de
     ‘rsync-configuration’.

 -- Type de données : rsync-configuration
     Type de données représentant la configuration de ‘rsync-service’.

     ‘package’ (par défaut : RSYNC)
          Le paquet ‘rsync’ à utiliser.

     ‘address’ (par défaut : ‘#f’)
          L’adresse sur laquelle ‘rsync’ écoute les connexions
          entrantes. Si la valeur n’est pas spécifiée, écoute sur toutes
          les adresses par défaut.

     ‘port-number’ (par défaut : ‘873’)
          Le port TCP sur lequel ‘rsync’ écoute les connexions
          entrantes. Si le port est inférieur à ‘1024’, ‘rsync’ doit
          être démarré en tant qu’utilisateur et groupe ‘root’.

     ‘pid-file’ (par défaut : ‘"/var/run/rsyncd/rsyncd.pid"’)
          Nom du fichier où ‘rsync’ écrit son PID.

     ‘lock-file’ (par défaut : ‘"/var/run/rsyncd/rsyncd.lock"’)
          Nom du fichier où ‘rsync’ écrit son fichier de verrouillage.

     ‘log-file’ (par défaut : ‘"/var/log/rsyncd.log"’)
          Nom du fichier où ‘rsync’ écrit son fichier de journal.

     ‘user’ (par défaut : ‘"root"’)
          Propriétaire du processus ‘rsync’.

     ‘group’ (par défaut : ‘"root"’)
          Groupe du processus ‘rsync’.

     ‘uid’ (par défaut : ‘"rsyncd"’)
          Nom d’utilisateur ou ID utilisateur en tant que lequel les
          transferts de fichiers ont lieu si le démon a été lancé en
          ‘root’.

     ‘gid’ (par défaut : ‘"rsyncd"’)
          Nom du groupe ou ID du groupe qui sera utilisé lors de l’accès
          au module.

     ‘modules’ (par défaut : ‘%default-modules’)
          Liste des « modules » — c.-à-d. des répertoires exportés par
          rsync. Chaque élément doit être un enregistrement
          ‘rsync-module’, comme décrit plus bas.

 -- Type de données : rsync-module
     C’est le type de données pour les « modules » rsync. Un module est
     un répertoire exporté par le protocole rsync. Les champs
     disponibles sont les suivants :

     ‘name’
          Le nom du module. C’est le nom qui apparait dans les URL. Par
          exemple, si le module se nomme ‘music’, l’URL correspondante
          sera ‘rsync://host.example.org/music’.

     ‘file-name’
          Nom du répertoire exporté.

     ‘comment’ (par défaut : ‘""’)
          Commentaire associé au module. Les interfaces utilisateurs
          clientes peuvent l’afficher quand ils récupèrent la liste des
          modules disponibles.

     ‘read-only?’ (par défaut : ‘#t’)
          Indique si le client pourra envoyer des fichiers. Si la valeur
          est fausse, les envoies seront autorisés si les permissions du
          côté du démon le permettent.

     ‘chroot?’ (par défaut : ‘#t’)
          Lorsque la valeur est vraie, le démon rsync change de racine
          pour le répertoire du module avant de commencer le transfert
          de fichiers avec le client. Cela améliore la sécurité, mais
          nécessite que rsync tourne en root.

     ‘timeout’ (par défaut : ‘300’)
          La durée en secondes de silence après laquelle le démon ferme
          une connexion avec le client.

   Le module ‘(gnu services syncthing)’ fournit les services suivant :

   Vous pourriez vouloir un démon syncthing si vous avez des fichiers
sur plusieurs ordinateurs et souhaitez les synchroniser en temps réel,
de manière sécurisée sans espionnage possible.

 -- Variable Scheme : syncthing-service-type
     C’est le type pour le démon syncthing (https://syncthing.net/). La
     valeur de ce service est un enregistrement
     ‘syncthing-configuration’ comme dans cet exemple :

          (service syncthing-service-type
                   (syncthing-configuration (user "alice")))

     Voir plus pas pour trouver des détails à propos de
     ‘syncthing-configuration’.

      -- Type de données : syncthing-configuration
          Type de données représentant la configuration de
          ‘syncthing-service’.

          ‘syncthing’ (par défaut : SYNCTHING)
               Le paquet ‘syncthing’ à utiliser.

          ‘arguments’ (par défaut : ’())
               Liste d’arguments de la ligne de commande à passer au
               binaire ‘syncthing’.

          ‘logflags’ (par défaut : 0)
               L’ensemble des drapeaux de journalisation, voir logfiles
               sur la documentation de Syncthing
               (https://docs.syncthing.net/users/syncthing.html#cmdoption-logflags).

          ‘user’ (par défaut : #F)
               L’utilisateur qui lance le service Syncthing. Cela
               suppose que l’utilisateur spécifié existe.

          ‘group’ (par défaut : "USERS")
               Le groupe qui lance le service Syncthing. Cela suppose
               que le group spécifié existe.

          ‘home’ (par défaut : #F)
               Configuration et répertoires de données communs. Le
               répertoire de configuration par défaut est ‘$HOME’ de
               l’utilisateur ‘user’ de Syncthing.

   En plus, ‘(gnu services ssh)’ fournit les services suivant.

 -- Procédure Scheme : lsh-service [#:host-key "/etc/lsh/host-key"]
          [#:daemonic? #t] [#:interfaces '()] [#:port-number 22]
          [#:allow-empty-passwords? #f] [#:root-login? #f]
          [#:syslog-output? #t] [#:x11-forwarding? #t]
          [#:tcp/ip-forwarding? #t] [#:password-authentication? #t]
          [#:public-key-authentication? #t] [#:initialize? #t]
     Lance le programme ‘lshd’ de LSH pour écouter sur le port
     PORT-NUMBER. HOST-KEY doit désigner un fichier contenant la clef
     d’hôte et ne doit être lisible que par root.

     Lorsque DAEMONIC? est vrai, ‘lshd’ se détachera du terminal qui le
     contrôle et enregistrera ses journaux avec syslogd, à moins que
     SYSLOG-OUTPUT? ne soit faux. Évidemment, cela rend aussi
     lsh-service dépendant de l’existence d’un service syslogd. Lorsque
     PID-FILE? est vrai, ‘lshd’ écrit son PID dans le fichier PID-FILE.

     Lorsque INITIALIZE? est vrai, la graine et la clef d’hôte seront
     créés lors de l’activation du service s’ils n’existent pas encore.
     Cela peut prendre du temps et demande une interaction.

     Lorsque INITIALIZE? est faux, c’est à l’utilisateur d’initialiser
     le générateur d’aléatoire (*note (lsh)lsh-make-seed::) et de crée
     une paire de clefs dont la clef privée sera stockée dans le fichier
     HOST-KEY (*note (lsh)lshd basics::).

     Lorsque INTERFACES est vide, lshd écoute les connexions sur toutes
     les interfaces réseau ; autrement, INTERFACES doit être une liste
     de noms d’hôtes et d’adresses.

     ALLOW-EMPTY-PASSWORDS? spécifie si les connexions avec des mots de
     passes vides sont acceptés et ROOT-LOGIN? spécifie si la connexion
     en root est acceptée.

     Les autres options devraient être évidentes.

 -- Variable Scheme : openssh-service-type
     C’est le type pour le démon ssh OpenSSH (http://www.openssh.org),
     ‘sshd’. Sa valeur doit être un enregistrement
     ‘openssh-configuration’ comme dans cet exemple :

          (service openssh-service-type
                   (openssh-configuration
                     (x11-forwarding? #t)
                     (permit-root-login 'prohibit-password)
                     (authorized-keys
                       `(("alice" ,(local-file "alice.pub"))
                         ("bob" ,(local-file "bob.pub"))))))

     Voir plus bas pour trouver des détails sur ‘openssh-configuration’.

     Ce service peut être étendu avec des clefs autorisées
     supplémentaires, comme dans cet exemple :

          (service-extension openssh-service-type
                             (const `(("charlie"
                                       ,(local-file "charlie.pub")))))

 -- Type de données : openssh-configuration
     C’est l’enregistrement de la configuration de la commande ‘sshd’
     d’OpenSSH.

     ‘openssh’ (par défaut : OPENSSH)
          Le paquet OpenSSH à utiliser.

     ‘pid-file’ (par défaut : ‘"/var/run/sshd.pid"’)
          Nom du fichier où ‘sshd’ écrit son PID.

     ‘port-number’ (par défaut : ‘22’)
          Port TCP sur lequel ‘sshd’ écoute les connexions entrantes.

     ‘max-connections’ (par défaut : ‘200’)
          Limite du nombre maximum de connexions clientes simultanées,
          appliquée par le service Shepherd dans le style d’inetd (*note
          ‘make-inetd-constructor’: (shepherd)Service De- and
          Constructors.).

     ‘permit-root-login’ (par défaut : ‘#f’)
          Ce champ détermine si et quand autoriser les connexions en
          root. Si la valeur est ‘#f’, les connexions en root sont
          désactivées ; si la valeur est ‘#t’, elles sont autorisées.
          S’il s’agit du symbole ‘'prohibit-password’, alors les
          connexions root sont autorisées mais pas par une
          authentification par mot de passe.

     ‘allow-empty-passwords?’ (par défaut : ‘#f’)
          Lorsque la valeur est vraie, les utilisateurs avec un mot de
          passe vide peuvent se connecter. Sinon, ils ne peuvent pas.

     ‘password-authentication?’ (par défaut : ‘#t’)
          Lorsque la valeur est vraie, les utilisateurs peuvent se
          connecter avec leur mot de passe. Sinon, ils doivent utiliser
          une autre méthode d’authentification.

     ‘public-key-authentication?’ (par défaut : ‘#t’)
          Lorsque la valeur est vraie, les utilisateurs peuvent se
          connecter avec leur clef publique. Sinon, les utilisateurs
          doivent utiliser une autre méthode d’authentification.

          Les clefs publiques autorisées sont stockées dans
          ‘~/.ssh/authorized_keys’. Ce n’est utilisé que par le
          protocole version 2.

     ‘x11-forwarding?’ (par défaut : ‘#f’)
          Lorsque la valeur est vraie, le transfert de connexion du
          client graphique X11 est activé — en d’autre termes, les
          options ‘-X’ et ‘-Y’ de ‘ssh’ fonctionneront.

     ‘allow-agent-forwarding?’ (par défaut : ‘#t’)
          Indique s’il faut autoriser la redirection d’agent.

     ‘allow-tcp-forwarding?’ (par défaut : ‘#t’)
          Indique s’il faut autoriser la redirection TCP.

     ‘gateway-ports?’ (par défaut : ‘#f’)
          Indique s’il faut autoriser les ports de passerelle.

     ‘challenge-response-authentication?’ (par défaut : ‘#f’)
          Spécifie si l’authentification par défi est autorisée (p. ex.
          via PAM).

     ‘use-pam?’ (par défaut : ‘#t’)
          Active l’interface avec le module d’authentification
          greffable, PAM. Si la valeur est ‘#t’, cela activera
          l’authentification PAM avec
          ‘challenge-response-authentication?’ et
          ‘password-authentication?’, en plus des modules de compte et
          de session de PAM pour tous les types d’authentification.

          Comme l’authentification par défi de PAM sert généralement un
          rôle équivalent à l’authentification par mot de passe, vous
          devriez désactiver soit ‘challenge-response-authentication?’,
          soit ‘password-authentication?’.

     ‘print-last-log?’ (par défaut : ‘#t’)
          Spécifie si ‘sshd’ devrait afficher la date et l’heure de
          dernière connexion des utilisateurs lorsqu’un utilisateur se
          connecte de manière interactive.

     ‘subsystems’ (par défaut : ‘'(("sftp" "internal-sftp"))’)
          Configure les sous-systèmes externes (p. ex. le démon de
          transfert de fichiers).

          C’est une liste de paires, composées chacune du nom du
          sous-système et d’une commande (avec éventuellement des
          arguments) à exécuter à la demande du sous-système.

          La commande ‘internal-sftp’ met en œuvre un serveur SFTP en
          cours de traitement. On peut aussi spécifier la commande
          ‘sftp-server’ :
               (service openssh-service-type
                        (openssh-configuration
                         (subsystems
                          `(("sftp" ,(file-append openssh "/libexec/sftp-server"))))))

     ‘accepted-environment’ (par défaut : ‘'()’)
          Liste de chaînes de caractères qui décrivent les variables
          d’environnement qui peuvent être exportées.

          Chaque chaîne a sa propre ligne. Voir l’option ‘AcceptEnv’
          dans ‘man sshd_config’.

          Cet exemple permet aux clients ssh d’exporter la variable
          ‘COLORTERM’. Elle est initialisée par les émulateurs de
          terminaux qui supportent les couleurs. Vous pouvez l’utiliser
          dans votre fichier de ressource de votre shell pour activer
          les couleurs sur la ligne de commande si cette variable est
          initialisée.

               (service openssh-service-type
                        (openssh-configuration
                          (accepted-environment '("COLORTERM"))))

     ‘authorized-keys’ (par défaut : ‘'()’)
          C’est la liste des clefs autorisées. Chaque élément de la
          liste est un nom d’utilisateur suivit d’un ou plusieurs objets
          simili-fichiers qui représentent les clefs publiques SSH. Par
          exemple :

               (openssh-configuration
                 (authorized-keys
                   `(("rekado" ,(local-file "rekado.pub"))
                     ("chris" ,(local-file "chris.pub"))
                     ("root" ,(local-file "rekado.pub") ,(local-file "chris.pub")))))

          enregistre les clefs publiques spécifiées pour les comptes
          ‘rekado’, ‘chris’ et ‘root’.

          Des clefs autorisées supplémentaires peuvent être spécifiées
          via ‘service-extension’.

          Remarquez que cela n’interfère _pas_ avec l’utilisation de
          ‘~/.ssh/authorized_keys’.

     ‘generate-host-keys?’ (par défaut : ‘#t’)
          Indique s’il faut générer des pairs de clés hôtes avec
          ‘ssh-keygen -A’ dans ‘/etc/ssh’ s’il n’y en a pas.

          Générer des pairs de clés prend quelques secondes quand assez
          d’entropie est disponible et n’arrive qu’une fois. Vous pouvez
          vouloir désactiver cette génération dans une machine virtuelle
          qui n’en a pas besoin car les clés hôtes sont fournies d’une
          autre manière, et où le temps de démarrage supplémentaire peut
          être un problème.

     ‘log-level’ (par défaut : ‘'info’)
          C’est le symbole qui spécifie le niveau de journalisation :
          ‘quiet’, ‘fatal’, ‘error’, ‘info’, ‘verbose’, ‘debug’, etc.
          Voir la page de manuel de ‘sshd_config’ pour trouver la liste
          complète des noms de niveaux.

     ‘extra-content’ (par défaut : ‘""’)
          Ce champ peut être utilisé pour ajouter un texte arbitraire au
          fichier de configuration. C’est particulièrement utile pour
          des configurations élaborées qui ne pourraient pas être
          exprimées autrement. Cette configuration, par exemple,
          désactiverait les connexions en root, mais les permettrait
          depuis une adresse IP spécifique :

               (openssh-configuration
                 (extra-content "\
               Match Address 192.168.0.1
                 PermitRootLogin yes"))

 -- Procédure Scheme : dropbear-service [CONFIG]
     Lance le démon SSH Dropbear
     (https://matt.ucc.asn.au/dropbear/dropbear.html) avec la
     configuration CONFIG donnée, un objet ‘<dropbear-configuration>’.

     Par exemple, pour spécifier un service Dropbear qui écoute sur le
     port 1234, ajoutez cet appel au champ ‘services’ de votre système
     d’exploitation :

          (dropbear-service (dropbear-configuration
                              (port-number 1234)))

 -- Type de données : dropbear-configuration
     Ce type de données représente la configuration d’un démon SSH
     Dropbear.

     ‘dropbear’ (par défaut : DROPBEAR)
          Le paquet Dropbear à utiliser.

     ‘port-number’ (par défaut : 22)
          Le port TCP sur lequel le démon attend des connexions
          entrantes.

     ‘syslog-output?’ (par défaut : ‘#t’)
          Indique s’il faut activer la sortie vers syslog.

     ‘pid-file’ (par défaut : ‘"/var/run/dropbear.pid"’)
          Nom du fichier de PID du démon.

     ‘root-login?’ (par défaut : ‘#f’)
          Indique s’il faut autoriser les connexions en ‘root’.

     ‘allow-empty-passwords?’ (par défaut : ‘#f’)
          Indique s’il faut autoriser les mots de passes vides.

     ‘password-authentication?’ (par défaut : ‘#t’)
          Indique s’il faut autoriser l’authentification par mot de
          passe.

 -- Variable Scheme : autossh-service-type
     C’est le type du programme AutoSSH
     (https://www.harding.motd.ca/autossh) qui exécute une copie de
     ‘ssh’ et la surveille, en la redémarrant si nécessaire si elle
     meurt ou arrête le trafic passant. AutoSSH peut être exécuté
     manuellement à partir de la ligne de commande en passant des
     arguments au binaire ‘autossh’ du paquet ‘autossh’, mais peut aussi
     être exécuté comme un service Guix. Ce dernier cas d’utilisation
     est documenté ici.

     AutoSSH peut être utilisé pour transférer le trafic local vers une
     machine distante en utilisant un tunnel SSH, et il respecte le
     ‘~/.ssh/config’ de l’utilisateur sous lequel il est exécuté.

     Par exemple, pour spécifier un service exécutant autossh comme
     utilisateur·rice ‘pino’ et transférant toutes les connexions
     locales au port ‘8081’ vers ‘remote:8081’ en utilisant un tunnel
     SSH, ajoutez cet appel au champ ‘services’ du système
     d’exploitation :

          (service autossh-service-type
                   (autossh-configuration
                    (user "pino")
                    (ssh-options (list "-T" "-N" "-L" "8081:localhost:8081" "remote.net"))))

 -- Type de données : autossh-configuration
     Ce type de données représente la configuration du service AutoSSH.

     ‘user’ (par défaut : ‘"autossh"’)
          L’utilisateur·rice en tant que responsable du service AutoSSH.
          Cela suppose que l’utilisateur spécifié existe.

     ‘poll’ (par défaut : ‘600’)
          Spécifie le temps de sondage de la connexion en secondes.

     ‘first-poll’ (par défaut : ‘#f’)
          Indique le nombre de secondes que l’AutoSSH attend avant le
          premier test de connexion. Après ce premier test, le vote
          reprend au rythme défini dans ‘poll’. Lorsqu’il est défini à
          ‘#f’, le premier sondage n’est pas traité spécialement et
          utilisera également le sondage de connexion spécifié dans
          ‘poll’.

     ‘gate-time’ (par défaut : ‘30’)
          Spécifie combien de secondes une connexion SSH doit être
          active avant qu’elle soit considérée comme réussie.

     ‘log-level’ (par défaut : ‘1’)
          Le niveau du log, correspondant aux niveaux utilisés par
          syslog—donc ‘0’ est le plus silencieux tandis que ‘7’ est le
          plus bavard.

     ‘max-start’ (par défaut : ‘#f’)
          Le nombre maximum de fois que SSH peut être (re)démarré avant
          la sortie d’AutoSSH. Lorsqu’il est défini sur ‘#f’, aucun
          maximum n’est configuré et AutoSSH peut redémarrer
          indéfiniment.

     ‘message’ (par défaut : ‘""’)
          Le message à ajouter à celui de echo envoyé lors du test des
          connexions.

     ‘port’ (par défaut : ‘"0"’)
          Les ports utilisés pour la surveillance de la connexion.
          Lorsqu’il est défini sur ‘"0"’, la surveillance est
          désactivée. Lorsqu’il est défini sur ‘"N"’ où N est un entier
          positif, les ports N et N+1 sont utilisés pour surveiller la
          connexion, de sorte que le port N est le port de surveillance
          de base et ‘n+1’ est le port d’echo. Lorsqu’ils sont définis
          sur ‘"N:M"’ où N et M sont des entiers positifs, les ports N
          et M sont utilisés pour surveiller la connexion, de sorte que
          le port N est le port de surveillance de base et M est le port
          d’echo.

     ‘ssh-options’ (par défaut : ‘'()’)
          La liste des arguments de la ligne de commande à passer à
          ‘ssh’ lorsqu’elle est exécutée. Les options ‘-f’ et ‘-M’ sont
          réservées à AutoSSH et peuvent provoquer un comportement
          indéfini.

 -- Variable Scheme : webssh-service-type
     C’est le type du programme WebSSH (https://webssh.huashengdun.org/)
     qui exécute un client web SSH. WebSSH peut être exécuté
     manuellement à partir de la ligne de commande en passant des
     arguments au binaire ‘wssh’ du paquet ‘webssh’, mais il peut aussi
     être exécuté comme un service Guix. Ce dernier cas d’utilisation
     est documenté ici.

     Par exemple, pour spécifier un service exécutant WebSSH sur
     l’interface de bouclage sur le port ‘8888’ avec une politique de
     rejet avec une liste des hôtes autorisés à se connecter, et NGINX
     comme reverse-proxy de ce service écoutant la connexion HTTPS,
     ajouter cet appel au champ ‘services’ du système d’exploitation :

          (service webssh-service-type
            (webssh-configuration (address "127.0.0.1")
                                  (port 8888)
                                  (policy 'reject)
                                  (known-hosts '("localhost ecdsa-sha2-nistp256 AAAA…"
                                                 "127.0.0.1 ecdsa-sha2-nistp256 AAAA…"))))

          (service nginx-service-type
                   (nginx-configuration
                    (server-blocks
                     (list
                      (nginx-server-configuration
                       (inherit %webssh-configuration-nginx)
                       (server-name '("webssh.example.com"))
                       (listen '("443 ssl"))
                       (ssl-certificate (letsencrypt-certificate "webssh.example.com"))
                       (ssl-certificate-key (letsencrypt-key "webssh.example.com"))
                       (locations
                        (cons (nginx-location-configuration
                               (uri "/.well-known")
                               (body '("root /var/www;")))
                              (nginx-server-configuration-locations %webssh-configuration-nginx))))))))

 -- Type de données : webssh-configuration
     Type de données représentant la configuration pour
     ‘webssh-service’.

     ‘package’ (par défaut : WEBSSH)
          Le paquet ‘webssh’ à utiliser.

     ‘user-name’ (par défaut : "WEBSSH")
          Le nom ou l’identifiant de l’utilisateur·rice qui transfère le
          fichier vers et depuis ce module doit avoir lieu.

     ‘group-name’ (par défaut : "WEBSSH")
          Nom du groupe ou ID du groupe qui sera utilisé lors de l’accès
          au module.

     ‘address’ (par défaut : #F)
          Adresse IP sur laquelle ‘webssh’ écoute les connexions
          entrantes.

     ‘port’ (par défaut : 8888)
          Port TCP sur lequel ‘webssh’ écoute les connexions entrantes.

     ‘policy’ (par défaut : #F)
          Politique de connexion. La politique de REJECT nécessite de
          spécifier KNOWN-HOSTS.

     ‘known-hosts’ (par défaut : ’())
          Liste des hôtes qui ont permis une connexion SSH à partir de
          ‘webssh’.

     ‘log-file’ (par défaut : ‘"/var/log/webssh.log"’)
          Nom du fichier où ‘webssh’ écrit son fichier de journal.

     ‘log-level’ (par défaut : #F)
          Niveau d’enregistrement.

 -- Variable Scheme : %facebook-host-aliases
     Cette variable contient une chaîne de caractères à utiliser dans
     ‘/etc/hosts’ (*note (libc)Host Names::). Chaque ligne contient une
     entrée qui fait correspondre les noms des serveurs connus du
     service en ligne Facebook — p. ex. ‘www.facebook.com’ — à l’hôte
     local — ‘127.0.0.1’ ou son équivalent en IPv6, ‘::1’.

     Cette variable est typiquement utilisée dans le champ ‘hosts-file’
     d’une déclaration ‘operating-system’ (*note ‘/etc/hosts’: référence
     de operating-system.) :

          (use-modules (gnu) (guix))

          (operating-system
            (host-name "mamachine")
            ;; ...
            (hosts-file
              ;; Crée un fichier /etc/hosts avec des alias pour « localhost »
              ;; et « mamachine », ainsi que pour les serveurs de Facebook.
              (plain-file "hosts"
                          (string-append (local-host-aliases host-name)
                                         %facebook-host-aliases))))

     Ce mécanisme peut éviter que des programmes qui tournent
     localement, comme des navigateurs Web, ne se connectent à Facebook.

   Le module ‘(gnu services avahi)’ fourni la définition suivante.

 -- Variable Scheme : avahi-service-type
     C’est le service qui lance ‘avahi-daemon’, un service système qui
     répond aux requêtes mDNS/DNS-SD qui permet la découverte de
     services et la recherche de nom en « zéro configuration » (voir
     <https://avahi.org/>). Sa valeur doit être un enregistrement
     ‘avahi-configuration’ — voir plus bas.

     Ce service étend le démon de cache de services de noms (nscd) pour
     qu’il puisse résoudre les noms d’hôtes en ‘.local’ avec nss-mdns
     (https://0pointer.de/lennart/projects/nss-mdns/). *Note Name
     Service Switch::, pour plus d’informations sur la résolution des
     noms d’hôte.

     En plus, cela ajoute le paquet AVAHI au profil du système pour que
     les commandes comme ‘avahi-browse’ soient directement utilisables.

 -- Type de données : avahi-configuration
     Type de données représentant la configuration d’Avahi.

     ‘host-name’ (par défaut : ‘#f’)
          Si la valeur n’est pas ‘#f’, utilise cette valeur comme nom
          d’hôte à publier pour la machine ; sinon, utilise le vrai nom
          d’hôte de la machine.

     ‘publish?’ (par défaut : ‘#t’)
          Lorsque la valeur est vraie, permet la publication sur le
          réseau (en diffusion) des noms d’hôtes et des services.

     ‘publish-workstation?’ (par défaut : ‘#t’)
          Lorsque la valeur est vraie, ‘avahi-daemon’ publie le nom
          d’hôte et l’adresse IP de la machine via mDNS sur le réseau
          local. Pour voir les noms d’hôtes publiés sur votre réseau
          local, vous pouvez lancer :

               avahi-browse _workstation._tcp

     ‘wide-area?’ (par défaut : ‘#f’)
          Lorsque la valeur est vraie, DNS-SD sur DNS unicast est
          activé.

     ‘ipv4?’ (par défaut : ‘#t’)
     ‘ipv6?’ (par défaut : ‘#t’)
          Ces champs déterminent s’il faut utiliser des socket
          IPv4/IPv6.

     ‘domains-to-browse’ (par défaut : ‘'()’)
          C’est la liste des domaines sur lesquels naviguer.

 -- Variable Scheme : openvswitch-service-type
     C’est le type du service Open vSwitch
     (https://www.openvswitch.org), dont la valeur devrait être un objet
     ‘openvswitch-configuration’.

 -- Type de données : openvswitch-configuration
     Type de données représentant la configuration de Open vSwitch, un
     commutateur virtuel multiniveaux conçu pour rendre possible
     l’automatisation massive des réseaux avec des extensions
     programmables.

     ‘package’ (par défaut : OPENVSWITCH)
          Objet de paquet de Open vSwitch.

 -- Variable Scheme : pagekite-service-type
     Il s’agit du type de service du service PageKite
     (https://pagekite.net), une solution de tunneling permettant de
     rendre les serveurs locaux visibles au public, même derrière des
     pare-feu restrictifs ou du NAT sans transfert de ports. La valeur
     pour ce type de service est un enregistrement
     ‘pagekite-configuration’.

     Voici un exemple exposant les démons locaux HTTP et SSH :

          (service pagekite-service-type
                   (pagekite-configuration
                     (kites '("http:@kitename:localhost:80:@kitesecret"
                              "raw/22:@kitename:localhost:22:@kitesecret"))
                     (extra-file "/etc/pagekite.rc")))

 -- Type de données : pagekite-configuration
     Type de données représentant la configuration de PageKite.

     ‘package’ (par défaut : PAGEKITE)
          Objet du paquet de PageKite.

     ‘kitename’ (par défaut : ‘#f’)
          Nom de PageKite pour l’authentification au serveur frontal.

     ‘kitesecret’ (par défaut : ‘#f’)
          Secret partagé pour s’authentifier auprès du serveur frontal.
          Vous devriez probablement mettre cela dans ‘extra-file’ à la
          place.

     ‘frontend’ (par défaut : ‘#f’)
          Connectez-vous au serveur frontal nommé PageKite au lieu du
          service pagekite.net.

     ‘kites’ (par défaut : ‘'("http:@kitename:localhost:80:@kitesecret")’)
          Liste de services kites à utiliser. Expose HTTP sur le port 80
          par défaut. Le format est ‘proto:nomdukite:hôte:port:secret’.

     ‘extra-file’ (par défaut : ‘#f’)
          Fichier de configuration supplémentaire à lire, que vous devez
          créer manuellement. Utilisez-le pour ajouter des options
          supplémentaires et gérer les secrets partagés hors bande.

 -- Variable Scheme : yggdrasil-service-type
     Le type de service pour se connecter au réseau Yggdrasil
     (https://yggdrasil-network.github.io/), une jeune implémentation
     d’un réseau IPv6 entièrement chiffré de bout en bout.

          Yggdrasil fournit le routage indépendant du nom avec des
          adresses générées de manière cryptographiques. L’adressage
          statique signifie que vous pouvez garder la même adresse aussi
          longtemps que vous le souhaitez, même si vous changez
          d’emplacement, et que vous pouvez générer une nouvelle adresse
          (en générant de nouvelles clés) quand vous le souhaitez.
          <https://yggdrasil-network.github.io/2018/07/28/addressing.html>

     Passez-lui une valeur de type ‘yggdrasil-configuration’ pour le
     connecter aux pairs publics ou aux pairs locaux.

     voici un exemple qui utilise des pairs publics et une adresse
     statique. Les clés de signature et de chiffrement statiques sont
     définies dans ‘/etc/yggdrasil-private.conf’ (la valeur par défaut
     de ‘config-file’).

          ;; extrait d'une déclaration de système d'exploitation
          (service yggdrasil-service-type
                        (yggdrasil-configuration
                         (autoconf? #f) ;; utiliser uniquement les pairs publics
                         (json-config
                         ;; choisir parmi
                         ;; https://github.com/yggdrasil-network/public-peers
                          '((peers . #("tcp://1.2.3.4:1337"))))
                         ;; /etc/yggdrasil-private.conf est la valeur par défaut pour config-file
                         ))
          # exemple de contenu de /etc/yggdrasil-private.conf
          {
            # Votre clé publique. Vos pairs peuvent vous la demander pour la
            # mettre dans leur configuration AllowedPublicKeys.
            PublicKey: 64277...

            # Votre clé privée. NE la partagez avec PERSONNE !
            PrivateKey: 5c750...
          }

 -- Type de données : yggdrasil-configuration
     Type de données qui représente la configuration de Yggdrasil.

     ‘package’ (par défaut : ‘yggdrasil’)
          Objet du paquet de Yggdrasil.

     ‘json-config’ (par défaut : ‘'()’)
          Contenu de ‘/etc/yggdrasil.conf’. Sera fusionné avec
          ‘/etc/yggdrasil-private.conf’. Remarquez que ces paramètres
          sont stockés dans le dépôt de Guix, qui est disponible en
          lecture pour tout le monde. *Ne stockez pas vos clés privées
          dedans*. Voir la sortie de ‘yggdrasil -genconf’ pour un aperçu
          rapide de ce que sont des clés valides et leurs valeurs par
          défaut.

     ‘autoconf?’ (par défaut : ‘#f’)
          Indique s’il faut utiliser le mode automatique. L’activer fera
          utiliser une IP dynamique à Yggdrasil et l’appairer à ses
          voisins IPv6.

     ‘log-level’ (par défaut : ‘'info’)
          La quantité de détails à inclure dans les journaux. Utilisez
          ‘'debug’ pour plus de détails.

     ‘log-to’ (par défaut : ‘'stdout’)
          L’emplacement où envoyer les journaux. Par défaut, le service
          enregistre la sortie standard dans ‘/var/log/yggdrasil.log’.
          L’alternative est ‘'syslog’, qui envoie la sortie au service
          syslog.

     ‘config-file’ (par défaut : ‘"/etc/yggdrasil-private.conf"’)
          Le fichier HJSON depuis lequel charger les données sensibles.
          C’est l’emplacement où stocker les clés privées, qui doivent
          être spécifiées si vous ne voulez pas une adresse aléatoire à
          chaque démarrage. Utilisez ‘#f’ pour désactiver. Les options
          définies dans ce fichier prennent le pas sur ‘json-config’.
          Utilisez la sortie de ‘yggdrasil -genconf’ pour commencer.
          Pour configurer une adresse statique, supprimez tout sauf ces
          options :

             • ‘EncryptionPublicKey’
             • ‘EncryptionPrivateKey’
             • ‘SigningPublicKey’
             • ‘SigningPrivateKey’

 -- Variable Scheme : ipfs-service-type
     Le type de service pour se connecter au réseau IPFS
     (https://ipfs.io), un système de fichiers mondial, versionné et en
     pair-à-pair. Passez lui un objet ‘ipfs-configuration’ pour changer
     les ports utilisés pour la passerelle et l’API.

     Voici un exemple de configuration, avec des ports non standards :

          (service ipfs-service-type
                   (ipfs-configuration
                    (gateway "/ip4/127.0.0.1/tcp/8880")
                    (api "/ip4/127.0.0.1/tcp/8881")))

 -- Type de données : ipfs-configuration
     Type de données représentant la configuration d’IPFS.

     ‘package’ (par défaut : ‘go-ipfs’)
          Objet du paquet d’IPFS.

     ‘gateway’ (par défaut : ‘"/ip4/127.0.0.1/tcp/8082"’)
          Adresse de la passerelle, au format « multiaddress ».

     ‘api’ (par défaut : ‘"/ip4/127.0.0.1/tcp/5001"’)
          Adresse du point d’accès de l’API, au format « multiaddress ».

 -- Variable Scheme : keepalived-service-type
     C’est le type pour le logiciel de routage Keepalived
     (https://www.keepalived.org/), ‘keepalived’. Sa valeur doit être un
     enregistrement ‘keepalived-configuration’ comme dans cet exemple
     pour la machine maître :

          (service keepalived-service-type
                   (keepalived-configuration
                     (config-file (local-file "keepalived-master.conf"))))

     où ‘keepalived-master.conf’ :

          vrrp_instance my-group {
            state MASTER
            interface enp9s0
            virtual_router_id 100
            priority 100
            unicast_peer { 10.0.0.2 }
            virtual_ipaddress {
              10.0.0.4/24
            }
          }

     et pour la machine de secours :

          (service keepalived-service-type
                   (keepalived-configuration
                    (config-file (local-file "keepalived-backup.conf"))))

     où ‘keepalived-backup.conf’ :

          vrrp_instance my-group {
            state BACKUP
            interface enp9s0
            virtual_router_id 100
            priority 99
            unicast_peer { 10.0.0.3 }
            virtual_ipaddress {
              10.0.0.4/24
            }
          }


File: guix.fr.info,  Node: Mises à jour non surveillées (Unattended Upgrades),  Next: Système de fenêtrage X,  Prev: Services réseau,  Up: Services

12.9.6 Mises à jour non surveillées (Unattended Upgrades)
---------------------------------------------------------

Guix fournit un service pour effectuer des _unattended upgrades_ :
périodiquement, le système se reconfigure automatiquement à partir du
dernier Guix. Guix System possède plusieurs propriétés qui rendent les
mises à jour non surveillées sûres :

   • les mises à jour sont transactionnelles (soit la mise à jour
     réussit, soit elle échoue, mais vous ne pouvez pas vous retrouver
     avec un état système "intermédiaire") ;
   • le journal de mise à niveau est kept— vous pouvez le consulter avec
     ‘guix system list-generations’–et vous pouvez revenir à n’importe
     quelle génération précédente, si le système mis à jour ne se
     comporte pas comme prévu ;
   • le code du canal est authentifié, vous savez donc que vous ne
     pouvez exécuter que du code authentique (*note Canaux::) ;
   • ‘guix system reconfigure’ empêche les déclassements, ce qui le rend
     immunisé contre les attaques “downgrade attacks”.

   Pour mettre en place des mises à jour sans surveillance, ajoutez une
instance de ‘unattended-upgrade-service-type’ comme celle ci-dessous, à
la liste des services de votre système d’exploitation :

     (service unattended-upgrade-service-type)

   Les valeurs par défaut ci-dessus mettent en place des mises à jour
hebdomadaires : tous les dimanches à minuit. Il n’est pas nécessaire de
fournir le fichier de configuration du système d’exploitation : il
utilise ‘/run/current-system/configuration.scm’, ce qui garantit qu’il
utilise toujours votre dernière configuration—*note
provenance-service-type::, pour plus d’informations sur ce fichier.

   Plusieurs choses peuvent être configurés, notamment la périodicité et
les services (démons) à redémarrer à la fin. Lorsque la mise à jour est
réussie, le service se charge de supprimer les générations de systèmes
plus anciennes qu’un certain seuil, conformément à ‘guix system
delete-generations’. Voir la référence ci-dessous pour plus de détails.

   Pour vous assurer que les mises à jour sont bien effectuées, vous
pouvez exécuter ‘guix system describe’. Pour enquêter sur les échecs de
mise à jour, consultez le fichier journal des mises à jour non
surveillées (voir ci-dessous).

 -- Variable Scheme : unattended-upgrade-service-type
     C’est le type de service pour les mises à jour sans surveillance.
     Il met en place un job mcron (*note Exécution de tâches
     planifiées::) qui exécute ‘guix system reconfigure’ à partir de la
     dernière version des canaux spécifiés.

     Sa valeur doit être un enregistrement
     ‘unattended-upgrade-configuration’ (voir ci-dessous).

 -- Type de données : unattended-upgrade-configuration
     Ce type de données représente la configuration du service de mise à
     jour non surveillée. Les champs suivants sont disponibles :

     ‘schedule’ (par défaut : ‘"30 01 * * 0"’)
          Il s’agit du calendrier des mises à jour, exprimé sous la
          forme d’une gexp contenant un calendrier des travaux mcron
          (*note mcron job specifications: (mcron)Guile Syntax.).

     ‘channels’ (par défaut : ‘#~%default-channels’)
          Ce gexp spécifie les canaux à utiliser pour la mise à jour
          (*note Canaux::). Par défaut, l’extrémité du canal officiel
          ‘guix’ est utilisée.

     ‘operating-system-file’ (par défaut : ‘"/run/current-system/configuration.scm"’)
          Ce champ indique le fichier de configuration du système
          d’exploitation à utiliser. La valeur par défaut est de
          réutiliser le fichier de configuration de la configuration
          actuelle.

          Il y a cependant des cas où la référence à
          ‘/run/current-system/configuration.scm’ n’est pas suffisante,
          par exemple parce que ce fichier fait référence à des fichiers
          supplémentaires (clés publiques SSH, fichiers de configuration
          supplémentaires, etc.) via ‘local-file’ et constructions
          similaires. Pour ces cas, nous recommandons quelque chose qui
          va dans ce sens :

               (unattended-upgrade-configuration
                 (operating-system-file
                   (file-append (local-file "." "config-dir" #:recursive? #t)
                                "/config.scm")))

          L’effet ici est d’importer tout le répertoire courant dans le
          dépôt, et de se référer à ‘config.scm’ dans ce répertoire. Par
          conséquent, l’utilisation de ‘local-file’ dans ‘config.scm’
          fonctionnera comme prévu. *Note G-Expressions::, pour plus d’
          informations sur ‘local-file’ et ‘file-append’.

     ‘services-to-restart’ (par défaut : ‘'(mcron)’)
          Ce champ indique les services Shepherd à redémarrer lorsque la
          mise à jour est terminée.

          Ces services sont redémarrés dès qu’ils sont terminés, comme
          avec ‘herd restart’, ce qui garantit que la dernière version
          fonctionne—souvenez-vous que par défaut ‘guix system
          reconfigure’ ne redémarre que les services qui ne fonctionnent
          pas actuellement, ce qui est conservateur : cela minimise les
          perturbations mais laisse fonctionner les services obsolètes.

          Utilisez ‘herd status’ pour trouver les candidats au
          redémarrage. *Note Services::, pour des informations générales
          sur les services. Les services courants à redémarrer sont
          ‘ntpd’ et ‘ssh-daemon’.

          Par défaut, le service ‘mcron’ est redémarré. Cela garantit
          que la dernière version du travail de mise à niveau non
          surveillée sera utilisée la prochaine fois.

     ‘system-expiration’ (par défaut : ‘(* 3 30 24 3600)’)
          C’est le temps d’expiration en secondes pour les générations
          du système. Les générations du système plus anciennes que ce
          délai sont supprimées avec ‘guix system delete-generations’
          lorsqu’une mise à jour se termine .

               Remarque : Le service de mise à jour sans surveillance ne
               fait pas fonctionner le ramasse miettes. Vous voudrez
               probablement configurer votre propre job mcron pour
               exécuter ‘guix gc’ périodiquement.

     ‘minimum-duration’ (par défaut : ‘3600’)
          Durée maximale en secondes de la mise à jour ; passé ce délai,
          la mise à jour est interrompue.

          Cela est surtout utile pour s’assurer que la mise à jour ne
          finira pas par reconstruire ou retélécharger « le monde ».

     ‘log-file’ (par défaut : ‘"/var/log/unattended-upgrade.log"’)
          Fichier où sont consignées les mises à jour non surveillées.


File: guix.fr.info,  Node: Système de fenêtrage X,  Next: Services d'impression,  Prev: Mises à jour non surveillées (Unattended Upgrades),  Up: Services

12.9.7 Système de fenêtrage X
-----------------------------

La prise en chargue du système d’affichage graphique X Window — en
particulier Xorg — est fournit par le module ‘(gnu services xorg)’.
Remarquez qu’il n’y a pas de procédure ‘xorg-service’. À la place, le
serveur X est démarré par le “gestionnaire de connexion”, par défaut le
gestionnaire d’affichage de GNOME (GDM).

   GDM permet évidemment aux utilisateurs de se connecter et d’ouvrir un
gestionnaire de fenêtre ou un gestionnaire d’environnement autre que
GNOME ; pour ceux qui utilisent GNOME, GDM est requis pour certaines
fonctionnalités comme l’écran de verrouillage automatique.

   Pour utiliser X11, vous devez installer au moins un “gestionnaire de
fenêtre” — par exemple les paquets ‘windowmaker’ ou ‘openbox’ — de
préférence en l’ajoutant au champ ‘packages’ de votre définition de
système d’exploitation (*note system-wide packages: référence de
operating-system.).

   GDM prend aussi en charge Wayland : il peut lui-même utiliser Wayland
au lieu de X11 pour son interface utilisateur, et il peut aussi démarrer
des sessions Wayland. Le premier est requis pour le second. Pour
l’activer indiquez ‘wayland?’ à ‘#t’ dans ‘gdm-configuration’.

 -- Variable Scheme : gdm-service-type
     C’est le type pour le GNOME Desktop Manager
     (https://wiki.gnome.org/Projects/GDM/) (GDM), un programme qui gère
     les serveurs d’affichage graphique et qui gère les connexions
     graphiques des utilisateur·rice·s. Sa valeur doit être un
     ‘gdm-configuration’ (voir ci-dessous).

     GDM cherche des “types de sessions” définies par les fichiers
     ‘.desktop’ dans ‘/run/current-system/profile/share/xsessions’ (pour
     les session X11) et
     ‘/run/current-system/profile/share/wayland-sessions’ (pour les
     sessions Wayland) et permet aux utilisateurs de choisir une session
     depuis l’écran de connexion. Les paquets comme ‘gnmoe’, ‘xfce’,
     ‘i3’ et ‘sway’ fournissent des fichiers ‘.desktop’ ; les ajouter à
     l’ensemble des paquets du système les rendra automatiquement
     disponibles sur l’écran de connexion.

     En plus, les fichiers ‘~/.xsession’ sont pris en compte. Lorsqu’il
     est disponible, ‘~/.xsession’ doit être un fichier exécutable qui
     démarre un gestionnaire de fenêtre au un autre client X.

 -- Type de données : gdm-configuration
     ‘auto-login?’ (par défaut : ‘#f’)
     ‘default-user’ (par défaut : ‘#f’)
          Lorsque ‘auto-login?’ est faux, GDM présente un écran de
          connexion.

          Lorsque ‘auto-login?’ est vrai, GDM se connecte directement en
          tant que ‘default-user’.

     ‘auto-suspend?’ (par défaut : ‘#t’)
          Lorsque la valeur est vraie, GDM passera en veille lorsque
          personne n’est connecté physiquement. Si votre machine peut
          être utilisée avec un bureau à distance ou SSH, cette option
          devrait être mise à faux pour éviter que GDM n’interrompe les
          sessions distantes ou rende la machine indisponible.

     ‘debug?’ (par défaut : ‘#f’)
          Lorsqu’il est « vrai », GDM écrit des messages de débogage
          dans son journal.

     ‘gnome-shell-assets’ (par défaut : …)
          Liste de données requises par GDM : un thème d’icônes, des
          polices, etc.

     ‘xorg-configuration’ (par défaut : ‘(xorg-configuration)’)
          Configuration du serveur graphique Xorg.

     ‘x-session’ (par défaut : ‘xinitrc’)
          Le script à lancer avant de démarrer une session X.

     ‘xdmcp?’ (par défaut : ‘#f’)
          Lorsque la valeur est vraie, active le protocole de contrôle
          du gestionnaire d’affichage X (XDMCP). Cela ne devrait être
          activé que dans des environnements de confiance, car le
          protocole n’est pas sécurisé. Lorsque l’option est activée,
          GDM attend des requêtes XDMCP sur le port UDP 177.

     ‘dbus-daemon’ (par défaut : ‘dbus-daemon-wrapper’)
          Nom du fichier de l’exécutable ‘dbus-daemon’.

     ‘gdm’ (par défaut : ‘gdm’)
          Le paquet GDM à utiliser.

     ‘wayland?’ (par défaut : ‘#f’)
          Lorsque la valeur est vraie, active Wayland dans GDM, ce qui
          est requis pour utiliser les sessions Wayland.

     ‘wayland-session’ (par défaut : ‘gdm-wayland-session-wrapper’)
          L’enveloppe de session Wayland à utiliser, requise pour mettre
          en place l’environnement.

 -- Variable Scheme : slim-service-type
     C’est de type pour le gestionnaire de connexion graphique SLiM pour
     X11.

     Comme GDM, SLiM recherche des types de sessions décrites par des
     fichiers ‘.desktop’ et permet aux utilisateurs de choisir une
     session à partir de l’écran de connexion avec ‘F1’. Il prend aussi
     en compte les fichiers ‘~/.xsession’.

     Contrairement à GDM, SLiM ne démarre pas la session utilisateur sur
     un terminal virtuel différent à la connexion, ce qui signifie que
     vous ne pouvez démarrer qu’une seule session graphique. Si vous
     voulez pouvoir exécuter plusieurs sessions graphiques en même
     temps, vous devez ajouter plusieurs services SLiM à la liste des
     services de votre système. L’exemple suivant montre comment
     remplacer le service GDM par défaut par deux services SLiM sur les
     tty 7 et 8.

          (use-modules (gnu services)
                       (gnu services desktop)
                       (gnu services xorg))

          (operating-system
            ;; ...
            (services (cons* (service slim-service-type (slim-configuration
                                                         (display ":0")
                                                         (vt "vt7")))
                             (service slim-service-type (slim-configuration
                                                         (display ":1")
                                                         (vt "vt8")))
                             (modify-services %desktop-services
                               (delete gdm-service-type)))))

 -- Type de données : slim-configuration
     Type de données représentant la configuration de
     ‘slim-service-type’.

     ‘allow-empty-passwords?’ (par défaut : ‘#t’)
          S’il faut autoriser les connexions avec un mot de passe vide.

     ‘gnupg?’ (par défaut : ‘#f’)
          Si l’option est activée, ‘pam-gnupg’ essaiera automatique de
          débloquer les clés GPG de l’utilisateur·rice avec le mot de
          passe de connexion via ‘gpg-agent’. Les keygrips de toutes les
          clés à débloquer doivent se trouver dans ‘~/.pam-gnupg’ et
          vous pouvez les récupérer avec ‘gpg -K --with-keygrip’. Vous
          pouvez activer le préchargement des phrases de passes en
          ajoutant ‘allow-preset-passphrase’ dans
          ‘~/.gnupg/gpg-agent.conf’.

     ‘auto-login?’ (par défaut : ‘#f’)
     ‘default-user’ (par défaut : ‘""’)
          Lorsque ‘auto-login?’ est faux, SLiM présent un écran de
          connexion.

          Lorsque ‘auto-login?’ est vrai, SLiM se connecte directement
          en tant que ‘default-user’.

     ‘theme’ (par défaut : ‘%default-slim-theme’)
     ‘theme-name’ (par défaut : ‘%default-slim-theme-name’)
          Le thème graphique à utiliser et son nom.

     ‘auto-login-session’ (par défaut : ‘#f’)
          Si la valeur est vraie, elle doit être le nom d’un exécutable
          à démarrer comme session par défaut — p. ex. ‘(file-append
          windowmaker "/bin/windowmaker")’.

          Si la valeur est fausse, une session décrite par l’un des
          fichiers ‘.desktop’ disponibles dans
          ‘/run/current-system/profile’ et ‘~/.guix-profile’ sera
          utilisée.

               Remarque : Vous devez installer au moins un gestionnaire
               de fenêtres dans le profil du système ou dans votre
               profil utilisateur. Sinon, si ‘auto-login-session’ est
               faux, vous ne serez jamais capable de vous connecter.

     ‘xorg-configuration’ (par défaut : ‘(xorg-configuration)’)
          Configuration du serveur graphique Xorg.

     ‘display’ (par défaut : ‘":0"’)
          La session d’affichage sur laquelle démarrer le serveur
          graphique Xorg.

     ‘vt’ (par défaut : ‘"vt7"’)
          Le terminal virtuel sur lequel démarrer le serveur d’affichage
          graphique Xorg.

     ‘xauth’ (par défaut : ‘xauth’)
          Le paquet XAuth à utiliser.

     ‘shepherd’ (par défaut : ‘shepherd’)
          Le paquet Shepherd à utiliser pour invoquer ‘halt’ et
          ‘reboot’.

     ‘sessreg’ (par défaut : ‘sessreg’)
          Le paquet sessreg à utiliser pour enregistrer la session.

     ‘slim’ (par défaut : ‘slim’)
          Le paquet SLiM à utiliser.

 -- Variable Scheme : %default-theme
 -- Variable Scheme : %default-theme-name
     Le thème SLiM par défaut et son nom.

 -- Variable Scheme : sddm-service-type
     C’est le type de service qui permet d’exécuter le gestionnaire
     d’affichage Gestionnaire d’affichage SDDM
     (https://github.com/sddm/sddm). Sa valeur doit être un
     enregistrement ‘sddm-configuration’ (voir ci-dessous).

     Voici un exemple d’utilisation :

          (service sddm-service-type
                   (sddm-configuration
                     (auto-login-user "alice")
                     (auto-login-session "xfce.desktop")))

 -- Type de données : sddm-configuration
     Ce type de données représente la configuration du gestionnaire de
     connexion SDDM. Les champs disponibles sont :

     ‘sddm’ (par défaut : ‘sddm’)
          Le paquet SDDM à utiliser.

     ‘display-server’ (par défaut : "x11")
          Choisit le serveur d’affichage à utiliser pour l’écran
          d’accueil. Les valeurs valides sont ‘"x11"’ ou ‘"wayland"’.

     ‘numlock’ (par défaut : "on")
          Les valeurs valides sont ‘"on"’, ‘"off"’ or ‘"none"’.

     ‘halt-command’ (par défaut : ‘#~(string-append #$shepherd "/sbin/halt")’)
          La commande à lancer à l’arrêt du système.

     ‘reboot-command’ (par défaut : ‘#~(string-append #$shepherd "/sbin/reboot")’)
          La commande à lancer lors du redémarrage du système.

     ‘theme’ (par défaut : "maldives")
          Thème à utiliser. Les thèmes par défaut fournis par SDDM sont
          ‘"elarun"’, ‘"maldives"’ ou ‘"maya"’.

     ‘themes-directory’ (par défaut : "/run/current-system/profile/share/sddm/themes")
          Le répertoire où se trouvent les thèmes.

     ‘faces-directory’ (par défaut : "/run/current-system/profile/share/sddm/faces")
          Répertoire où se trouvent les avatars.

     ‘default-path’ (par défaut : "/run/current-system/profile/bin")
          Le PATH par défaut à utiliser.

     ‘minimum-uid’ (par défaut : 1000)
          UID minimum affiché dans le SDDM et autorisé pour la
          connexion.

     ‘maximum-uid’ (par défaut : 2000)
          UID maximum pour être affiché dans SDDM.

     ‘remember-last-user?’ (par défaut : #t)
          S’il faut se rappeler le dernier utilisateur connecté.

     ‘remember-last-session?’ (par défaut : #t)
          S’il faut se rappeler la dernière session.

     ‘hide-users’ (par défaut : "")
          Les noms d’utilisateurs à cacher sur l’écran d’accueil de
          SDDM.

     ‘hide-shells’ (par défaut : ‘#~(string-append #$shadow "/sbin/nologin")’)
          Les utilisateurs avec les shells listés seront cachés sur
          l’écran d’accueil de SDDM.

     ‘session-command’ (par défaut : ‘#~(string-append #$sddm "/share/sddm/scripts/wayland-session")’)
          Le script à lancer avant de démarrer une session wayland.

     ‘sessions-directory’ (par défaut : "/run/current-system/profile/share/wayland-sessions")
          Le répertoire où trouver les fichiers .desktop qui démarrent
          des sessions wayland.

     ‘xorg-configuration’ (par défaut : ‘(xorg-configuration)’)
          Configuration du serveur graphique Xorg.

     ‘xauth-path’ (par défaut : ‘#~(string-append #$xauth "/bin/xauth")’)
          Chemin vers xauth.

     ‘xephyr-path’ (par défaut : ‘#~(string-append #$xorg-server "/bin/Xephyr")’)
          Chemin vers Xephyr.

     ‘xdisplay-start’ (par défaut : ‘#~(string-append #$sddm "/share/sddm/scripts/Xsetup")’)
          Le script à lancer après avoir démarré xorg-server.

     ‘xdisplay-stop’ (par défaut : ‘#~(string-append #$sddm "/share/sddm/scripts/Xstop")’)
          Le script à lancer avant d’arrêter xorg-server.

     ‘xsession-command’ (par défaut : ‘xinitrc’)
          Le script à lancer avant de démarrer une session X.

     ‘xsessions-directory’ (par défaut : "/run/current-system/profile/share/xsessions")
          Répertoire où trouver les fichiers .desktop pour les sessions
          X.

     ‘minimum-vt’ (par défaut : 7)
          VT minimal à utiliser.

     ‘auto-login-user’ (par défaut : "")
          Compte utilisateur qui sera automatiquement connecté.
          Paramétrer ceci à la chaine vide désactive la connexion
          automatique.

     ‘auto-login-session’ (par défaut : "")
          Nom du fichier ‘.desktop’ utilisé comme session pour la
          connexion automatique, ou la chaine vide.

     ‘relogin?’ (par défaut : #f)
          S’il faut se reconnecter après la déconnexion.

 -- Variable Scheme : lightdm-service-type
     C’est le type de service qui lance le gestionnaire d’affichage
     LightDM (https://github.com/canonical/lightdm). Sa valeur doit être
     un enregistrement ‘lightdm-configuration’, qui est documenté
     ci-dessous. Entre autres particularité, il possède une intégration
     avec TigerVNC pour accéder à votre bureau à distance ainsi que la
     prise en charge du protocole XDMCP, qui peut être utilisé par les
     clients distants pour démarrer une session à partir du gestionnaire
     de connexion.

     Dans sa forme la plus basique, il peut s’utiliser de cette manière
     :

          (service lightdm-service-type)

     Un exemple plus élaboré qui utilise la fonctionnalité VNC et active
     plus de fonctionnalités et les journaux verbeux ressemblerait à
     ceci :

          (service lightdm-service-type
                   (lightdm-configuration
                    (allow-empty-passwords? #t)
                    (xdmcp? #t)
                    (vnc-server? #t)
                    (vnc-server-command
                     (file-append tigervnc-server "/bin/Xvnc"
                                  "  -SecurityTypes None"))
                    (seats
                     (list (lightdm-seat-configuration
                            (name "*")
                            (user-session "ratpoison"))))))

 -- Type de données : lightdm-configuration
     Les champs de ‘lightdm-configuration’ disponibles sont :

     ‘lightdm’ (par défaut : ‘lightdm’) (type : simili-fichier)
          Le paquet lightdm à utiliser.

     ‘allow-empty-passwords?’ (par défaut : ‘#f’) (type : booléen)
          Indique si les utilisateurs et utilisatrices sans mot de passe
          peuvent se connecter.

     ‘debug?’ (par défaut : ‘#f’) (type : booléen)
          Active la sortie verbeuse.

     ‘xorg-configuration’ (type : xorg-configuration)
          La configuration par défaut du serveur Xorg à utiliser pour
          générer le script de démarrage du serveur Xorg. Elle peut être
          raffinée pour chaque siège via le champ ‘xserver-command’ de
          l’enregistrement ‘<lightdm-seat-configuration>’ si vous le
          souhaitez.

     ‘greeters’ (type : liste-de-greeter-configurations)
          Les configurations de l’écran d’accueil de LightDM spécifiant
          les écrans d’accueil à utiliser.

     ‘seats’ (type : liste-de-seat-configurations)
          Les configurations de sièges à utiliser. Un siège LightDM
          correspond à un utilisateur ou une utilisatrice.

     ‘xdmcp?’ (par défaut : ‘#f’) (type : booléen)
          Indique si le serveur XDMCP doit écouter sur le port UDP 177.

     ‘xdmcp-listen-address’ (type : peut-être-chaine)
          L’hôte ou l’adresse IP sur laquelle le serveur XDMCP écoute
          les connexions entrantes. Si la valeur n’est pas spécifiée,
          écoute sur tous les hôtes et toutes les adresses.

     ‘vnc-server?’ (par défaut : ‘#f’) (type : booléen)
          Si un serveur VNC est démarré.

     ‘vnc-server-command’ (type : simili-fichier)
          La commande Xvnc à utiliser pour le serveur VNC, il est
          possible de fournir des options supplémentaires qui ne sont
          sinon pas exposées avec la commande, par exemple pour
          désactiver la sécurité :

               (vnc-server-command (file-append tigervnc-server "/bin/Xvnc"
                                                " -SecurityTypes None" ))

          Ou pour indiquer un fichier de mot de passe pour le mécanisme
          VncAuth classique (non sécurisé) :

               (vnc-server-command (file-append tigervnc-server "/bin/Xvnc"
                                                " -PasswordFile /var/lib/lightdm/.vnc/passwd"))

          Le fichier de mots de passe devrait être créé manuellement
          avec la commande ‘vncpasswd’. Remarquez que LightDM créera de
          nouvelles sessions pour les utilisateurs et les utilisatrices
          VNC, ce qui signifie qu’ils et elles devront s’authentifier de
          la même manière que les utilisateurs locaux et utilisatrices
          locales.

     ‘vnc-server-listen-address’ (type : peut-être-chaine)
          L’hôte ou l’adresse IP sur laquelle le serveur VNC écoute les
          connexions entrantes. Si la valeur n’est pas spécifiée, écoute
          sur tous les hôtes et toutes les adresses.

     ‘vnc-server-port’ (par défaut : ‘5900’) (type : nombre)
          Port TCP sur lequel écoute le serveur VNC.

     ‘extra-config’ (par défaut : ‘()’) (type : liste-de-chaines)
          Valeurs de configuration supplémentaires à ajouter à la fin du
          fichier de configuration de LightDM.

 -- Type de données : lightdm-gtk-greeter-configuration
     Les champs de ‘lightdm-gtk-greter-configuration’ disponibles sont :

     ‘lightdm-gtk-greeter’ (par défaut : ‘lightdm-gtk-greeter’) (type : simili-fichier)
          Le paquet lightdm-gtk-greeter à utiliser.

     ‘assets’  
          (par défaut : ‘(adwaita-icon-theme
          gnome-themes-extrahicolor-icon-theme)’)  (type :
          liste-de-simili-fichiers) La liste des paquets qui
          accompagnent l’écran d’accueil, comme un paquet qui fournit un
          thème d’icônes.

     ‘theme-name’ (par défaut : ‘"Adwaita"’) (type : chaine)
          Le nom du thème à utiliser.

     ‘icon-theme-name’ (par défaut : ‘"Adwaita"’) (type : chaine)
          Le nom du thème d’icônes à utiliser.

     ‘cursor-theme-name’ (par défaut : ‘"Adwaita"’) (type : chaine)
          Le nom du thème de curseurs à utiliser.

     ‘cursor-theme-size’ (par défaut : ‘16’) (type : nombre)
          La taille à utiliser pour le thème de curseurs.

     ‘allow-debugging?’ (type : peut-être-booléen)
          Indiquez #t pour activer le niveau de journalisation de
          débogage.

     ‘background’ (type : simili-fichier)
          L’image de fond à utiliser.

     ‘at-spi-enables?’ (par défaut : ‘#f’) (type : booléen)
          Active la prise en charge de l’accessibilité à travers
          l’interface de fourniture de service de technologie
          d’assistance (AT-SPI).

     ‘a11y-states’  
          (par défaut : ‘(contrast font keyboard reader)’) (type :
          liste-d’états-d’accessibilité) Les fonctionnalités
          d’accessibilité à activer, données en tant que liste de
          symboles.

     ‘reader’ (type : peut-être-simili-fichier)
          La commande à utiliser pour lancer un lecteur d’écran.

     ‘extra-config’ (par défaut : ‘()’) (type : liste-de-chaines)
          Valeurs de configuration supplémentaires à ajouter à la fin du
          fichier de configuration de l’écran d’accueil de LightDM.

 -- Type de données : lightdm-seat-configuration
     Les champs de ‘lightdm-seat-configuration’ disponibles sont :

     ‘name’ (type : nom-de-siège)
          Le nom du siège. Vous pouvez utiliser un astérisque (*) dans
          le nom pour appliquer la configuration de siège à tous les
          noms de sièges qui correspondent.

     ‘user-session’ (type : peut-être-chaine)
          La session à utiliser par défaut. Le nom de session doit être
          fournit en une chaine en minuscules, comme ‘"gnome"’,
          ‘"ratpoison"’, etc.

     ‘type’ (par défaut : ‘local’) (type : type-de-siège)
          Le type du siège, soit le symbole ‘local’, soit le symbole
          ‘xremote’.

     ‘autologin-user’ (type : peut-être-chaine)
          Le nom d’utilisateur à connecter par défaut.

     ‘greeter-session’  
          (par défaut : ‘lightdm-gtk-greeter’) (type : greeter-session)
          La session d’écran d’accueil à utilisé, spécifié en tant que
          symbole. Actuellement, seul ‘lightdm-gtk-greeter’ est pris en
          charge.

     ‘xserver-command’ (type : peut-être-simili-fichier)
          La commande du serveur Xorg à lancer.

     ‘session-wrapper’ (type : simili-fichier)
          L’enveloppe de session xinitrc à utiliser.

     ‘extra-config’ (par défaut : ‘()’) (type : liste-de-chaines)
          Valeurs de configuration supplémentaires à ajouter à la fin de
          la section de configuration des sièges.

 -- Type de données : xorg-configuration
     Ce type de données représente la configuration du serveur
     d’affichage graphique Xorg. Remarquez qu’il n’y a pas de service
     Xorg ; à la place, le serveur X est démarré par un « gestionnaire
     d’affichage graphique » comme GDM, SDDM, LightDM et SLiM. Ainsi, la
     configuration de ces gestionnaires d’affichage agrègent un
     enregistrement ‘xorg-configuration’.

     ‘modules’ (par défaut : ‘%default-xorg-modules’)
          C’est une liste de “paquets de module” chargés par le serveur
          Xorg — p. ex. ‘xf86-video-vesa’, ‘xf86-input-keyboard’ etc.

     ‘fonts’ (par défaut : ‘%default-xorg-fonts’)
          C’est une liste de répertoires de polices à ajouter au “chemin
          de polices” du serveur.

     ‘drivers’ (par défaut : ‘'()’)
          Cela doit être soit la liste vide, auquel cas Xorg choisit un
          pilote graphique automatiquement, soit une liste de noms de
          pilotes qui seront essayés dans cet ordre — p. ex.
          ‘("modesetting" "vesa")’.

     ‘resolutions’ (par défaut : ‘'()’)
          Lorsque ‘resolutions’ est la liste vide, Xorg choisit une
          résolution d’écran appropriée. Sinon, il doit s’agir d’une
          liste de résolutions — p. ex. ‘((1024 768) (640 480))’.

     ‘keyboard-layout’ (par défaut : ‘#f’)
          Si la valeur est ‘#f’, Xorg utilise la disposition du clavier
          par défaut — habituellement la disposition anglaise américaine
          (« qwerty ») pour un clavier de PC à 105 touches.

          Sinon cela doit être un objet ‘keyboard-layout’ spécifiant la
          disposition du clavier à utiliser lorsque Xorg tourne. *Note
          Disposition du clavier:: pour plus d’informations sur la
          manière de spécifier la disposition du clavier.

     ‘extra-config’ (par défaut : ‘'()’)
          C’est une liste de chaînes de caractères ou d’objets ajoutés
          au fichier de configuration. Elle est utile pour ajouter du
          texte supplémentaire directement dans le fichier de
          configuration.

     ‘server’ (par défaut : ‘xorg-server’)
          C’est le paquet fournissant le serveur Xorg.

     ‘server-arguments’ (par défaut : ‘%default-xorg-server-arguments’)
          Liste d’arguments de la ligne de commande supplémentaires à
          passer au serveur X. La valeur par défaut est ‘-nolisten tcp’.

 -- Procédure Scheme : set-xorg-configuration CONFIG
          [LOGIN-MANAGER-SERVICE-TYPE]
     Dit au gestionnaire de connexion (de type
     LOGIN-MANAGER-SERVICE-TYPE) d’utiliser CONFIG, un enregistrement
     ‘<xorg-configuration>’.

     Comme la configuration Xog est incluse dans la configuration du
     gestionnaire de connexion — p. ex. ‘gdm-configuration’ — cette
     procédure fournit un raccourci pour configurer Xorg.

 -- Procédure Scheme : xorg-start-command [CONFIG]
     Renvoie un script ‘startx’ dans lequel les modules, les polices,
     etc., spécifiés dans CONFIG sont disponibles. Le résultat devrait
     être utilisé à la place de ‘startx’.

     Habituellement le serveur X est démarré par un gestionnaire de
     connexion.

 -- Procédure Scheme : screen-locker-service PACKAGE [PROGRAM]
     Ajoute PACKAGE, un paquet pour un verrouiller l’écran ou un
     économiseur d’écran dont la commande est PROGRAM, à l’ensemble des
     programmes setuid et lui ajoute une entrée PAM. Par exemple :

          (screen-locker-service xlockmore "xlock")

     rend utilisable le bon vieux XlockMore.


File: guix.fr.info,  Node: Services d'impression,  Next: Services de bureaux,  Prev: Système de fenêtrage X,  Up: Services

12.9.8 Services d’impression
----------------------------

Le module ‘(gnu services cups)’ fournit une définition de service Guix
pour le service d’impression CUPS. Pour ajouter la prise en charge d’une
imprimante à un système Guix, ajoutez un ‘cups-service’ à la définition
du système d’exploitation :

 -- Variable Scheme : cups-service-type
     Le type de service pour un serveur d’impression CUPS. Sa valeur
     devrait être une configuration CUPS valide (voir plus bas). Pour
     utiliser les paramètres par défaut, écrivez simplement :
          (service cups-service-type)

   La configuration de CUPS contrôle les paramètres de base de votre
installation CUPS : sur quelles interfaces il doit écouter, que faire si
un travail échoue, combien de journalisation il faut faire, etc. Pour
ajouter une imprimante, vous devrez visiter l’URL <http://localhost:631>
ou utiliser un outil comme les services de configuration d’imprimante de
GNOME. Par défaut, la configuration du service CUPS générera un
certificat auto-signé si besoin, pour les connexions sécurisée avec le
serveur d’impression.

   Supposons que vous souhaitiez activer l’interface Web de CUPS et
ajouter le support pour les imprimantes Epson via le paquet
‘epson-inkjet-printer-escpr’ et pour les imprimantes HP via le paquet
‘hplip-minimal’. Vous pouvez le faire directement, comme ceci (vous
devez utiliser le module ‘(gnu packages cups)’) :

     (service cups-service-type
              (cups-configuration
                (web-interface? #t)
                (extensions
                  (list cups-filters epson-inkjet-printer-escpr hplip-minimal))))

     Remarque : Si vous souhaitez utiliser la GUI basée sur Qt5 qui
     provient du paquet hplip, nous vous suggérons d’installer le paquet
     ‘hplip’, soit dans votre configuration d’OS, soit en tant
     qu’utilisateur.

   Les paramètres de configuration disponibles sont les suivants. Chaque
définition des paramètres est précédé par son type ; par exemple,
‘string-list toto’ indique que le paramètre ‘toto’ devrait être spécifié
comme une liste de chaînes de caractères. Il y a aussi une manière de
spécifier la configuration comme une chaîne de caractères, si vous avez
un vieux fichier ‘cupsd.conf’ que vous voulez porter depuis un autre
système ; voir la fin pour plus de détails.

   Les champs de ‘cups-configuration’ disponibles sont :

 -- paramètre de ‘cups-configuration’ : package cups
     Le paquet CUPS.

 -- paramètre de ‘cups-configuration’ : package-list extensions (par
          défaut : ‘(list brlaser cups-filters
          epson-inkjet-printer-escpr foomatic-filters hplip-minimal
          splix)’)
     Pilotes et autres extensions du paquet CUPS.

 -- paramètre de ‘cups-configuration’ : files-configuration
          files-configuration
     Configuration de l’emplacement où écrire les journaux, quels
     répertoires utiliser pour les travaux d’impression et les
     paramètres de configuration privilégiés liés.

     Les champs ‘files-configuration’ disponibles sont :

      -- paramètre de ‘files-configuration’ : log-location access-log
          Définit le fichier de journal d’accès. Spécifier un nom de
          fichier vide désactive la génération de journaux d’accès. La
          valeur ‘stderr’ fait que les entrées du journal seront envoyés
          sur l’erreur standard lorsque l’ordonnanceur est lancé au
          premier plan ou vers le démon de journal système lorsqu’il
          tourne en tâche de fond. La valeur ‘syslog’ fait que les
          entrées du journal sont envoyées au démon de journalisation du
          système. Le nom du serveur peut être inclus dans les noms de
          fichiers avec la chaîne ‘%s’, comme dans
          ‘/var/log/cups/%s-access_log’.

          La valeur par défaut est ‘"/var/log/cups/access_log"’.

      -- paramètre de ‘files-configuration’ : file-name cache-dir
          L’emplacement où CUPS devrait mettre les données en cache.

          La valeur par défaut est ‘"/var/cache/cups"’.

      -- paramètre de ‘files-configuration’ : string config-file-perm
          Spécifie les permissions pour tous les fichiers de
          configuration que l’ordonnanceur écrit.

          Remarquez que les permissions pour le fichier printers.conf
          sont actuellement masqués pour ne permettre que l’accès par
          l’utilisateur de l’ordonnanceur (typiquement root). La raison
          est que les URI des imprimantes contiennent des informations
          d’authentification sensibles qui ne devraient pas être connues
          sur le système. Il n’est pas possible de désactiver cette
          fonctionnalité de sécurité.

          La valeur par défaut est ‘"0640"’.

      -- paramètre de ‘files-configuration’ : log-location error-log
          Définit le fichier de journal d’erreur. Spécifier un nom de
          fichier vide désactive la génération de journaux d’erreur. La
          valeur ‘stderr’ fait que les entrées du journal seront envoyés
          sur l’erreur standard lorsque l’ordonnanceur est lancé au
          premier plan ou vers le démon de journalisation du système
          lorsqu’il tourne en tâche de fond. La valeur ‘syslog’ fait que
          les entrées du journal sont envoyées au démon de
          journalisation du système. Le nom du serveur peut être inclus
          dans les noms de fichiers avec la chaîne ‘%s’, comme dans
          ‘/var/log/cups/%s-error_log’.

          La valeur par défaut est ‘"/var/log/cups/error_log"’.

      -- paramètre de ‘files-configuration’ : string fatal-errors
          Spécifie quelles erreurs sont fatales, qui font terminer
          l’ordonnanceur. Les types de chaînes sont :

          ‘none’
               Aucune erreur n’est fatale.

          ‘all’
               Toutes les erreurs ci-dessous sont fatales.

          ‘browse’
               Les erreurs d’initialisation de la navigation sont
               fatales, par exemple les connexion échouées au démon
               DNS-SD.

          ‘config’
               Les erreurs de syntaxe du fichier de configuration sont
               fatale.

          ‘listen’
               Les erreurs d’écoute ou de port sont fatales, sauf pour
               les erreurs d’IPv6 sur la boucle locale ou les adresses
               ‘any’.

          ‘log’
               Les erreurs de création ou d’écriture des fichiers de
               journal sont fatales.

          ‘permissions’
               Les mauvaises permissions des fichiers de démarrage sont
               fatales, par exemple un certificat TLS et des fichiers de
               clefs avec des permissions permettant la lecture à tout
               le monde.

          La valeur par défaut est ‘"all -browse"’.

      -- paramètre de ‘files-configuration’ : boolean file-device?
          Spécifie si le fichier de pseudo-périphérique peut être
          utilisé pour de nouvelles queues d’impression. L’URI
          <file:///dev/null> est toujours permise.

          La valeur par défaut est ‘#f’.

      -- paramètre de ‘files-configuration’ : string group
          Spécifie le nom ou l’ID du groupe qui sera utilisé lors de
          l’exécution de programmes externes.

          La valeur par défaut est ‘"lp"’.

      -- paramètre de ‘files-configuration’ : string log-file-group
          Spécifie le nom ou l’ID du groupe qui sera utilisé pour les
          fichiers de journaux.

          La valeur par défaut est ‘"lpadmin"’.

      -- paramètre de ‘files-configuration’ : string log-file-perm
          Spécifie les permissions pour tous les fichiers de journal que
          l’ordonnanceur écrit.

          La valeur par défaut est ‘"0644"’.

      -- paramètre de ‘files-configuration’ : log-location page-log
          Définit le fichier de journal de page. Spécifier un nom de
          fichier vide désactive la génération de journaux de pages. La
          valeur ‘stderr’ fait que les entrées du journal seront envoyés
          sur l’erreur standard lorsque l’ordonnanceur est lancé au
          premier plan ou vers le démon de journal système lorsqu’il
          tourne en tâche de fond. La valeur ‘syslog’ fait que les
          entrées du journal sont envoyées au démon de journalisation du
          système. Le nom du serveur peut être inclus dans les noms de
          fichiers avec la chaîne ‘%s’, comme dans
          ‘/var/log/cups/%s-page_log’.

          La valeur par défaut est ‘"/var/log/cups/page_log"’.

      -- paramètre de ‘files-configuration’ : string remote-root
          Spécifie le nom d’utilisateur associé aux accès non
          authentifiés par des clients qui se disent être l’utilisateur
          root. La valeur par défaut est ‘remroot’.

          La valeur par défaut est ‘"remroot"’.

      -- paramètre de ‘files-configuration’ : file-name request-root
          Spécifie le répertoire qui contient les travaux d’impression
          et d’autres données des requêtes HTTP.

          La valeur par défaut est ‘"/var/spool/cups"’.

      -- paramètre de ‘files-configuration’ : sandboxing sandboxing
          Spécifie le niveau d’isolation de sécurité appliqué aux
          filtres d’impression, aux moteurs et aux autres processus fils
          de l’ordonnanceur ; soit ‘relaxed’ soit ‘strict’. Cette
          directive n’est actuellement utilisée et supportée que sur
          macOS.

          La valeur par défaut est ‘strict’.

      -- paramètre de ‘files-configuration’ : file-name server-keychain
          Spécifie l’emplacement des certifications TLS et des clés
          privées. CUPS cherchera les clés publiques et privées dans ce
          répertoire : un fichier ‘.crt’ pour un certificat encodé en
          PEM et le fichier ‘.key’ correspondant pour la clé privée
          encodée en PEM.

          La valeur par défaut est ‘"/etc/cups/ssl"’.

      -- paramètre de ‘files-configuration’ : file-name server-root
          Spécifie le répertoire contenant les fichiers de configuration
          du serveur.

          La valeur par défaut est ‘"/etc/cups"’.

      -- paramètre de ‘files-configuration’ : boolean sync-on-close?
          Spécifie si l’ordonnanceur appelle fsync(2) après avoir écrit
          la configuration ou les fichiers d’état.

          La valeur par défaut est ‘#f’.

      -- paramètre de ‘files-configuration’ :
               space-separated-string-list system-group
          Spécifie le groupe ou les groupes à utiliser pour
          l’authentification du groupe ‘@SYSTEM’.

      -- paramètre de ‘files-configuration’ : file-name temp-dir
          Spécifie le répertoire où les fichiers temporaires sont
          stockés.

          La valeur par défaut est ‘"/var/spool/cups/tmp"’.

      -- paramètre de ‘files-configuration’ : string user
          Spécifie le nom d’utilisateur ou l’ID utilisé pour lancer des
          programmes externes.

          La valeur par défaut est ‘"lp"’.

      -- paramètre de ‘files-configuration’ : string set-env
          Indique que la variable d’environnement spécifiée doit être
          passée aux processus fils.

          La valeur par défaut est ‘"variable value"’.

 -- paramètre de ‘cups-configuration’ : access-log-level
          access-log-level
     Spécifie le niveau de journalisation pour le fichier AccessLog. Le
     niveau ‘config’ enregistre les ajouts, suppressions et
     modifications d’imprimantes et de classes et lorsque les fichiers
     de configuration sont accédés ou mis à jour. Le niveau ‘actions’
     enregistre la soumission, la suspension, la libération, la
     modification et l’annulation des travaux et toutes les conditions
     de ‘config’. Le niveau ‘all’ enregistre toutes les requêtes.

     La valeur par défaut est ‘actions’.

 -- paramètre de ‘cups-configuration’ : boolean auto-purge-jobs?
     Spécifie s’il faut vider l’historique des travaux automatiquement
     lorsqu’il n’est plus nécessaire pour les quotas.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘cups-configuration’ : comma-separated-string-list
          browse-dns-sd-sub-types
     Spécifie une liste de sous-types DNS-SD à annoncer pour chaque
     imprimante connectée. Par exemple, ‘" cups" " print"’ dira aux
     clients réseaux que le partage CUPS et IPP Everywhere sont pris en
     charge.

     La valeur par défaut est ‘" cups"’.

 -- paramètre de ‘cups-configuration’ : browse-local-protocols
          browse-local-protocols
     Spécifie les protocoles à utiliser pour partager les imprimantes
     sur le réseau local.

     La valeur par défaut est ‘dnssd’.

 -- paramètre de ‘cups-configuration’ : boolean browse-web-if?
     Spécifie si l’interface web de CUPS est annoncée.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘cups-configuration’ : boolean browsing?
     Spécifie si les imprimantes partagées sont annoncées.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘cups-configuration’ : string classification
     Spécifie la classification de sécurité du serveur. N’importe quel
     nom de bannière peut être utilisé, comme ‘"classified"’,
     ‘"confidential"’, ‘"secret"’, ‘"topsecret"’ et ‘"unclassified"’ ou
     la bannière peut être omise pour désactiver les fonctions
     d’impression sécurisées.

     La valeur par défaut est ‘""’.

 -- paramètre de ‘cups-configuration’ : boolean classify-override?
     Spécifie si les utilisateurs peuvent remplacer la classification
     (page de couverture) des travaux d’impression individuels avec
     l’option ‘job-sheets’.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘cups-configuration’ : default-auth-type
          default-auth-type
     Spécifie le type d’authentification par défaut à utiliser.

     La valeur par défaut est ‘Basic’.

 -- paramètre de ‘cups-configuration’ : default-encryption
          default-encryption
     Spécifie si le chiffrement sera utilisé pour les requêtes
     authentifiées.

     La valeur par défaut est ‘Required’.

 -- paramètre de ‘cups-configuration’ : string default-language
     Spécifie la langue par défaut à utiliser pour le contenu textuel et
     web.

     La valeur par défaut est ‘"en"’.

 -- paramètre de ‘cups-configuration’ : string default-paper-size
     Spécifie la taille de papier par défaut pour les nouvelles queues
     d’impression. ‘"Auto"’ utilise la valeur par défaut du paramètre de
     régionalisation, tandis que ‘"None"’ spécifie qu’il n’y a pas de
     taille par défaut. Des noms de tailles spécifique sont par exemple
     ‘"Letter"’ et ‘"A4"’.

     La valeur par défaut est ‘"Auto"’.

 -- paramètre de ‘cups-configuration’ : string default-policy
     Spécifie la politique d’accès par défaut à utiliser.

     La valeur par défaut est ‘"default"’.

 -- paramètre de ‘cups-configuration’ : boolean default-shared?
     Spécifie si les imprimantes locales sont partagées par défaut.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif
          dirty-clean-interval
     Spécifie le délai pour mettre à jour les fichiers de configuration
     et d’état. Une valeur de 0 fait que la mise à jour arrive aussi
     vite que possible, typiquement en quelques millisecondes.

     La valeur par défaut est ‘30’.

 -- paramètre de ‘cups-configuration’ : error-policy error-policy
     Spécifie ce qu’il faut faire si une erreur a lieu. Les valeurs
     possibles sont ‘abort-job’, qui supprimera les travaux d’impression
     en échec ; ‘retry-job’, qui tentera de nouveau l’impression plus
     tard ; ‘retry-current-job’, qui retentera l’impression
     immédiatement ; et ‘stop-printer’ qui arrête l’imprimante.

     La valeur par défaut est ‘stop-printer’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif filter-limit
     Spécifie le coût maximum des filtres qui sont lancés en même temps,
     pour minimiser les problèmes de ressources de disque, de mémoire et
     de CPU. Une limite de 0 désactive la limite de filtrage. Une
     impression standard vers une imprimante non-PostScript requiert une
     limite de filtre d’environ 200. Une imprimante PostScript requiert
     environ la moitié (100). Mettre en place la limite en dessous de
     ces valeurs limitera l’ordonnanceur à un seul travail d’impression
     à la fois.

     La valeur par défaut est ‘0’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif filter-nice
     Spécifie la priorité des filtres de l’ordonnanceur qui sont lancés
     pour imprimer un travail. La valeur va de 0, la plus grande
     priorité, à 19, la plus basse priorité.

     La valeur par défaut est ‘0’.

 -- paramètre de ‘cups-configuration’ : host-name-lookups
          host-name-lookups
     Spécifie s’il faut faire des résolutions inverses sur les clients
     qui se connectent. Le paramètre ‘double’ fait que ‘cupsd’ vérifie
     que le nom d’hôte résolu depuis l’adresse correspond à l’une des
     adresses renvoyées par ce nom d’hôte. Les résolutions doubles
     évitent aussi que des clients avec des adresses non enregistrées ne
     s’adressent à votre serveur. N’initialisez cette valeur qu’à ‘#t’
     ou ‘double’ que si c’est absolument nécessaire.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif
          job-kill-delay
     Spécifie le nombre de secondes à attendre avant de tuer les filtres
     et les moteurs associés avec un travail annulé ou suspendu.

     La valeur par défaut est ‘30’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif
          job-retry-interval
     Spécifie l’intervalle des nouvelles tentatives en secondes. C’est
     typiquement utilisé pour les queues de fax mais peut aussi être
     utilisé avec des queues d’impressions normales dont la politique
     d’erreur est ‘retry-job’ ou ‘retry-current-job’.

     La valeur par défaut est ‘30’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif
          job-retry-limit
     Spécifie le nombre de nouvelles tentatives pour les travaux. C’est
     typiquement utilisé pour les queues de fax mais peut aussi être
     utilisé pour les queues d’impressions dont la politique d’erreur
     est ‘retry-job’ ou ‘retry-current-job’.

     La valeur par défaut est ‘5’.

 -- paramètre de ‘cups-configuration’ : boolean keep-alive?
     Spécifie s’il faut supporter les connexion HTTP keep-alive.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif
          limit-request-body
     Spécifie la taille maximale des fichiers à imprimer, des requêtes
     IPP et des données de formulaires HTML. Une limite de 0 désactive
     la vérification de la limite.

     La valeur par défaut est ‘0’.

 -- paramètre de ‘cups-configuration’ : multiline-string-list listen
     Écoute sur les interfaces spécifiées. Les valeurs valides sont de
     la forme ADRESSE:PORT, où ADRESSE est soit une adresse IPv6 dans
     des crochets, soit une adresse IPv4, soit ‘*’ pour indiquer toutes
     les adresses. Les valeurs peuvent aussi être des noms de fichiers
     de socket UNIX domain. La directive Listen est similaire à la
     directive Port mais vous permet de restreindre l’accès à des
     interfaces ou des réseaux spécifiques.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif
          listen-back-log
     Spécifie le nombre de connexions en attente qui seront permises. Ça
     n’affecte normalement que les serveurs très actifs qui ont atteint
     la limite MaxClients, mais peut aussi être déclenché par un grand
     nombre de connexions simultanées. Lorsque la limite est atteinte,
     le système d’exploitation refusera les connexions supplémentaires
     jusqu’à ce que l’ordonnanceur accepte les connexions en attente.

     La valeur par défaut est ‘128’.

 -- paramètre de ‘cups-configuration’ : location-access-control-list
          location-access-controls
     Spécifie un ensemble de contrôles d’accès supplémentaires.

     Les champs de ‘location-access-controls’ disponibles sont :

      -- paramètre de ‘location-access-controls’ : file-name path
          Spécifie le chemin d’URI auquel les contrôles d’accès
          s’appliquent.

      -- paramètre de ‘location-access-controls’ : access-control-list
               access-controls
          Les contrôles d’accès pour tous les accès à ce chemin, dans le
          même format que le champ ‘access-controls’ de
          ‘operation-access-control’.

          La valeur par défaut est ‘()’.

      -- paramètre de ‘location-access-controls’ :
               method-access-control-list method-access-controls
          Contrôles d’accès pour les accès spécifiques à la méthode à ce
          chemin.

          La valeur par défaut est ‘()’.

          Les champs de ‘method-access-controls’ disponibles sont :

           -- paramètre de ‘method-access-controls’ : boolean reverse?
               Si la valeur est ‘#t’, applique les contrôles d’accès à
               toutes les méthodes sauf les méthodes listées. Sinon,
               applique le contrôle uniquement aux méthodes listées.

               La valeur par défaut est ‘#f’.

           -- paramètre de ‘method-access-controls’ : method-list
                    methods
               Les méthodes auxquelles ce contrôle d’accès s’applique.

               La valeur par défaut est ‘()’.

           -- paramètre de ‘method-access-controls’ :
                    access-control-list access-controls
               Directives de contrôle d’accès, en tant que liste de
               chaines de caractères. Chaque chaine devrait être une
               directive, comme ‘"Order allow,deny"’.

               La valeur par défaut est ‘()’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif
          log-debug-history
     Spécifie le nombre de messages de débogage qui sont retenu pour la
     journalisation si une erreur arrive dans un travail d’impression.
     Les messages de débogage sont journalisés indépendamment du
     paramètre LogLevel.

     La valeur par défaut est ‘100’.

 -- paramètre de ‘cups-configuration’ : log-level log-level
     Spécifie le niveau de journalisation du fichier ErrorLog. La valeur
     ‘none’ arrête toute journalisation alors que ‘debug2’ enregistre
     tout.

     La valeur par défaut est ‘info’.

 -- paramètre de ‘cups-configuration’ : log-time-format log-time-format
     Spécifie le format de la date et de l’heure dans les fichiers de
     journaux. La valeur ‘standard’ enregistre les secondes entières
     alors que ‘usecs’ enregistre les microsecondes.

     La valeur par défaut est ‘standard’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif max-clients
     Spécifie le nombre maximum de clients simultanés qui sont autorisés
     par l’ordonnanceur.

     La valeur par défaut est ‘100’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif
          max-clients-per-host
     Spécifie le nombre maximum de clients simultanés permis depuis une
     même adresse.

     La valeur par défaut est ‘100’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif max-copies
     Spécifie le nombre maximum de copies qu’un utilisateur peut
     imprimer pour chaque travail.

     La valeur par défaut est ‘9999’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif max-hold-time
     Spécifie la durée maximum qu’un travail peut rester dans l’état de
     suspension ‘indefinite’ avant qu’il ne soit annulé. La valeur 0
     désactive l’annulation des travaux suspendus.

     La valeur par défaut est ‘0’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif max-jobs
     Spécifie le nombre maximum de travaux simultanés autorisés. La
     valeur 0 permet un nombre illimité de travaux.

     La valeur par défaut est ‘500’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif
          max-jobs-per-printer
     Spécifie le nombre maximum de travaux simultanés autorisés par
     imprimante. La valeur 0 permet au plus MaxJobs travaux par
     imprimante.

     La valeur par défaut est ‘0’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif
          max-jobs-per-user
     Spécifie le nombre maximum de travaux simultanés permis par
     utilisateur. La valeur 0 permet au plus MaxJobs travaux par
     utilisateur.

     La valeur par défaut est ‘0’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif max-job-time
     Spécifie la durée maximum qu’un travail peut prendre avant qu’il ne
     soit annulé, en secondes. Indiquez 0 pour désactiver l’annulation
     des travaux « coincés ».

     La valeur par défaut est ‘10800’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif max-log-size
     Spécifie la taille maximale des fichiers de journaux avant qu’on ne
     les fasse tourner, en octets. La valeur 0 désactive la rotation.

     La valeur par défaut est ‘1048576’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif
          multiple-operation-timeout
     Spécifie la durée maximale à permettre entre les fichiers d’un
     travail en contenant plusieurs, en secondes.

     La valeur par défaut est ‘900’.

 -- paramètre de ‘cups-configuration’ : string page-log-format
     Spécifie le format des lignes PageLog. Les séquences qui commencent
     par un pourcent (‘%’) sont remplacées par l’information
     correspondante, tandis que les autres caractères sont copiés
     littéralement. Les séquences pourcent suivantes sont reconnues :

     ‘%%’
          insère un seul caractères pourcent

     ‘%{name}’
          insère la valeur de l’attribut IPP spécifié

     ‘%C’
          insère le nombre de copies pour la page actuelle

     ‘%P’
          insère le numéro de page actuelle

     ‘%T’
          insère la date et l’heure actuelle dans un format de journal
          commun

     ‘%j’
          insère l’ID du travail

     ‘%p’
          insère le nom de l’imprimante

     ‘%u’
          insère le nom d’utilisateur

     Si la valeur est la chaîne vide, le PageLog est désactivée. La
     chaîne ‘%p %u %j %T %P %C %{job-billing}
     %{job-originating-host-name} %{job-name} %{media} %{sides}’ crée un
     PageLog avec les entrées standards.

     La valeur par défaut est ‘""’.

 -- paramètre de ‘cups-configuration’ : environment-variables
          environment-variables
     Passe les variables d’environnement spécifiées aux processus fils ;
     une liste de chaînes de caractères.

     La valeur par défaut est ‘()’.

 -- paramètre de ‘cups-configuration’ : policy-configuration-list
          policies
     Spécifie des politiques de contrôle d’accès nommées.

     Les champs de ‘policy-configuration’ disponibles sont :

      -- paramètre de ‘policy-configuration’ : string name
          Nom de la politique.

      -- paramètre de ‘policy-configuration’ : string job-private-access
          Spécifie une liste d’accès pour les valeurs privées du
          travail. ‘@ACL’ correspond aux valeurs
          requesting-user-name-allowed ou requesting-user-name-denied de
          l’imprimante. ‘@OWNER’ correspond au propriétaire du travail.
          ‘@SYSTEM’ correspond aux groupes listés dans le champ
          ‘system-group’ de la configuration ‘files-configuration’, qui
          est réifié dans le fichier ‘cups-files.conf(5)’. Les autres
          éléments possibles de la liste d’accès sont des noms
          d’utilisateurs spécifiques et ‘@GROUP’ pour indiquer les
          membres d’un groupe spécifique. La liste d’accès peut aussi
          être simplement ‘all’ ou ‘default’.

          La valeur par défaut est ‘"@OWNER @SYSTEM"’.

      -- paramètre de ‘policy-configuration’ : string job-private-values
          Spécifie la liste des valeurs de travaux à rendre privée, ou
          ‘all’, ‘default’, ou ‘none’.

          La valeur par défaut est ‘"job-name job-originating-host-name
          job-originating-user-name phone"’.

      -- paramètre de ‘policy-configuration’ : string
               subscription-private-access
          Spécifie un liste d’accès pour les valeurs privées de la
          souscription. ‘@ACL’ correspond aux valeurs
          requesting-user-name-allowed ou requesting-user-name-denied de
          l’imprimante. ‘@OWNER’ correspond au propriétaire du travail.
          ‘@SYSTEM’ correspond aux groupes listés dans le champ
          ‘system-group’ de la configuration ‘files-configuration’, qui
          est réifié dans le fichier ‘cups-files.conf(5)’. Les autres
          éléments possibles de la liste d’accès sont des noms
          d’utilisateurs spécifiques et ‘@GROUP’ pour indiquer les
          membres d’un groupe spécifique. La liste d’accès peut aussi
          être simplement ‘all’ ou ‘default’.

          La valeur par défaut est ‘"@OWNER @SYSTEM"’.

      -- paramètre de ‘policy-configuration’ : string
               subscription-private-values
          Spécifie la liste des valeurs de travaux à rendre privée, ou
          ‘all’, ‘default’, ou ‘none’.

          La valeur par défaut est ‘"notify-events notify-pull-method
          notify-recipient-uri notify-subscriber-user-name
          notify-user-data"’.

      -- paramètre de ‘policy-configuration’ :
               operation-access-control-list access-controls
          Contrôle d’accès par les actions IPP.

          La valeur par défaut est ‘()’.

 -- paramètre de ‘cups-configuration’ : booléen-ou-entier-non-négatif
          preserve-job-files
     Spécifie si les fichiers de travaux (les documents) sont préservés
     après qu’un travail est imprimé. Si une valeur numérique est
     spécifiée, les fichiers de travaux sont préservés pour le nombre de
     secondes indiquées après l’impression. Sinon, une valeur booléenne
     s’applique indéfiniment.

     La valeur par défaut est ‘86400’.

 -- paramètre de ‘cups-configuration’ : booléen-ou-entier-non-négatif
          preserve-job-history
     Spécifie si l’historique des travaux est préservé après qu’un
     travail est imprimé. Si une valeur numérique est spécifiée,
     l’historique des travaux est préservé pour le nombre de secondes
     indiquées après l’impression. Si la valeur est ‘#t’, l’historique
     des travaux est préservé jusqu’à atteindre la limite MaxJobs.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif
          reload-timeout
     Spécifie la durée d’attente pour la fin des travaux avant de
     redémarrer l’ordonnanceur.

     La valeur par défaut est ‘30’.

 -- paramètre de ‘cups-configuration’ : string rip-cache
     Spécifie la quantité de mémoire maximale à utiliser pour convertir
     des documents en bitmaps pour l’imprimante.

     La valeur par défaut est ‘"128m"’.

 -- paramètre de ‘cups-configuration’ : string server-admin
     Spécifie l’adresse de courriel de l’administrateur système.

     La valeur par défaut est ‘"root@localhost.localdomain"’.

 -- paramètre de ‘cups-configuration’ : host-name-list-or-* server-alias
     La directive ServerAlias est utilisée pour la validation des
     en-tête HTTP Host lorsque les clients se connectent à
     l’ordonnanceur depuis des interfaces externes. Utiliser le nom
     spécial ‘*’ peut exposer votre système à des attaques connues de
     recombinaison DNS dans le navigateur, même lorsque vous accédez au
     site à travers un pare-feu. Si la découverte automatique des autres
     noms ne fonctionne pas, nous vous recommandons de lister chaque nom
     alternatif avec une directive SeverAlias plutôt que d’utiliser ‘*’.

     La valeur par défaut est ‘*’.

 -- paramètre de ‘cups-configuration’ : string server-name
     Spécifie le nom d’hôte pleinement qualifié du serveur.

     La valeur par défaut est ‘"localhost"’.

 -- paramètre de ‘cups-configuration’ : server-tokens server-tokens
     Spécifie les informations incluses dans les en-têtes Server des
     réponses HTTP. ‘None’ désactive l’en-tête Server. ‘ProductOnly’
     rapporte ‘CUPS’. ‘Major’ rapporte ‘CUPS 2’. ‘Minor’ rapporte ‘CUPS
     2.0’. ‘Minimal’ rapporte ‘CUPS 2.0.0’. ‘OS’ rapporte ‘CUPS 2.0.0
     (UNAME)’ où UNAME est la sortie de la commande ‘uname’. ‘Full’
     rapporte ‘CUPS 2.0.0 (UNAME) IPP/2.0’.

     La valeur par défaut est ‘Minimal’.

 -- paramètre de ‘cups-configuration’ : multiline-string-list ssl-listen
     Écoute des connexions chiffrées sur les interfaces spécifiées. Les
     valeurs valides sont de la forme ADRESSE:PORT, où ADRESSE est soit
     une adresse IPv6 dans des crochets, soit une adresse IPv4, soit ‘*’
     pour indiquer toutes les interfaces.

     La valeur par défaut est ‘()’.

 -- paramètre de ‘cups-configuration’ : ssl-options ssl-options
     Indique les options de chiffrement. Par défaut, CUPS ne supporte
     que le chiffrement avec TLS v1.0 ou plus avec des suites de
     chiffrement connues pour être sures. La sécurité peut être réduite
     en utilisant les options ‘Allow’, et améliorée en utilisant les
     options ‘Deny’. L’option ‘AllowRC4’ active les suites de
     chiffrement 128-bits RC4, qui sont requises pour certains vieux.
     L’option ‘AllowSSL3’ active SSL v3.0, qui est requis par certains
     vieux clients qui ne supportent pas TLS v1.0. L’option ‘DenyCBC’
     désactive toutes les suites CBC. L’option ‘DenyTLS1.0’ désactive la
     prise en charge de TLS v1.0 — la version minimale du protocole est
     donc TLS v1.1.

     La valeur par défaut est ‘()’.

 -- paramètre de ‘cups-configuration’ : boolean strict-conformance?
     Spécifie si l’ordonnanceur demande aux clients d’adhérer aux
     spécifications IPP.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘cups-configuration’ : entier-non-négatif timeout
     Spécifie le délai d’attente des requêtes HTTP, en secondes.

     La valeur par défaut est ‘900’.

 -- paramètre de ‘cups-configuration’ : boolean web-interface?
     Spécifie si l’interface web est activée.

     La valeur par défaut est ‘#f’.

   Maintenant, vous vous dîtes peut-être « oh là là, cher manuel de
Guix, je t’aime bien mais arrête maintenant avec ces options de
configuration »(1). En effet. cependant, encore un point supplémentaire
: vous pouvez avoir un fichier ‘cupsd.conf’ existant que vous pourriez
vouloir utiliser. Dans ce cas, vous pouvez passer un
‘opaque-cups-configuration’ en configuration d’un ‘cups-service-type’.

   Les champs de ‘opaque-cups-configuration’ disponibles sont :

 -- paramètre de ‘opaque-cups-configuration’ : package cups
     Le paquet CUPS.

 -- paramètre de ‘opaque-cups-configuration’ : string cupsd.conf
     Le contenu de ‘cupsd.conf’, en tant que chaîne de caractères.

 -- paramètre de ‘opaque-cups-configuration’ : string cups-files.conf
     Le contenu du fichier ‘cups-files.conf’, en tant que chaîne de
     caractères.

   Par exemple, si vos fichiers ‘cupsd.conf’ et ‘cups-files.conf’ sont
dans des chaînes du même nom, pouvez instancier un service CUPS de cette
manière :

     (service cups-service-type
              (opaque-cups-configuration
                (cupsd.conf cupsd.conf)
                (cups-files.conf cups-files.conf)))

   ---------- Footnotes ----------

   (1) NdT : je vous rassure, c’est aussi mon sentiment au moment de
traduire ces lignes. Et pour moi, c’est encore loin d’être fini.


File: guix.fr.info,  Node: Services de bureaux,  Next: Services de son,  Prev: Services d'impression,  Up: Services

12.9.9 Services de bureaux
--------------------------

Le module ‘(gnu services desktop)’ fournit des services qui sont
habituellement utiles dans le contexte d’une installation « de bureau »
— c’est-à-dire sur une machine qui fait tourner un service d’affichage
graphique, éventuellement avec des interfaces utilisateurs graphiques,
etc. Il définit aussi des services qui fournissent des environnements de
bureau spécifiques comme GNOME, Xfce et MATE.

   Pour simplifier les choses, le module définit une variable contenant
l’ensemble des services que les utilisateurs s’attendent en général à
avoir sur une machine avec un environnement graphique et le réseau :

 -- Variable Scheme : %desktop-services
     C’est la liste des services qui étend ‘%base-services’ en ajoutant
     ou en ajustant des services pour une configuration « de bureau »
     typique.

     En particulier, elle ajoute un gestionnaire de connexion graphique
     (*note ‘gdm-service-type’: Système de fenêtrage X.), des
     verrouilleurs d’écran, un outil de gestion réseau (*note
     ‘network-manager-service-type’: Services réseau.) avec la prise en
     charge des modems (*note ‘modem-manager-service-type’: Services
     réseau.), des services de gestion de l’énergie et des couleurs, le
     gestionnaire de connexion et de siège ‘elogind’, le service de
     privilèges Polkit, le service de géolocalisation GeoClue, le démon
     AccountsService qui permet aux utilisateurs autorisés de changer
     les mots de passe du système, un client NTP (*note Services
     réseau::), le démon Avahi, et le service name service switch est
     configuré pour pouvoir utiliser ‘nss-mdns’ (*note mDNS: Name
     Service Switch.).

   La variable ‘%desktop-services’ peut être utilisée comme champ
‘services’ d’une déclaration ‘operating-system’ (*note ‘services’:
référence de operating-system.).

   En plus, les procédures ‘gnome-desktop-service-type’,
‘xfce-desktop-service’, ‘mate-desktop-service-type’,
‘lxqt-desktop-service-type’ et ‘enlightenment-desktop-service-type’
peuvent ajouter GNOME, Xfce, MATE ou Enlightenment à un système. «
Ajouter GNOME » signifie que les services du système comme les
utilitaires d’ajustement de la luminosité et de gestion de l’énergie
sont ajoutés au système, en étendant ‘polkit’ et ‘dbus’ de la bonne
manière, ce qui permet à GNOME d’opérer avec des privilèges plus élevés
sur un nombre limité d’interfaces systèmes spécialisées. En plus,
ajouter un service construit par ‘gnome-desktop-service-type’ ajoute le
métapaquet GNOME au profil du système. De même, ajouter le service Xfce
ajoute non seulement le métapaquet ‘xfce’ au profil système, mais il
permet aussi au gestionnaire de fichiers Thunar d’ouvrir une fenêtre de
gestion des fichier « en mode root », si l’utilisateur s’authentifie
avec le mot de passe administrateur via l’interface graphique polkit
standard. « Ajouter MATE » signifie que ‘polkit’ et ‘dbus’ sont étendue
de la bonne manière, ce qui permet à MATE d’opérer avec des privilèges
plus élevés sur un nombre limité d’interface systèmes spécialisées. En
plus, ajouter un service de type ‘mate-desktop-service-type’ ajoute le
métapaquet MATE au profil du système. « Ajouter Enlightenment » signifie
que ‘dbus’ est étendu comme il faut et que plusieurs binaires
d’Enlightenment récupèrent le bit setuid, ce qui permet au verrouilleur
d’écran d’Enlightenment et à d’autres fonctionnalités de fonctionner
correctement.

   Les environnement de bureau dans Guix utilisent le service
d’affichage Xorg par défaut. Si vous voulez utiliser le protocole de
serveur d’affichage plus récent Wayland, vous devez activer la prise en
charge de Wayland dans GDM (*note wayland-gdm::). Une autre solution
consiste à utiliser ‘sddm-service’ à la place de GDM comme gestionnaire
de connexion graphique. Vous devriez ensuite sélectionner la session «
GNOME (Wayland) » dans SDDM. Autrement, vous pouvez essayer de démarrer
GNOME sur Wayland manuellement depuis un TTY avec la commande
‘XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session’.
Actuellement seul GNOME support Wayland.

 -- Variable Scheme : gnome-desktop-service-type
     C’est le type de service qui ajoute l’environnement de bureau GNOME
     (https://www.gnome.org). Sa valeur est un objet
     ‘gnome-desktop-configuration’ (voir plus bas).

     Ce service ajoute le paquet ‘gnome’ au profil du système et étend
     polkit avec les actions de ‘gnome-settings-daemon’.

 -- Type de données : gnome-desktop-configuration
     Enregistrement de la configuration de l’environnement de bureau
     GNOME.

     ‘gnome’ (par défaut : ‘gnome’)
          Le paquet GNOME à utiliser.

 -- Variable Scheme : xfce-desktop-service-type
     C’est le type de service qui lance l’environnement de bureau
     https://xfce.org/ (Xfce). Sa valeur est un objet
     ‘xfce-desktop-configuration’ (voir plus bas).

     Ce service ajoute le paquet ‘xfce’ au profil du système et étend
     polkit avec la possibilité pour ‘thunar’ de manipuler le système de
     fichier en root depuis une session utilisateur, après que
     l’utilisateur s’authentifie avec le mot de passe administrateur.

     Remarquez que ‘xfce4-panel’ et ses paquets de greffons devraient
     être installés dans le même profil pour assurer la compatibilité.
     Lorsque vous utilisez ce service, vous devriez ajouter les greffons
     supplémentaires (‘xfce4-whiskermenu-plugin’,
     ‘xfce4-weather-plugin’, etc) au champ ‘packages’ de votre
     ‘operating-system’.

 -- Type de données : xfce-desktop-configuration
     Enregistrement de la configuration de l’environnement de bureau
     Xfce.

     ‘xfce’ (par défaut : ‘xfce’)
          Le paquet Xfce à utiliser.

 -- Variable Scheme : mate-desktop-service-type
     C’est le type de service qui lance l’environnement de bureau MATE
     (https://mate-desktop.org/). Sa valeur est un objet
     ‘mate-desktop-configuration’ (voir plus bas).

     Ce service ajoute le paquet ‘mate’ au profil du système, et étend
     polkit avec les actions de ‘mate-settings-daemon’.

 -- Type de données : mate-desktop-configuration
     Enregistrement de configuration pour l’environnement de bureau
     MATE.

     ‘mate’ (par défaut : ‘mate’)
          Le paquet MATE à utiliser.

 -- Variable Scheme : lxqt-desktop-service-type
     C’est le type de service qui lance l’environnement de bureau LXQt
     (https://lxqt-project.org). Sa valeur est un objet
     ‘lxqt-desktop-configuration’ (voir plus bas).

     Ce service ajoute le paquet ‘lxqt’ au profil du système.

 -- Type de données : lxqt-desktop-configuration
     Enregistrement de la configuration de l’environnement de bureau
     LXQt.

     ‘lxqt’ (par défaut : ‘lxqt’)
          Le paquet LXQT à utiliser.

 -- Variable Scheme : enlightenment-desktop-service-type
     Renvoie un service qui ajoute le paquet ‘enlightenment’ et étend
     dbus avec les actions de ‘efl’.

 -- Type de données : enlightenment-desktop-service-configuration
     ‘enlightenment’ (par défaut : ‘enlightenment’)
          Le paquet enlightenment à utiliser.

   Comme les services de bureau GNOME, Xfce et MATE récupèrent tant de
paquet, la variable ‘%desktop-services’ par défaut n’inclut aucun
d’entre eux. Pour ajouter GNOME, Xfce ou MATE, utilisez ‘cons’ pour les
ajouter à ‘%desktop-services’ dans le champ ‘services’ de votre
‘operating-system’ :

     (use-modules (gnu))
     (use-service-modules desktop)
     (operating-system
       ...
       ;; cons* ajoute des éléments à la liste donnée en dernier argument.
       (services (cons* (service gnome-desktop-service-type)
                        (service xfce-desktop-service)
                        %desktop-services))
       ...)

   Ces environnements de bureau seront alors disponibles comme une
option dans la fenêtre de connexion graphique.

   Les définitions de service qui sont vraiment incluses dans
‘%desktop-services’ et fournies par ‘(gnu services dbus)’ et ‘(gnu
services desktop)’ sont décrites plus bas.

 -- Procédure Scheme : dbus-service [#:dbus DBUS] [#:services '()]
          [#:verbose?]
     Renvoie un service qui lance le « bus système », avec DBUS, et la
     prise en charge des SERVICES. Lorsque VERBOSE? est vrai, cela
     initialise la variable d’environnement ‘DBUS_VERBOSE’ à ‘1’ ; un
     paquet D-Bus verbeux comme ‘dbus-verbose’ devrait être fournit en
     tant que DBUS dans ce cas. La sortie verbeuse est enregistrée dans
     ‘/var/log/dbus-daemon.log’.

     D-Bus (https://dbus.freedesktop.org/) est un utilitaire de
     communication inter-processus. Son bus système est utilisé pour
     permettre à des services systèmes de communiquer et d’être notifiés
     d’événements systèmes.

     SERVICES doit être une liste de paquets qui fournissent un
     répertoire ‘etc/dbus-1/system.d’ contenant de la configuration
     D-Bus supplémentaire et des fichiers de politiques. Par exemple,
     pour permettre à avahi-daemon d’utiliser le bus système, SERVICES
     doit être égal à ‘(list avahi)’.

 -- Procédure Scheme : elogind-service [#:config CONFIG]
     Renvoie un service qui lance le démon de gestion de connexion et de
     siège ‘elogind’. Elogind (https://github.com/elogind/elogind)
     expose une interface D-Bus qui peut être utilisée pour connaître
     quels utilisateurs sont connectés, le type de session qu’ils sont
     ouverte, suspendre le système, désactiver la veille système,
     redémarrer le système et d’autre tâches.

     Elogind gère la plupart des événements liés à l’énergie du système,
     par exemple mettre en veille le système quand l’écran est rabattu
     ou en l’éteignant quand le bouton de démarrage est appuyé.

     L’argument CONFIG spécifie la configuration d’elogind et devrait
     être le résultat d’une invocation de ‘(elogind-configuration
     (PARAMETER VALUE)...)’. Les paramètres disponibles et leur valeur
     par défaut sont :

     ‘kill-user-processes?’
          ‘#f’
     ‘kill-only-users’
          ‘()’
     ‘kill-exclude-users’
          ‘("root")’
     ‘inhibit-delay-max-seconds’
          ‘5’
     ‘handle-power-key’
          ‘poweroff’
     ‘handle-suspend-key’
          ‘suspend’
     ‘handle-hibernate-key’
          ‘hibernate’
     ‘handle-lid-switch’
          ‘suspend’
     ‘handle-lid-switch-docked’
          ‘ignore’
     ‘handle-lid-switch-external-power’
          ‘*unspecified*’
     ‘power-key-ignore-inhibited?’
          ‘#f’
     ‘suspend-key-ignore-inhibited?’
          ‘#f’
     ‘hibernate-key-ignore-inhibited?’
          ‘#f’
     ‘lid-switch-ignore-inhibited?’
          ‘#t’
     ‘holdoff-timeout-seconds’
          ‘30’
     ‘idle-action’
          ‘ignore’
     ‘idle-action-seconds’
          ‘(* 30 60)’
     ‘runtime-directory-size-percent’
          ‘10’
     ‘runtime-directory-size’
          ‘#f’
     ‘remove-ipc?’
          ‘#t’
     ‘suspend-state’
          ‘("mem" "standby" "freeze")’
     ‘suspend-mode’
          ‘()’
     ‘hibernate-state’
          ‘("disk")’
     ‘hibernate-mode’
          ‘("platform" "shutdown")’
     ‘hybrid-sleep-state’
          ‘("disk")’
     ‘hybrid-sleep-mode’
          ‘("suspend" "platform" "shutdown")’

 -- Procédure Scheme : accountsservice-service [#:accountsservice
          ACCOUNTSSERVICE]
     Renvoie un service qui lance AccountsService, un service système
     qui peut lister les comptes disponibles, changer leur mot de passe,
     etc. AccountsService s’intègre à Polkit pour permettre aux
     utilisateurs non privilégiés de pouvoir modifier la configuration
     de leur système. le site de accountsservice
     (https://www.freedesktop.org/wiki/Software/AccountsService/) pour
     trouver plus d’informations.

     L’argument ACCOUNTSSERVICE est le paquet ‘accountsservice’ à
     exposer comme un service.

 -- Procédure Scheme : polkit-service [#:polkit POLKIT]
     Renvoie un service qui lance le service de gestion des privilèges
     Polkit (https://www.freedesktop.org/wiki/Software/polkit/), qui
     permet aux administrateurs systèmes de permettre l’accès à des
     opération privilégiées d’une manière structurée. En demandant au
     service Polkit, un composant système privilégié peut savoir
     lorsqu’il peut donner des privilèges supplémentaires à des
     utilisateurs normaux. Par exemple, un utilisateur normal peut
     obtenir le droit de mettre le système en veille si l’utilisateur
     est connecté localement.

 -- Variable Scheme : polkit-wheel-service
     Service qui ajoute le groupe ‘wheel’ comme administrateur au
     service Polkit. Cela fait en sorte qu’on demande le mot de passe
     des utilisateurs du groupe ‘wheel’ eux-mêmes pour effectuer des
     tâches d’administration au lieu du mot de passe ‘root’, comme le
     fait ‘sudo’.

 -- Variable Scheme : upower-service-type
     Service qui lance ‘upowerd’ (https://upower.freedesktop.org/), un
     moniteur système de consommation d’énergie et de niveau de
     batterie, avec les paramètres de configuration donnés.

     Il implémente l’interface D-Bus ‘org.freedesktop.UPower’ et est
     notamment utilisé par GNOME.

 -- Type de données : upower-configuration
     Type de données représentant la configuration de UPower.

     ‘upower’ (par défaut : UPOWER)
          Paquet à utiliser pour ‘upower’.

     ‘watts-up-pro?’ (par défaut : ‘#f’)
          Active le périphérique Watts Up Pro.

     ‘poll-batteries?’ (par défaut : ‘#t’)
          Active les requêtes au noyau pour les changements de niveau de
          batterie.

     ‘ignore-lid?’ (par défaut : ‘#f’)
          Ignore l’état de l’écran, ce qui peut être utile s’il est
          incorrect sur un appareil.

     ‘use-percentage-for-policy?’ (par défaut : ‘#t’)
          Indique s’il faut utiliser une politique basée sur le
          pourcentage de batterie plutôt que l’estimation du temps
          restant. Une politique basée sur le pourcentage de batterie
          est souvent plus fiable.

     ‘percentage-low’ (par défaut : ‘20’)
          Lorsque ‘use-percentage-for-policy?’ est ‘#t’, cela indique à
          quel niveau la batterie est considérée comme faible.

     ‘percentage-critical’ (par défaut : ‘5’)
          Lorsque ‘use-percentage-for-policy?’ est ‘#t’, cela indique à
          quel niveau la batterie est considérée comme critique.

     ‘percentage-action’ (par défaut : ‘2’)
          Lorsque ‘use-percentage-for-policy?’ est ‘#t’, cela indique à
          quel niveau l’action sera prise.

     ‘time-low’ (par défaut : ‘1200’)
          Lorsque ‘use-percentage-for-policy?’ est ‘#f’, cela indique à
          quelle durée restante en secondes la batterie est considérée
          comme faible.

     ‘time-critical’ (par défaut : ‘300’)
          Lorsque ‘use-percentage-for-policy?’ est ‘#f’, cela indique à
          quelle durée restante en secondes la batterie est considérée
          comme critique.

     ‘time-action’ (par défaut : ‘120’)
          Lorsque ‘use-percentage-for-policy?’ est ‘#f’, cela indique à
          quelle durée restante en secondes l’action sera prise.

     ‘critical-power-action’ (par défaut : ‘'hybrid-sleep’)
          L’action à prendre lorsque ‘percentage-action’ ou
          ‘time-action’ est atteint (en fonction de la configuration de
          ‘use-percentage-for-policy?’).

          Les valeurs possibles sont :

             • ‘'power-off’

             • ‘'hibernate’

             • ‘'hybrid-sleep’.

 -- Procédure Scheme : udisks-service [#:udisks UDISKS]
     Renvoie un service pour UDisks
     (https://udisks.freedesktop.org/docs/latest/), un démon de “gestion
     de disques” qui fournit des notifications et la capacité de monter
     et démonter des disques à des interfaces utilisateurs. Les
     programmes qui parlent à UDisks sont par exemple la commande
     ‘udisksctl’, qui fait partie de UDisks, et GNOME Disks. Remarquez
     que Udisks s’appuie sur la commande ‘mount’, donc il ne sera
     capable d’utiliser que les utilitaires de systèmes de fichiers
     installés dans le profil du système. Par exemple si vous voulez
     monter des systèmes de fichiers NTFS en lecture-écriture, vous
     devrez ajouter ‘ntfs-3g’ aux paquets installés sur le système
     entier.

 -- Variable Scheme : colord-service-type
     C’est le type de service qui lance ‘colord’, un service système
     avec une interface D-Bus pour gérer les profils de couleur des
     périphériques d’entrées et de sorties comme les écrans et les
     scanners. Il est notamment utilisé par l’outil graphique GNOME
     Color Manager. Voir le site web de colord
     (https://www.freedesktop.org/software/colord/) pour plus
     d’informations.

 -- Variable Scheme : sane-service-type
     Ce service fournit un accès aux scanner via SANE
     (http://www.sane-project.org) en installant les règles udev
     nécessaires. Il est inclus dans ‘%desktop-services’ (*note Services
     de bureaux::) et s’appuie sur le paquet ‘sane-backends-minimal’ par
     défaut (voir plus bas) pour la prise en charge matérielle.

 -- Variable Scheme : sane-backends-minimal
     Le paquet par défaut installé par le ‘sane-service-type’. Il prend
     en charge beaucoup de scanners récents.

 -- Variable Scheme : sane-backends
     Ce paquet inclus la prise en charge de tous les scanners pris en
     charge par ‘sane-backends-minimal’, plus les scanners
     Hewlett-Packard plus anciens pris en charges par le paquet ‘hplip’.
     Pour l’utiliser sur un système qui utiliser les
     ‘%desktop-services’, vous pouvez utiliser ‘modify-services’ (*note
     ‘modify-services’: Référence de service.) comme montré ci-dessous :

          (use-modules (gnu))
          (use-service-modules
            ...
            desktop)
          (use-package-modules
            ...
            scanner)

          (define %my-desktop-services
            ;; Liste des services de bureau qui prennent en charge un plus grand nombre de scanners.
            (modify-services %desktop-services
              (sane-service-type _ => sane-backends)))

          (operating-system
            ;; ...
            (services %my-desktop-services))

 -- Procédure Scheme : geoclue-application name [#:allowed? #t]
          [#:system? #f] [#:users '()]
     Renvoie une configuration qui permet d’accéder aux données de
     localisation de GeoClue. NAME est l’ID Desktop de l’application,
     sans la partie en ‘.desktop’. Si ALLOWED? est vraie, l’application
     aura droit d’accéder aux informations de localisation par défaut.
     Le booléen SYSTEM? indique si une application est un composant
     système ou non. Enfin USERS est la liste des UID des utilisateurs
     pour lesquels cette application a le droit d’accéder aux
     informations de géolocalisation. Une liste d’utilisateurs vide
     indique que tous les utilisateurs sont autorisés.

 -- Variable Scheme : %standard-geoclue-applications
     La liste standard de configuration des application GeoClue connues,
     qui permet à l’utilitaire date-and-time de GNOME de demander
     l’emplacement actuel pour initialiser le fuseau horaire et aux
     navigateurs web IceCat et Epiphany de demander les informations de
     localisation. IceCat et Epiphany demandent tous deux à
     l’utilisateur avant de permettre à une page web de connaître
     l’emplacement de l’utilisateur.

 -- Procédure Scheme : geoclue-service [#:colord COLORD] [#:whitelist
          '()] [#:wifi-geolocation-url
     "https://location.services.mozilla.com/v1/geolocate?key=geoclue"]
      [#:submit-data? #f] [#:wifi-submission-url
     "https://location.services.mozilla.com/v1/submit?key=geoclue"]
      [#:submission-nick "geoclue"]  [#:applications
     %standard-geoclue-applications] Renvoie un service qui lance le
     service de géolocalisation GeoClue. Ce service fournit une
     interface D-Bus pour permettre aux applications de demande l’accès
     à la position de l’utilisateur et éventuellement d’ajouter des
     informations à des bases de données de géolocalisation en ligne.
     Voir le site web de GeoClue
     (https://wiki.freedesktop.org/www/Software/GeoClue/) pour plus
     d’informations.

 -- Procédure Scheme : bluetooth-service [#:bluez BLUEZ]
          [#:auto-enable? #f]
     Renvoie un service qui lance le démon ‘bluetoothd’ qui gère tous
     les appareils Bluetooth et fournit un certain nombre d’interfaces
     D-Bus. Lorsque AUTO-ENABLE? est vraie, le contrôler bluetooth est
     automatiquement alimenté au démarrage, ce qui peut être utile
     lorsque vous utilisez un clavier ou une souris bluetooth.

     Les utilisateurs doivent être dans le groupe ‘lp’ pour accéder au
     service D-Bus.

 -- Variable Scheme : bluetooth-service-type
     C’est le type pour le système Linux Bluetooth Protocol Stack
     (https://bluez.org/) (BlueZ), qui génère le fichier de
     configuration ‘/etc/bluetooth/main.conf’. La valeur de ce type est
     un enregistrement ‘bluetooth-configuration’ comme dans cet exemple
     :

          (service bluetooth-service-type)

     Voir plus bas pour des détails sur ‘bluetooth-configuration’.

 -- Type de données : bluetooth-configuration
     Type de données représentant la configuration pour
     ‘bluetooth-service’.

     ‘bluez’ (par défaut : ‘bluez’)
          Le paquet ‘bluez’ à utiliser.

     ‘name’ (par défaut : ‘"BlueZ"’)
          Nom de l’adaptateur par défaut.

     ‘class’ (par défaut : ‘#x000000’)
          Classe de périphérique par défaut. Seuls les bits de classe de
          périphérique majeurs et mineurs sont pris en compte.

     ‘discoverable-timeout’ (par défaut : ‘180’)
          Indique le temps pendant lequel rester en mode découvrable
          avant de repasser en mode non-découvrable. La valeur est en
          secondes.

     ‘always-pairable?’ (par défaut : ‘#f’)
          Permet de toujours s’appairer même s’il n’y a aucun agent
          enregistré.

     ‘pairable-timeout’ (par défaut : ‘0’)
          Indique combien de temps rester en mode d’appairage avant de
          repasser en mode non-découvrable. La valeur est en secondes.

     ‘device-id’ (par défaut : ‘#f’)
          Utilise les informations de source de l’identifiant de
          fabriquant (assignateur), de fabriquant, de produit et de
          version pour la prise en charge du profil DID. Les valeurs
          sont séparées par « : » et ASSIGNATEUR, FABRIQUANT, PRODUIT et
          VERSION.

          Les valeurs possibles sont :

             • ‘#f’ pour le désactiver,

             • ‘"assignateur:1234:5678:abcd"’, où ASSIGNATEUR est soit
               ‘usb’ (par défaut) soit ‘bluetooth’.

     ‘reverse-service-discovery?’ (par défaut : ‘#t’)
          Utilise la découverte de service inversée pour les
          périphériques précédemment inconnus qui se connectent. Pour
          BR/EDR cette option n’est vraiment requise que pour la
          qualification cate le testeur BITE n’aime pas la découverte
          inversée dans certains cas de tests, pour LE cela désactive la
          fonctionnalité cliente GATT donc elle peut être utilisée pour
          les systèmes qui n’opèrent que comme un périphérique.

     ‘name-resolving?’ (par défaut : ‘#t’)
          Active la résolution de nom après la requête. Indiquez ‘#f’ si
          vous n’avez pas besoin des noms des périphériques distants et
          souhaitez avoir un cycle de découverte plus court.

     ‘debug-keys?’ (par défaut : ‘#f’)
          Active la persistance des clés de lien de débogage à
          l’exécution. La valeur par défaut est fausse et rend les clés
          de lien de débogage valides uniquement pour la durée de la
          connexion pour laquelle elles ont été créées.

     ‘controller-mode’ (par défaut : ‘'dual’)
          Restreint tous les contrôleurs à leur transport spécifié.
          ‘'dual’ signifie que BR/EDR et LE sont tous deux activés (si
          cela est pris en charge par le matériel).

          Les valeurs possibles sont :

             • ‘'dual’

             • ‘'bredr’

             • ‘'le’

     ‘multi-profile’ (par défaut : ‘'off’)
          Active la prise en charge de la spécification multi-profil.
          Cela permet de spécifier si le système ne prend en charge que
          la configuration multi-profil mono-appareil (MPSD) ou à la
          fois la configuration multi-profil mono-appareil (MPSD) et
          multi-profil multi-appareil (MPMD).

          Les valeurs possibles sont :

             • ‘'off’

             • ‘'single’

             • ‘'multiple’

     ‘fast-connectable?’ (par défaut : ‘#f’)
          Active le paramètre Fast Connectable de manière permanente
          pour les adaptateurs qui le prennent en charge. Lorsqu’il est
          activé les autres appareils peuvent se connecter plus
          rapidement, cependant le compromis est l’augmentation de la
          consommation électrique. Ce paramètre ne fonctionnera
          correctement que sur les versions du noyau 4.1 et supérieur.

     ‘privacy’ (par défaut : ‘'off’)
          Paramètres de vie privée par défaut.

             • ‘'off’ : désactive la vie privée locale

             • ‘'network/on’ : un appareil n’acceptera pas de paquets
               d’annonce d’appareils appairés qui contiennent des
               adresses privées. Cela peut ne pas être compatible avec
               certains anciens appareils car ils nécessitent
               l’utilisation continue de RPA

             • ‘'device’ : un appareil dans le mode de vie privée pour
               l’appareil ne se souci que de la vie privée de l’appareil
               et acceptera les paquets d’annonces d’appareils appairés
               qui contiennent leur adresse d’identité ainsi que ceux
               qui contiennent une adresse privée, même si l’appareil a
               distribué son IRK par le passé

          et en plus, si CONTROLLER-MODE vaut ‘'dual’ :

             • ‘'limited-network’ : applique le mode de découverte
               limité aux annonces, qui suivent la même politique que
               BR/EDR qui publie l’adresse d’identité en mode
               découvrable, et le mode de vie privée réseau pour scanner

             • ‘'limited-device’ : applique le mode de découverte
               limitée aux annonces, qui suit la même politique que
               BR/EDR qui publie d’adresse d’identité en mode
               découvrable, et le mode de vie privé de l’appareil pour
               le scan.

     ‘just-works-repairing’ (par défaut : ‘'never’)
          Spécifie la politique de ré-appairage JUST-WORKS du pair.

          Les valeurs possibles sont :
             • ‘'never’

             • ‘'confirm’

             • ‘'always’

     ‘temporary-timeout’ (par défaut : ‘30’)
          Le temps pendant lequel garder les appareils temporaires. La
          valeur est en secondes. ‘0’ désactive complètement l’horloge.

     ‘refresh-discovery?’ (par défaut : ‘#t’)
          Permet au périphérique d’envoyer une requête SDP pour mettre à
          jour les services connus quand le profil est connecté.

     ‘experimental?’ (par défaut : ‘#f’)
          Active les fonctionnalités et les interfaces expérimentales,
          ou bien une liste d’UUID.

          Les valeurs possibles sont :

             • ‘#t’

             • ‘#f’

             • ‘(list (uuid <uuid-1>) (uuid <uuid-2>) ...)’.

          La liste des UUID possibles :
             • ‘d4992530-b9ec-469f-ab01-6c481c47da1c’ : le débogage
               expérimental de BlueZ,

             • ‘671b10b5-42c0-4696-9227-eb28d1b049d6’ : simultanément
               central et périphérique expérimental de BlueZ,

             • ‘"15c0a148-c273-11ea-b3de-0242ac130004’ : vie privée LL
               expérimentale de BlueZ,

             • ‘330859bc-7506-492d-9370-9a6f0614037f’ : rapport de
               qualité Bluetooth expérimental de BlueZ,

             • ‘a6695ace-ee7f-4fb9-881a-5fac66c629af’ : codecs de
               déchargement expérimentaux de BlueZ.

     ‘remote-name-request-retry-delay’ (par défaut : ‘300’)
          La durée pour éviter de réessayer de résoudre le nom d’un
          pair, si l’essai précédent a échoué.

     ‘page-scan-type’ (par défaut : ‘#f’)
          type d’activité de scan de page BR/EDR.

     ‘page-scan-interval’ (par défaut : ‘#f’)
          Intervalle d’activité de scan de page BR/EDR.

     ‘page-scan-window’ (par défaut : ‘#f’)
          Fenêtre d’activité de scan de page BR/EDR.

     ‘inquiry-scan-type’ (par défaut : ‘#f’)
          Type d’activité de scan de requête BR/EDR.

     ‘inquiry-scan-interval’ (par défaut : ‘#f’)
          Intervalle d’activité de scan de requête BR/EDR.

     ‘inquiry-scan-window’ (par défaut : ‘#f’)
          Fenêtre d’activité de scan de requête BR/EDR.

     ‘link-supervision-timeout’ (par défaut : ‘#f’)
          Délai d’attente de supervision du lien BR/EDR.

     ‘page-timeout’ (par défaut : ‘#f’)
          Délai d’attente de page BR/EDR.

     ‘min-sniff-interval’ (par défaut : ‘#f’)
          Intervalle de sniff minimum BR/EDR.

     ‘max-sniff-interval’ (par défaut : ‘#f’)
          Intervalle de sniff maximum BR/EDR.

     ‘min-advertisement-interval’ (par défaut : ‘#f’)
          Intervalle d’annonce minimum LE (utilisé pour les anciens
          types d’annonces uniquement).

     ‘max-advertisement-interval’ (par défaut : ‘#f’)
          Intervalle d’annonce maximum LE (utilisé pour les anciens
          types d’annonce uniquement).

     ‘multi-advertisement-rotation-interval’ (par défaut : ‘#f’)
          Intervalle de rotation des multi-annonces LE.

     ‘scan-interval-auto-connect’ (par défaut : ‘#f’)
          Intervalle de scan LE utilisé pour le scan passif avec
          connexion automatique.

     ‘scan-window-auto-connect’ (par défaut : ‘#f’)
          Fenêtre de scan LE utilisé pour le scan passive avec prise en
          charge de la connexion automatique.

     ‘scan-interval-suspend’ (par défaut : ‘#f’)
          Intervalle de scan LE utilisé pour le scan actif avec prise en
          charge du réveil.

     ‘scan-window-suspend’ (par défaut : ‘#f’)
          Fenêtre de scan LE utilisée pour le scan actif avec prise en
          charge du réveil.

     ‘scan-interval-discovery’ (par défaut : ‘#f’)
          Intervalle de scan LE utilisé pour le scan actif avec prise en
          charge de la découverte.

     ‘scan-window-discovery’ (par défaut : ‘#f’)
          Fenêtre de scan LE utilisée pour le scan actif avec prise en
          charge de la découverte.

     ‘scan-interval-adv-monitor’ (par défaut : ‘#f’)
          Intervalle de scan LE utilisé pour le scan passif avec prise
          en charge des API de surveillance des annonces.

     ‘scan-window-adv-monitor’ (par défaut : ‘#f’)
          Fenêtre de scan LE utilisée pour le scan passif avec prise en
          charge des API de surveillance des annonces.

     ‘scan-interval-connect’ (par défaut : ‘#f’)
          Intervalle de scan LE utilisé pour l’établissement de
          connexion.

     ‘scan-window-connect’ (par défaut : ‘#f’)
          Fenêtre de scan LE utilisée pour l’établissement de connexion.

     ‘min-connection-interval’ (par défaut : ‘#f’)
          Intervalle minimal de connexion LE par défaut. Cette valeur
          est remplacée par toute valeur spécifique de l’interface de
          chargement des paramètres de connexion.

     ‘max-connection-interval’ (par défaut : ‘#f’)
          Intervalle maximal de connexion LE par défaut. Cette valeur
          est remplacée par toute valeur spécifique de l’interface de
          chargement des paramètres de connexion.

     ‘connection-latency’ (par défaut : ‘#f’)
          Latence de connexion LE. Cette valeur est remplacée par toute
          valeur spécifique de l’interface de chargement des paramètres
          de connexion.

     ‘connection-supervision-timeout’ (par défaut : ‘#f’)
          Délai d’attente de supervision de la connexion LE par défaut.
          Cette valeur est remplacée par toute valeur spécifique de
          l’interface de chargement des paramètres de connexion.

     ‘autoconnect-timeout’ (par défaut : ‘#f’)
          Délai d’attente de connexion automatique LE par défaut. Cette
          valeur est remplacée par toute valeur spécifique de
          l’interface de chargement des paramètres de connexion.

     ‘adv-mon-allowlist-scan-duration’ (par défaut : ‘300’)
          Durée du scan Allowlist pendant le scan entrelacé. Utilisé
          uniquement pour scanner des moniteurs ADV. L’unité est en
          msec.

     ‘adv-mon-no-filter-scan-duration’ (par défaut : ‘5’)
          Durée du scan sans filtre pendant le scan entrelacé. Utilisé
          uniquement pour scanner des moniteurs ADV. L’unité est en
          msec.

     ‘enable-adv-mon-interleave-scan?’ (par défaut : ‘#t’)
          Active ou désactive le scan entrelacé des moniteurs d’annonce
          pour la batterie.

     ‘cache’ (par défaut : ‘'always’)
          Cache des attributs GATT.

          Les valeurs possibles sont :
             • ‘'always’ : toujours mettre en cache les attributs même
               pour les périphériques non appairés, c’est recommandé car
               l’option est la plus adaptée pour l’interopérabilité,
               avec des temps de reconnexions plus constants, et cela
               active le suivi correct des notifications de tous les
               appareils

             • ‘'yes’ : ne met en cache que les attributs des
               périphériques appairés

             • ‘'no’ : ne met aucun attribut en cache.

     ‘key-size’ (par défaut : ‘0’)
          Minimum requis pour la taille de clé de chiffrement pour
          accéder aux caractéristiques sécurisées.

          Les valeurs possibles sont :
             • ‘0’ : on s’en fiche

             • ‘7 <= N <= 16’

     ‘exchange-mtu’ (par défaut : ‘517’)
          Taille de MTU pour les échanges. Les valeurs possibles sont :

             • ‘23 <= N <= 517’

     ‘att-channels’ (par défaut : ‘3’)
          Nombre de canaux ATT. Les valeurs possibles sont :

             • ‘1’ : désactive EATT

             • ‘2 <= N <= 5’

     ‘session-mode’ (par défaut : ‘'basic’)
          Mode de canal AVDTP L2CAP.

          Les valeurs possibles sont :

             • ‘'basic’ : utiliser le mode de base L2CAP

             • ‘'ertm’ : utiliser le mode de retransmission amélioré
               L2CAP.

     ‘stream-mode’ (par défaut : ‘'basic’)
          Mode de canal de transport AVDTP L2CAP.

          Les valeurs possibles sont :

             • ‘'basic’ : utiliser le mode de base L2CAP

             • ‘'streaming’ : utiliser le mode de flux L2CAP.

     ‘reconnect-uuids’ (par défaut : ‘'()’)
          ReconnectUUIDs défini l’ensemble des services distants
          auxquels on devrait essayer de se reconnecter en cas de perte
          de lien (délai d’attente dépassés sur la supervision du lien).
          Le greffon de politique devrait contenir un ensemble de
          valeurs par défaut correct, mais cette liste peut être
          modifiée ici. En indiquant la liste vide, la fonctionnalité de
          reconnexion est désactivée.

          Les valeurs possibles sont :

             • ‘'()’

             • ‘(list (uuid <uuid-1>) (uuid <uuid-2>) ...)’.

     ‘reconnect-attempts’ (par défaut : ‘7’)
          Défini le nombre de tentatives de reconnexion après la perte
          d’un lien. La valeur 0 désactive la fonctionnalité de
          reconnexion.

     ‘reconnect-intervals’ (par défaut : ‘'(1 2 4 8 16 32 64)’)
          Défini une liste d’intervalles en secondes à utiliser entre
          les tentatives. Si le nombre de tentatives défini dans
          RECONNECT-ATTEMPTS est plus grand que la liste d’intervalles,
          le dernier intervalle est répété jusqu’à la dernière
          tentative.

     ‘auto-enable?’ (par défaut : ‘#f’)
          Défini l’option pour activer tous les contrôleurs quand ils
          sont trouvés. Cela comprend les adaptateurs présents au
          démarrage ainsi que les adaptateurs branchés plus tard.

     ‘resume-delay’ (par défaut : ‘2’)
          Les périphériques audio qui ont été déconnectés à cause d’une
          hibernation seront reconnectés au redémarrage. RESUME-DELAY
          détermine le délai entre le retour du contrôleur de veille et
          la tentative de connexion. Un délai plus long est préférable
          pour une meilleure coexistence avec le Wi-Fi. La valeur est en
          secondes.

     ‘rssi-sampling-period’ (par défaut : ‘#xFF’)
          Période d’échantillonnage RSSI par défaut. C’est utilisé quand
          un client enregistre un moniteur d’annonce et laisse
          RSSISamplingPeriod sans valeur.

          Les valeurs possibles sont :
             • ‘#x0’ : rapporte toutes les annonces

             • ‘N = #xXX’ : rapporte les annonces toutes les N × 100
               msec (de #x01 à #xFE)

             • ‘#xFF’ : rapporte seulement une annonce par périphérique
               pendant la période de monitoring.

 -- Variable Scheme : gnome-keyring-service-type
     C’est le type de service qui ajoute GNOME Keyring
     (https://wiki.gnome.org/Projects/GnomeKeyring). Sa valeur est un
     objet ‘gnome-keyring-configuration’ (voir plus bas).

     Ce service ajoute le paquet ‘gnome-keyring’ au profil du système et
     étend PAM avec des entrées avec ‘pam_gnome_keyring.so’, permettant
     de déverrouiller un porteclé utilisateur à la connexion ou de
     spécifier son mot de passe avec passwd.

 -- Type de données : gnome-keyring-configuration
     Enregistrement de la configuration du service GNOME Keyring.

     ‘keyring’ (par défaut : ‘gnome-keyring’)
          Le paquet GNOME keyring à utiliser.

     ‘pam-services’
          Une liste de paires ‘(SERVICE . TYPE)’ dénotant des services
          PAM à étendre, où SERVICE est le nom d’un service existant à
          étendre et TYPE est ‘login’ ou ‘passwd’.

          S’il s’agit de ‘login’, cela ajoute un ‘pam_gnome_keyring.so’
          facultatif au bloc d’authentification sans argument et au bloc
          de session avec ‘auto_start’. S’il s’agit de ‘passwd’, cela
          ajoute un ‘pam_gnome_keyring.so’ facultatif au bloc de mot de
          passe sans argument.

          Par défaut, ce champ contient « gdm-password » avec la valeur
          ‘login’ et « passwd » avec la valeur ‘passwd’.

 -- Variable Scheme : seatd-service-type
     seatd (https://sr.ht/~kennylevinsen/seatd/) est un démon de gestion
     de siège.

     La gestion des sièges prend en charge la médiation de l’accès aux
     périphériques partagés (d’affichage, de saisie), sans nécessiter
     que les applications n’aient besoin d’être root.

          (append
            (list
             ;; s'assure que seatd est lancé
             (service seatd-service-type))

            ;; normalement vous avez besoin de %base-services
            %base-services)


     ‘seatd’ agit sur un socket domaine UNIX, et ‘libseat’ fournit le
     côté client du protocole. Les applications qui ont accès aux
     ressources partagées par ‘seatd’ (p. ex. ‘sway’) doivent pouvoir
     parler sur ce socket. Vous pouvez y arriver en ajoutant
     l’utilisateur sous lequel ils tournent au groupe auquel appartient
     le socket de ‘seatd’ (habituellement « seat »), comme ceci :

          (user-account
            (name "alice")
            (group "users")
            (supplementary-groups '("wheel"   ; permet d'utiliser sudo, etc.
                                    "seat"    ; gestion des sièges
                                    "audio"   ; carte son
                                    "video"   ; périphériques réseaux comme les webcams
                                    "cdrom")) ; le bon vieux CD-ROM
            (comment "Bob's sister"))

     En fonction de votre configuration, vous devrez non seulement
     ajouter des utilisateur normaux, mais aussi des utilisateurs
     systèmes à ce groupe. Par exemple, certains écrans d’accueil greetd
     nécessitent les graphismes et doivent donc négocier avec seatd.

 -- Type de données : seatd-configuration
     Enregistrement de la configuration du service du démon seatd.

     ‘seatd’ (par défaut : ‘seatd’)
          Le paquet seatd à utiliser.

     ‘group’ (par défaut : ‘"seat"’)
          Groupe qui possède le socket seatd.

     ‘socket’ (par défaut : ‘"/run/seatd.sock"’)
          Indique où créer le socket seatd.

     ‘logfile’ (par défaut : ‘"/var/log/seatd.log"’)
          Fichier journal où écrire.

     ‘loglevel’ (par défaut : ‘"error"’)
          Niveau de journalisation pour l’affichage des journaux. Les
          valeurs possibles sont : ‘"silent"’, ‘"error"’, ‘"info"’ et
          ‘"debug"’.


File: guix.fr.info,  Node: Services de son,  Next: Services de bases de données,  Prev: Services de bureaux,  Up: Services

12.9.10 Services de son
-----------------------

Le module ‘(gnu services sound)’ fournit un service pour configurer le
système ALSA (architecture son linux avancée), qui fait de PulseAudio le
pilote de sortie préféré d’ALSA.

 -- Variable Scheme : alsa-service-type
     C’est le type pour le système Advanced Linux Sound Architecture
     (https://alsa-project.org/) (ALSA), qui génère le fichier de
     configuration ‘/etc/asound.conf’. La valeur de ce type est un
     enregistrement ‘alsa-configuration’ comme dans cet exemple :

          (service alsa-service-type)

     Voir plus bas pour des détails sur ‘alsa-configuration’.

 -- Type de données : alsa-configuration
     Type de données représentant la configuration pour ‘alsa-service’.

     ‘alsa-plugins’ (par défaut : ALSA-PLUGINS)
          Le paquet ‘alsa-plugins’ à utiliser.

     ‘pulseaudio?’ (par défaut : #T)
          Indique si les applications ALSA devraient utiliser le serveur
          de son PulseAudio (https://www.pulseaudio.org/) de manière
          transparente pour elles.

          Utiliser PulseAudio vous permet dans lancer plusieurs
          applications qui produisent du son en même temps et de les
          contrôler individuellement via ‘pavucontrol’ entre autres
          choses.

     ‘extra-options’ (par défaut : "")
          Chaîne à ajouter au fichier ‘/etc/asound.conf’.

   Les utilisateurs individuels qui veulent modifier la configuration
système d’ALSA peuvent le faire avec le fichier ‘~/.asoundrc’ :

     # Dans guix, il faut spécifier le chemin absolu des greffons.
     pcm_type.jack {
       lib "/home/alice/.guix-profile/lib/alsa-lib/libasound_module_pcm_jack.so"
     }

     # Faire passer ALSA par Jack :
     # <http://jackaudio.org/faq/routing_alsa.html>.
     pcm.rawjack {
       type jack
       playback_ports {
         0 system:playback_1
         1 system:playback_2
       }

       capture_ports {
         0 system:capture_1
         1 system:capture_2
       }
     }

     pcm.!default {
       type plug
       slave {
         pcm "rawjack"
       }
     }

   Voir <https://www.alsa-project.org/main/index.php/Asoundrc> pour les
détails.

 -- Variable Scheme : pulseaudio-service-type
     C’est le type de service pour le serveur de son PulseAudio
     (https://www.pulseaudio.org/). Sa valeur est un
     ‘pulseaudio-configuration’ (voir plus bas).

          Attention : Ce service prend le pas sur les fichiers de
          configuration utilisateurs. Si vous voulez que PulseAudio
          prenne en compte les fichiers de configuration de
          ‘~/.config/pulse’ vous devez réinitialiser les variables
          d’environnement ‘PULSE_CONFIG’ et ‘PULSE_CLIENTCONFIG’ dans
          votre ‘~/.bash_profile’.

          Attention : Ce service seul ne s’assure pas que le paquet
          ‘pulseaudio’ existe sur votre machine. Il ajoute seulement des
          fichiers de configuration, comme décrit plus bas. Dans le cas
          (vraiment improbable) où vous n’auriez pas de paquet
          ‘pulseaudio’, vous pouvez l’activer à travers le service
          ‘alsa-service-type’ plus haut.

 -- Type de données : pulseaudio-configuration
     Type de données représentant la configuration pour
     ‘pulseaudio-service’.

     ‘client-conf’ (par défaut : ‘'()’)
          Liste les paramètres à indiquer dans ‘client.conf’. Accepte
          une liste de chaines ou de paires symboles-valeurs. Une chaine
          sera insérée telle quelle avec un saut de ligne. Une paire
          sera formatée en « clé = valeur » avec un saut de ligne.

     ‘daemon-conf’ (par défaut : ‘'((flat-volumes . no))’)
          Liste les paramètres à indiquer dans ‘daemon.conf’, formaté
          comme CLIENT-CONF.

     ‘script-file’ (par défaut : ‘(file-append pulseaudio "/etc/pulse/default.pa")’)
          Le fichier de script à utiliser en tant que ‘default.pa’. Si
          le champ ‘extra-script-files’ ci-dessous est utilisé, une
          directive ‘.include’ pointant vers ‘/etc/pulse/default.pa.d’
          est ajoutée au script fourni.

     ‘extra-script-files’ (par défaut : ‘'()’)
          Une liste d’objet simili-fichiers qui définissent des scripts
          PulseAudio supplémentaires à lancer à l’initialisation du
          démon ‘pulseaudio’, après le ‘script-file’ principal. Les
          scripts sont déployés dans le répertoire
          ‘/etc/pulse/default.pa.d’. Ils devraient avoir l’extension de
          nom de fichier ‘.pa’. Pour une référence sur les commandes
          disponibles, consultez ‘man pulse-cli-syntax’.

     ‘system-script-file’ (par défaut : ‘(file-append pulseaudio "/etc/pulse/system.pa")’)
          Fichier de script à utiliser comme ‘system.pa’.

     L’exemple ci-dessous initialise le profil de carte PulseAudio par
     défaut, le drain par défaut et la source par défaut à utiliser pour
     une ancienne carte son SoundBlaster Audigy :
          (pulseaudio-configuration
           (extra-script-files
            (list (plain-file "audigy.pa"
                              (string-append "\
          set-card-profile alsa_card.pci-0000_01_01.0 \
            output:analog-surround-40+input:analog-mono
          set-default-source alsa_input.pci-0000_01_01.0.analog-mono
          set-default-sink alsa_output.pci-0000_01_01.0.analog-surround-40\n")))))

     Remarquez que ‘pulseaudio-service-type’ fait partie de
     ‘%desktop-services’. Si votre déclaration de système d’exploitation
     dérive d’un des modèles pour ordinateur de bureau, vous devrez
     ajuster l’exemple ci-dessus pour modifier le service
     ‘pulseaudio-service-type’ existant avec ‘modify-services’ (*note
     ‘modify-services’: Référence de service.), au lieu de le définir à
     nouveau.

 -- Variable Scheme : ladspa-service-type
     Ce service initialise la variable LADSPA_PATH pour que les
     programmes qui la respectent, p. ex. PulseAudio, puissent charger
     les greffons LADSPA.

     L’exemple suivant met en place le service pour activer les modules
     du paquet ‘swh-plugins’ :

          (service ladspa-service-type
                   (ladspa-configuration (plugins (list swh-plugins))))

     Voir <http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html> pour
     les détails.


File: guix.fr.info,  Node: Services de bases de données,  Next: Services de courriels,  Prev: Services de son,  Up: Services

12.9.11 Services de bases de données
------------------------------------

Le module ‘(gnu services databases)’ fournit les services suivants.

PostgreSQL
..........

L’exemple suivant décrit un service PostgreSQL avec la configuration par
défaut.

     (service postgresql-service-type
              (postgresql-configuration
               (postgresql postgresql-10)))

   Si les services ne démarrent pas, cela peut être dû à une grappe
incompatible déjà présente dans DATA-DIRECTORY. Ajustez-la (ou, si vous
n’avez plus besoin de la grappe, supprimez DATA-DIRECTORY) puis
redémarrez le service.

   L’authentification des pairs est utilisé par défaut et le compte
utilisateur ‘postgres’ n’a pas de shell, ce qui évite l’exécution
directe de ‘psql’ en tant que cet utilisateur. Pour utiliser ‘psql’,
vous pouvez vous authentifier temporairement en tant que ‘postgres’ avec
un shell, créer un superutilisateur PostgreSQL avec le même nom qu’un
des utilisateurs du système et créer la base de données associée.

     sudo -u postgres -s /bin/sh
     createuser --interactive
     createdb $MY_USER_LOGIN      # Remplacez comme vous voulez.

 -- Type de données : postgresql-configuration
     Type de données représentant la configuration de
     ‘postgresql-service-type’.

     ‘postgresql’
          Le paquet PostgreSQL à utiliser pour ce service.

     ‘port’ (par défaut : ‘5432’)
          Port sur lequel PostgreSQL écoutera.

     ‘locale’ (par défaut : ‘"en_US.utf8"’)
          Paramètre linguistique à utiliser par défaut lors de la
          création de la grappe de bases de données.

     ‘config-file’ (par défaut : ‘(postgresql-config-file)’)
          Le fichier de configuration à utiliser pour lancer PostgreSQL.
          Le comportement par défaut est d’utiliser l’enregistrement
          postgresql-config-file avec les valeurs par défaut pour les
          champs.

     ‘log-directory’ (default: ‘"/var/log/postgresql"’)
          Le répertoire où la sortie de ‘pg_ctl’ sera écrite, dans un
          fichier nommé ‘"pg_ctl.log"’. Ce fichier peut être utile pour
          déboguer les erreurs de configuration de PostgreSQL par
          exemple.

     ‘data-directory’ (par défaut : ‘"/var/lib/postgresql/data"’)
          Répertoire dans lequel stocker les données.

     ‘extension-packages’ (par défaut : ‘'()’)
          Des extensions supplémentaires peuvent être chargées à partir
          de paquets listés dans EXTENSION-PACKAGES. Les extensions sont
          disponibles à l’exécution. Par exemple, pour créer une base de
          données géographique avec l’extension ‘postgis’, on peut
          configurer postgresql-service de cette manière :

               (use-package-modules databases geo)

               (operating-system
                 ...
                 ;; postgresql est requis pour lancer `psql' mais postgis n'est pas requis pour son
                 ;; bon fonctionnement.
                 (packages (cons* postgresql %base-packages))
                 (services
                   (cons*
                     (service postgresql-service-type
                              (postgresql-configuration
                               (postgresql postgresql-10)
                               (extension-packages (list postgis))))
                     %base-services)))

          Ensuite l’extension devient visible et vous pouvez initialiser
          une base de données géographique de cette manière :

               psql -U postgres
               > create database postgistest;
               > \connect postgistest;
               > create extension postgis;
               > create extension postgis_topology;

          Vous n’avez pas besoin d’ajouter ce champ pour les extensions
          « contrib » comme hstore ou dblink comme elles sont déjà
          exploitables par postgresql. Ce champ n’est requis que pour
          ajouter des extensions fournies par d’autres paquets.

 -- Type de données : postgresql-config-file
     Type de données représentant le fichier de configuration de
     PostgreSQL. Comme montré dans l’exemple suivant, on peut l’utiliser
     pour personnaliser la configuration de PostgreSQL. Remarquez que
     vous pouvez utiliser n’importe quelle G-expression ou nom de
     fichier à la place de cet enregistrement, si par exemple vous avez
     déjà un fichier de configuration que vous voulez utiliser.

          (service postgresql-service-type
                   (postgresql-configuration
                    (config-file
                     (postgresql-config-file
                      (log-destination "stderr")
                      (hba-file
                       (plain-file "pg_hba.conf"
                                   "
          local	all	all			trust
          host	all	all	127.0.0.1/32 	md5
          host	all	all	::1/128 	md5"))
                      (extra-config
                       '(("session_preload_libraries"     "auto_explain")
                         ("random_page_cost"              2)
                         ("auto_explain.log_min_duration" "100 ms")
                         ("work_mem"                      "500 MB")
                         ("logging_collector"             #t)
                         ("log_directory"                 "/var/log/postgresql")))))))

     ‘log-destination’ (par défaut : ‘"syslog"’)
          La méthode de journalisation de PostgreSQL. Plusieurs valeurs
          sont possibles, séparées par des virgules.

     ‘hba-file’ (par défaut : ‘%default-postgres-hba’)
          Nom de fichier ou G-expression pour la configuration de
          l’authentification par hôte.

     ‘ident-file’ (par défaut : ‘%default-postgres-ident’)
          Nom de fichier ou G-expression pour la configuration de la
          correspondance de noms d’utilisateurs.

     ‘socket-directory’ (par défaut : ‘"/var/run/postgresql"’)
          Spécifie le répertoire des sockets Unix-domain sur lesquels
          PostgreSQL écoutera les connexion d’applications clientes. Si
          la valeur est ‘""’, PostgreSQL n’écoute sur aucun socket
          Unix-domain, auquel cas seuls les socket TCP/IP permettent de
          se connecter au serveur.

          Par défaut, la valeur ‘#false’ signifie que la valeur par
          défaut de PostgreSQL sera utilisée, actuellement ‘/tmp’.

     ‘extra-config’ (par défaut : ‘'()’)
          Liste de clés et valeurs supplémentaires à inclure dans le
          fichier de configuration de PostgreSQL. Chaque entrée dans la
          liste devrait être une liste où le premier élément est la clé,
          et les autres éléments sont les valeurs.

          Les valeurs peuvent être des nombres, des booléens ou des
          chaînes et seront transformées en types de paramètres de
          PostgreSQL ‘Boolean’, ‘String’, ‘Numeric’, ‘Numeric with Unit’
          et ‘Enumerated’ décrits ici
          (https://www.postgresql.org/docs/current/config-setting.html).

 -- Variable Scheme : postgresql-role-service-type
     Ce service permet de créer des rôles PostgreSQL et des bases de
     données après le démarrage du service PostgreSQL. Voici un exemple
     d’utilisation.

          (service postgresql-role-service-type
                      (postgresql-role-configuration
                       (roles
                        (list (postgresql-role
                               (name "test")
                               (create-database? #t))))))

     Ce service peut être étendu avec des rôles supplémentaires, comme
     dans cet exemple :

          (service-extension postgresql-role-service-type
                             (const (postgresql-role
                                     (name "alice")
                                     (create-database? #t))))

 -- Type de données : postgresql-role
     PostgreSQL gère les permissions d’accès à la base de données en
     utilisant le concept de rôle. Un rôle est soit comme un utilisateur
     de la base de données, soit un groupe d’utilisateurs, en fonction
     du paramétrage du rôle. Les rôles peuvent posséder des objets de la
     base (par exemple des tables) et peuvent assigner des privilèges
     sur ces objets à d’autres rôles pour contrôler qui a accès à quels
     objets.

     ‘name’
          Le nom du rôle.

     ‘permissions’ (par défaut : ‘'(createdb login)’)
          La liste des permissions du rôle. Les permissions prises en
          charge sont ‘bypassrls’, ‘createdb’, ‘createrole’, ‘login’,
          ‘replication’ et ‘superuser’.

     ‘create-database?’ (par défaut : ‘#f’)
          Indique s’il faut créer une base de données avec le même nom
          que le rôle.

 -- Type de données : postgresql-role-configuration
     Type de données représentant la configuration de
     POSTGRESQL-ROLE-SERVICE-TYPE.

     ‘host’ (par défaut : ‘"/var/run/postgresql"’)
          L’hôte PostgreSQL sur lequel se connecter.

     ‘log’ (par défaut : ‘"/var/log/postgresql_roles.log"’)
          Nom du fichier du fichier de journal.

     ‘roles’ (par défaut : ‘'()’)
          Les rôles PostgreSQL initiaux à créer.

MariaDB/MySQL
.............

 -- Variable Scheme : mysql-service-type
     C’est le type du service pour une base de donnée MySQL ou MariaDB.
     Sa valeur est un objet ‘mysql-configuration’, qui spécifie le
     paquet à utiliser ainsi que divers paramètres pour le démon
     ‘mysqld’.

 -- Type de données : mysql-configuration
     Type de données représentant la configuration de
     MYSQL-SERVICE-TYPE.

     ‘mysql’ (par défaut : MARIADB)
          Objet paquet du serveur de base de données MySQL, qui peut
          être soit MARIADB, soit MYSQL.

          Pour MySQL, un mot de passe root temporaire sera affiché à
          l’activation. Pour MariaDB, le mot de passe root est vide.

     ‘bind-address’ (par défaut : ‘"127.0.0.1"’)
          L’IP sur laquelle écouter les connexions réseau. Utilisez
          ‘"0.0.0.0"’ pour écouter sur toutes les interfaces réseaux.

     ‘port’ (par défaut : ‘3306’)
          Port TCP sur lequel le serveur de base de données écoute les
          connexions entrantes.

     ‘socket’ (par défaut : ‘"/run/mysqld/mysqld.sock"’)
          Fichier de socket à utiliser pour les connexions locales (pas
          via le réseau).

     ‘extra-content’ (par défaut : ‘""’)
          Paramètres supplémentaires pour le fichier de configuration
          ‘my.cnf’.

     ‘extra-environment’ (par défaut : ‘#~'()’)
          Liste de variables d’environnement passées au processus
          ‘mysqld’.

     ‘auto-upgrade?’ (par défaut : ‘#t’)
          Indique s’il faut automatiquement lancer ‘mysql_upgrade’ après
          avoir démarré le service. C’est nécessaire pour mettre à jour
          le “schéma système” après une mise à jour « majeure » (comme
          de passer de MariaDB 10.4 à 10.5), mais peut être désactivé si
          vous voulez plutôt le faire manuellement.

Memcached
.........

 -- Variable Scheme : memcached-service-type
     C’est le type de service pour le service Memcached
     (https://memcached.org/) qui fournit un cache en mémoire distribué.
     La valeur pour le type de service est un objet
     ‘memcached-configuration’.

     (service memcached-service-type)

 -- Type de données : memcached-configuration
     Type de données représentant la configuration de memcached.

     ‘memcached’ (par défaut : ‘memcached’)
          Le paquet Memcached à utiliser.

     ‘interfaces’ (par défaut : ‘'("0.0.0.0")’)
          Les interfaces réseaux sur lesquelles écouter.

     ‘tcp-port’ (par défaut : ‘11211’)
          Port sur lequel accepter les connexions.

     ‘udp-port’ (par défaut : ‘11211’)
          Port sur lequel accepter les connexions UDP, une valeur de 0
          désactive l’écoute en UDP.

     ‘additional-options’ (par défaut : ‘'()’)
          Options de la ligne de commande supplémentaires à passer à
          ‘memcached’.

Redis
.....

 -- Variable Scheme : redis-service-type
     C’est le type de service pour la base clef-valeur Redis
     (https://redis.io/) dont la valeur est un objet
     ‘redis-configuration’.

 -- Type de données : redis-configuration
     Type de données représentant la configuration de redis.

     ‘redis’ (par défaut : ‘redis’)
          Le paquet Redis à utiliser.

     ‘bind’ (par défaut : ‘"127.0.0.1"’)
          Interface réseau sur laquelle écouter.

     ‘port’ (par défaut : ‘6379’)
          Port sur lequel accepter les connexions, une valeur de 0
          désactive l’écoute sur un socket TCP.

     ‘working-directory’ (par défaut : ‘"/var/lib/redis"’)
          Répertoire dans lequel stocker la base de données et les
          fichiers liés.


File: guix.fr.info,  Node: Services de courriels,  Next: Services de messagerie,  Prev: Services de bases de données,  Up: Services

12.9.12 Services de courriels
-----------------------------

Le module ‘(gnu services mail)’ fournit des définitions de services Guix
pour les services de courriel : des serveurs IMAP, POP3 et LMTP ainsi
que des MTA (Mail Transport Agent). Que d’acronymes ! Ces services sont
détaillés dans les sous-sections ci-dessous.

Service Dovecot
...............

 -- Procédure Scheme : dovecot-service [#:config
          (dovecot-configuration)]
     Renvoie un service qui lance le serveur de courriel IMAP/POP3/LMTP
     Dovecot.

   Par défaut, Dovecot n’a pas besoin de beaucoup de configuration ;
l’objet de configuration par défaut créé par ‘(dovecot-configuration)’
suffira si votre courriel est livré dans ‘~/Maildir’. Un certificat
auto-signé sera généré pour les connexions TLS, bien que Dovecot
écoutera aussi sur les ports non chiffrés par défaut. Il y a quelques
options cependant, que les administrateurs peuvent avoir besoin de
changer et comme c’est le cas avec d’autres services, Guix permet aux
administrateurs systèmes de spécifier ces paramètres via une interface
Scheme unifiée.

   Par exemple, pour spécifier que les courriels se trouvent dans
‘maildir~/.mail’, on peut instancier Dovecot de cette manière :

     (dovecot-service #:config
                      (dovecot-configuration
                       (mail-location "maildir:~/.mail")))

   Les paramètres de configuration disponibles sont les suivants. Chaque
définition des paramètres est précédé par son type ; par exemple,
‘string-list toto’ indique que le paramètre ‘toto’ devrait être spécifié
comme une liste de chaînes de caractères. Il y a aussi une manière de
spécifier la configuration comme une chaîne de caractères, si vous avez
un vieux fichier ‘dovecot.conf’ que vous voulez porter depuis un autre
système ; voir la fin pour plus de détails.

   Les champs de ‘dovecot-configuration’ disponibles sont :

 -- paramètre de ‘dovecot-configuration’ : package dovecot
     Le paquet dovecot.

 -- paramètre de ‘dovecot-configuration’ : comma-separated-string-list
          listen
     Une liste d’IP ou d’hôtes à écouter pour les connexions. ‘*’ écoute
     sur toutes les interfaces IPv4, ‘::’ écoute sur toutes les
     interfaces IPv6. Si vous voulez spécifier des ports différents de
     la valeur par défaut ou quelque chose de plus complexe, complétez
     les champs d’adresse et de port de ‘inet-listener’ des services
     spécifiques qui vous intéressent.

 -- paramètre de ‘dovecot-configuration’ : protocol-configuration-list
          protocols
     Liste des protocoles que vous voulez servir. Les protocoles
     disponibles comprennent ‘imap’, ‘pop3’ et ‘lmtp’.

     Les champs ‘protocol-configuration’ disponibles sont :

      -- paramètre de ‘protocol-configuration’ : string name
          Le nom du protocole.

      -- paramètre de ‘protocol-configuration’ : string auth-socket-path
          Le chemin d’un socket UNIX vers le serveur d’authentification
          maître pour trouver les utilisateurs. C’est utilisé par imap
          (pour les utilisateurs partagés) et lda. Sa valeur par défaut
          est ‘"/var/run/dovecot/auth-userdb"’.

      -- paramètre de ‘protocol-configuration’ : boolean imap-metadata?
          Indique s’il faut activer l’extension ‘IMAP METADATA’ définie
          dans RFC 5464 (https://tools.ietf.org/html/rfc5464), qui
          permet aux clients d’indiquer et récupérer des métadonnées et
          des annotations pour chaque boîte aux lettres et chaque
          utilisateur par IMAP.

          Si la valeur est ‘#t’, vous devez spécifier un dictionnaire
          via le paramètre ‘mail-attribute-dict’.

          La valeur par défaut est ‘#f’.

      -- paramètre de ‘protocol-configuration’ :
               space-separated-string-list
               managesieve-notify-capabilities
          Les capacités NOTIFY à rapporter aux clients qui se connectent
          pour la première fois au service ManageSieve, avant
          l’authentification. Elles peuvent être différentes des
          capacités offertes aux utilisateurs authentifiés. Si ce champ
          est vide, rapporte ce que l’interpréteur Sieve prend en charge
          par défaut.

          La valeur par défaut est ‘()’.

      -- paramètre de ‘protocol-configuration’ :
               space-separated-string-list managesieve-sieve-capability
          Les capacités SIEVE à rapporter aux clients qui se connectent
          pour la première fois au service ManageSieve, avant
          l’authentification. Elles peuvent être différentes des
          capacités offertes aux utilisateurs authentifiés. Si ce champ
          est vide, rapporte ce que l’interpréteur Sieve prend en charge
          par défaut.

          La valeur par défaut est ‘()’.

      -- paramètre de ‘protocol-configuration’ :
               space-separated-string-list mail-plugins
          Liste de greffons à charger séparés par des espaces.

      -- paramètre de ‘protocol-configuration’ : entier-non-négatif
               mail-max-userip-connections
          Nombre maximum de connexions IMAP permises pour un utilisateur
          depuis chaque adresse IP. Remarque : la comparaison du nom
          d’utilisateur est sensible à la casse. Par défaut ‘10’.

 -- paramètre de ‘dovecot-configuration’ : service-configuration-list
          services
     Liste des services à activer. Les services disponibles comprennent
     ‘imap’, ‘imap-login’, ‘pop3’, ‘pop3-login’, ‘auth’ et ‘lmtp’.

     Les champs de ‘service-configuration’ disponibles sont :

      -- paramètre de ‘service-configuration’ : string kind
          Le type de service. Les valeurs valides comprennent
          ‘director’, ‘imap-login’, ‘pop3-login’, ‘lmtp’, ‘imap’,
          ‘pop3’, ‘auth’, ‘auth-worker’, ‘dict’, ‘tcpwrap’,
          ‘quota-warning’ ou n’importe quoi d’autre.

      -- paramètre de ‘service-configuration’ :
               listener-configuration-list listeners
          Les auditeurs du service. Un auditeur est soit un
          ‘unix-listener-configuration’, soit un
          ‘fifo-listener-configuration’, soit un
          ‘inet-listener-configuration’. La valeur par défaut est ‘()’.

          Les champs de ‘unix-listener-configuration’ disponibles sont :

           -- paramètre de ‘unix-listener-configuration’ : string path
               Chemin vers le fichier, relativement au champ ‘base-dir’.
               C’est aussi utilisé comme nom de section.

           -- paramètre de ‘unix-listener-configuration’ : string mode
               Le mode d’accès pour le socket. La valeur par défaut est
               ‘"0600"’.

           -- paramètre de ‘unix-listener-configuration’ : string user
               L’utilisateur à qui appartient le socket. La valeur par
               défaut est ‘""’.

           -- paramètre de ‘unix-listener-configuration’ : string group
               Le groupe auquel appartient le socket. La valeur par
               défaut est ‘""’.

          Les champs de ‘fifo-listener-configuration’ disponibles sont :

           -- paramètre de ‘fifo-listener-configuration’ : string path
               Chemin vers le fichier, relativement au champ ‘base-dir’.
               C’est aussi utilisé comme nom de section.

           -- paramètre de ‘fifo-listener-configuration’ : string mode
               Le mode d’accès pour le socket. La valeur par défaut est
               ‘"0600"’.

           -- paramètre de ‘fifo-listener-configuration’ : string user
               L’utilisateur à qui appartient le socket. La valeur par
               défaut est ‘""’.

           -- paramètre de ‘fifo-listener-configuration’ : string group
               Le groupe auquel appartient le socket. La valeur par
               défaut est ‘""’.

          Les champs de ‘inet-listener-configuration’ disponibles sont :

           -- paramètre de ‘inet-listener-configuration’ : string
                    protocol
               Le protocole à écouter.

           -- paramètre de ‘inet-listener-configuration’ : string
                    address
               L’adresse sur laquelle écouter, ou la chaîne vide pour
               toutes les adresses. La valeur par défaut est ‘""’.

           -- paramètre de ‘inet-listener-configuration’ :
                    entier-non-négatif port
               Le port sur lequel écouter.

           -- paramètre de ‘inet-listener-configuration’ : boolean ssl?
               S’il faut utiliser SSL pour ce service ; ‘yes’, ‘no’ ou
               ‘required’. La valeur par défaut est ‘#t’.

      -- paramètre de ‘service-configuration’ : entier-non-négatif
               client-limit
          Connexions de clients simultanées maximum par processus. Une
          fois ce nombre de connections atteint, la connexion suivante
          fera en sorte que Dovecot démarre un autre processus. Si la
          valeur est 0, ‘default-client-limit’ est utilisé à la place.

          La valeur par défaut est ‘0’.

      -- paramètre de ‘service-configuration’ : entier-non-négatif
               service-count
          Nombre de connexions à gérer avant de démarrer un nouveau
          processus. Typiquement les valeurs utiles sont 0 (sans limite)
          ou 1. 1 est plus sûr, mais 0 est plus rapide.
          <doc/wiki/LoginProcess.txt>. La valeur par défaut est ‘1’.

      -- paramètre de ‘service-configuration’ : entier-non-négatif
               process-limit
          Nombre de processus maximum qui peut exister pour ce service.
          Si la valeur est 0, ‘default-process-limit’ est utilisé à la
          place.

          La valeur par défaut est ‘0’.

      -- paramètre de ‘service-configuration’ : entier-non-négatif
               process-min-avail
          Nombre de processus à toujours garder en attente de
          connexions. La valeur par défaut est ‘0’.

      -- paramètre de ‘service-configuration’ : entier-non-négatif
               vsz-limit
          Si vous mettez ‘service-count 0’, vous avez sans doute besoin
          d’augmenter ce paramètre. La valeur par défaut est
          ‘256000000’.

 -- paramètre de ‘dovecot-configuration’ : dict-configuration dict
     Configuration du dictionnaire, créé par le constructeur
     ‘dict-configuration’.

     Les champs de ‘dict-configuration’ disponibles sont :

      -- paramètre de ‘dict-configuration’ : free-form-fields entries
          Une liste de paires de clefs-valeurs que ce dictionnaire
          contient. La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : passdb-configuration-list
          passdbs
     Une liste de configurations passdb, chacune créée par le
     constructeur ‘passdb-configuration’.

     Les champs de ‘passdb-configuration’ disponibles sont :

      -- paramètre de ‘passdb-configuration’ : string driver
          Le pilote à utiliser par passdb. Les valeur valides
          comprennent ‘pam’, ‘passwd’, ‘shadow’, ‘bsdauth’ et ‘static’.
          La valeur par défaut est ‘"pam"’.

      -- paramètre de ‘passdb-configuration’ :
               space-separated-string-list args
          Liste d’arguments pour le pilote passdb séparés par des
          espaces. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : userdb-configuration-list
          userdbs
     Liste des configurations userdb, chacune créée par le constructeur
     ‘userdb-configuration’.

     Les champs de ‘userdb-configuration’ disponibles sont :

      -- paramètre de ‘userdb-configuration’ : string driver
          Le pilote que userdb devrait utiliser. Les valeurs valides
          comprennent ‘passwd’ et ‘static’. La valeur par défaut est
          ‘"passwd"’.

      -- paramètre de ‘userdb-configuration’ :
               space-separated-string-list args
          Liste des arguments du pilote userdb séparés par des espaces.
          La valeur par défaut est ‘""’.

      -- paramètre de ‘userdb-configuration’ : free-form-args
               override-fields
          Remplace des champs de passwd. La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : plugin-configuration
          plugin-configuration
     Configuration du greffon, créé par le constructeur
     ‘plugin-configuration’.

 -- paramètre de ‘dovecot-configuration’ :
          list-of-namespace-configuration namespaces
     Liste d’espaces de noms. Chaque élément de la liste est créé par le
     constructeur ‘namespace-configuration’.

     Les champs de ‘namespace-configuration’ disponibles sont :

      -- paramètre de ‘namespace-configuration’ : string name
          Nom de cet espace de nom.

      -- paramètre de ‘namespace-configuration’ : string type
          Type d’espace de nom : ‘private’, ‘shared’ ou ‘public’. La
          valeur par défaut est ‘"private"’.

      -- paramètre de ‘namespace-configuration’ : string separator
          Séparateur de hiérarchie à utiliser. Vous devriez utiliser le
          même séparateur pour tous les espaces de noms ou certains
          clients seront confus. ‘/’ est généralement une bonne valeur.
          La valeur par défaut dépend cependant du format de stockage
          sous-jacent. La valeur par défaut est ‘""’.

      -- paramètre de ‘namespace-configuration’ : string prefix
          Préfixe requis pour accéder à cet espace de nom. Ce paramètres
          doit être différent pour tous les espaces de noms. Par exemple
          ‘Public/’. La valeur par défaut est ‘""’.

      -- paramètre de ‘namespace-configuration’ : string location
          Emplacement physique de la boîte aux lettres. C’est le même
          format que mail_location, qui est aussi la valeur par défaut.
          La valeur par défaut est ‘""’.

      -- paramètre de ‘namespace-configuration’ : boolean inbox?
          Il ne peut y avoir qu’un INBOX, et ce paramètre définit
          l’espace de nom qui le possède. La valeur par défaut est ‘#f’.

      -- paramètre de ‘namespace-configuration’ : boolean hidden?
          Si l’espace de nom est caché, il n’est pas annoncé auprès des
          clients par l’extension NAMESPACE. Vous voudrez aussi sans
          doute indiquer ‘list? #f’. C’est surtout utile lors de la
          conversion depuis un autre serveur avec des espaces de noms
          différents que vous voulez rendre obsolètes sans les casser.
          Par exemple vous pouvez cacher les espaces de noms avec les
          préfixes ‘~/mail/’, ‘~%u/mail/’ et ‘mail/’. La valeur par
          défaut est ‘#f’.

      -- paramètre de ‘namespace-configuration’ : boolean list?
          Montre les boîtes aux lettres sons cet espace de nom avec la
          commande LIST. Cela rend l’espace de nom visible pour les
          clients qui ne supportent pas l’extension NAMESPACE. La valeur
          spéciale ‘children’ liste les boîtes aux lettres filles mais
          cache le préfixe de l’espace de nom. La valeur par défaut est
          ‘#t’.

      -- paramètre de ‘namespace-configuration’ : boolean subscriptions?
          Les espaces de noms gèrent leur propre souscription. Si la
          valeur est ‘#f’, l’espace de nom parent s’en charge. Le
          préfixe vide devrait toujours avoir cette valeur à ‘#t’. La
          valeur par défaut est ‘#t’.

      -- paramètre de ‘namespace-configuration’ :
               mailbox-configuration-list mailboxes
          Liste des boîtes aux lettres prédéfinies dans cet espace de
          nom. La valeur par défaut est ‘()’.

          Les champs de ‘mailbox-configuration’ disponibles sont :

           -- paramètre de ‘mailbox-configuration’ : string name
               Nom de cette boîte aux lettres.

           -- paramètre de ‘mailbox-configuration’ : string auto
               ‘create’ créera automatiquement cette boîte aux lettres.
               ‘subscribe’ créera et souscrira à la boîte aux lettres.
               La valeur par défaut est ‘"no"’.

           -- paramètre de ‘mailbox-configuration’ :
                    space-separated-string-list special-use
               Liste des attributs ‘SPECIAL-USE’ IMAP spécifiés par la
               RFC 6154. Les valeurs valides sont ‘\All’, ‘\Archive’,
               ‘\Drafts’, ‘\Flagged’, ‘\Junk’, ‘\Sent’ et ‘\Trash’. La
               valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : file-name base-dir
     Répertoire de base où stocker les données d’exécution. La valeur
     par défaut est ‘"/var/run/dovecot/"’.

 -- paramètre de ‘dovecot-configuration’ : string login-greeting
     Message d’accueil pour les clients. La valeur par défaut est
     ‘"Dovecot ready."’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          login-trusted-networks
     Liste des groupes d’adresses de confiance. Les connexions depuis
     ces IP sont autorisées à modifier leurs adresses IP et leurs ports
     (pour la connexion et la vérification d’authentification).
     ‘disable-plaintext-auth’ est aussi ignoré pour ces réseaux.
     Typiquement vous voudrez spécifier votre mandataire IMAP ici. La
     valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          login-access-sockets
     Liste des sockets de vérification d’accès de connexion (p. ex.
     tcpwrap). La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : boolean verbose-proctitle?
     Montre des titres de processus plus verbeux (dans ps).
     Actuellement, montre le nom d’utilisateur et l’adresse IP. Utile
     pour voir qui utilise en réalité les processus IMAP (p. ex. des
     boîtes aux lettres partagées ou si le même uid est utilisé pour
     plusieurs comptes). La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean shutdown-clients?
     Indique si les processus devraient toujours être tués lorsque le
     processus maître de Dovecot est éteint. La valeur ‘#f’ signifie que
     Dovecot peut être mis à jour sans forcer les connexions clientes
     existantes à se fermer (bien que cela puisse être un problème si la
     mise à jour est un correctif de sécurité par exemple). La valeur
     par défaut est ‘#t’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          doveadm-worker-count
     Si la valeur n’est pas zéro, lance les commandes de courriel via ce
     nombre de connexions au serveur doveadm au lieu de les lancer dans
     le même processus. La valeur par défaut est ‘0’.

 -- paramètre de ‘dovecot-configuration’ : string doveadm-socket-path
     Socket UNIX ou hôte:port utilisé pour se connecter au serveur
     doveadm. La valeur par défaut est ‘"doveadm-server"’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          import-environment
     Liste des variables d’environnement qui sont préservées au
     démarrage de Dovecot et passées à tous ses processus fils. Vous
     pouvez aussi donner des paires clef=valeur pour toujours spécifier
     ce paramètre.

 -- paramètre de ‘dovecot-configuration’ : boolean
          disable-plaintext-auth?
     Désactive la commande LOGIN et toutes les autres authentifications
     en texte clair à moins que SSL/TLS ne soit utilisé (capacité
     LOGINDISABLED). Remarquez que si l’IP distante correspond à l’IP
     locale (c.-à-d. que vous vous connectez depuis le même ordinateur),
     la connexion est considérée comme sécurisée et l’authentification
     en texte clair est permise. Voir aussi le paramètre ssl=required.
     La valeur par défaut est ‘#t’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          auth-cache-size
     Taille du cache d’authentification (p. ex. ‘#e10e6’). 0 signifie
     qu’il est désactivé. Remarquez que bsdauth, PAM et vpopmail ont
     besoin que ‘cache-key’ soit indiqué pour que le cache soit utilisé.
     La valeur par défaut est ‘0’.

 -- paramètre de ‘dovecot-configuration’ : string auth-cache-ttl
     Durée de vie des données en cache. Après l’expiration du TTL
     l’enregistrement en cache n’est plus utilisé *sauf* si la requête à
     la base de données principale revoie une erreur interne. Nous
     essayons aussi de gérer les changements de mot de passe
     automatiquement : si l’authentification précédente de l’utilisateur
     était réussie mais pas celle-ci, le cache n’est pas utilisé. Pour
     l’instant cela fonctionne avec l’authentification en texte clair
     uniquement. La valeur par défaut est ‘"1 hour"’.

 -- paramètre de ‘dovecot-configuration’ : string
          auth-cache-negative-ttl
     TTL pour les résultats négatifs (l’utilisateur n’est pas trouvé ou
     le mot de passe ne correspond pas). 0 désactive la mise en cache
     complètement. La valeur par défaut est ‘"1 hour"’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          auth-realms
     Liste des domaines pour les mécanismes d’authentification SASL qui
     en ont besoin. Vous pouvez laisser ce paramètre vide si vous ne
     voulez pas utiliser plusieurs domaines. Beaucoup de clients
     utilisent le premier domaine listé ici, donc gardez celui par
     défaut en premier. La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : string auth-default-realm
     Domaine par défaut à utiliser si aucun n’est spécifié. C’est
     utilisé pour les domaines SASL et pour ajouter @domaine au nom
     d’utilisateur dans les authentification en texte clair. La valeur
     par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string auth-username-chars
     Liste des caractères autorisés dans les noms d’utilisateur. Si le
     nom d’utilisateur donné par l’utilisateur contient un caractère qui
     n’est pas listé ici, la connexion échoue automatiquement. C’est
     juste une vérification supplémentaire pour s’assure que
     l’utilisateur ne puisse pas exploiter des vulnérabilités
     potentielles d’échappement de guillemets avec les bases de données
     SQL/LDAP. Si vous voulez autoriser tous les caractères, indiquez la
     liste vide.

 -- paramètre de ‘dovecot-configuration’ : string
          auth-username-translation
     Traduction de caractères dans les noms d’utilisateur avant qu’ils
     ne soient cherchés en base. La valeur contient une série de
     caractère de -> à. Par exemple ‘#@/@’ signifie que ‘#’ et ‘/’ sont
     traduits en ‘@’. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string auth-username-format
     Format des noms d’utilisateur avant qu’ils ne soient cherchés en
     base. Vous pouvez utiliser les variables standard ici, p. ex. %Lu
     est le nom d’utilisateur en minuscule, %n enlève le domaine s’il
     est donné ou ‘%n-AT-%d’ changerait le ‘@’ en ‘-AT-’. Cette
     traduction est faite après les changements de
     ‘auth-username-translation’. La valeur par défaut est ‘"%Lu"’.

 -- paramètre de ‘dovecot-configuration’ : string
          auth-master-user-separator
     Si vous voulez permettre aux utilisateurs maîtres de se connecter
     en spécifiant le nom d’utilisateur maître dans la chaîne de nom
     d’utilisateur normal (c.-à-d. sans utiliser le support du mécanisme
     SASL pour cela), vous pouvez spécifier le caractère de séparation
     ici. Le format est ensuite <nom d’utilisateur><séparateur><nom
     d’utilisateur maître>. UW-IMAP utilise ‘*’ comme séparateur, donc
     ça pourrait être un bon choix. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string
          auth-anonymous-username
     Nom d’utilisateur à utiliser pour les utilisateurs qui se
     connectent avec le mécanisme SASL ANONYMOUS. La valeur par défaut
     est ‘"anonymous"’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          auth-worker-max-count
     Nombre maximum de processus de travail dovecot-auth. Ils sont
     utilisés pour exécuter des requêtes passdb et userdb bloquantes (p.
     ex. MySQL et PAM). Ils sont créés automatiquement et détruits au
     besoin. La valeur par défaut est ‘30’.

 -- paramètre de ‘dovecot-configuration’ : string auth-gssapi-hostname
     Nom d’hôte à utiliser dans les noms GSSAPI principaux. La valeur
     par défaut est d’utiliser le nom renvoyé par gethostname().
     Utilisez ‘$ALL’ (avec des guillemets) pour permettre toutes les
     entrées keytab. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string auth-krb5-keytab
     Keytab Kerberos à utiliser pour le mécanisme GSSAPI. Utilisera la
     valeur par défaut du système (typiquement ‘/etc/krb5.keytab’) s’il
     n’est pas spécifié. Vous pourriez avoir besoin de faire en sorte
     que le service d’authentification tourne en root pour pouvoir lire
     ce fichier. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : boolean auth-use-winbind?
     Effectue l’authentification NTLM et GSS-SPNEGO avec le démon
     winbind de Samba et l’utilitaire ‘ntlm-auth’.
     <doc/wiki/Authentication/Mechanisms/Winbind.txt>. La valeur par
     défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : file-name
          auth-winbind-helper-path
     Chemin du binaire ‘ntlm-auth’ de samba. La valeur par défaut est
     ‘"/usr/bin/ntlm_auth"’.

 -- paramètre de ‘dovecot-configuration’ : string auth-failure-delay
     Durée d’attente avant de répondre à des authentifications échouées.
     La valeur par défaut est ‘"2 secs"’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          auth-ssl-require-client-cert?
     Requiert un certification client SSL valide ou l’authentification
     échoue. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          auth-ssl-username-from-cert?
     Prend le nom d’utilisateur du certificat SSL client, avec
     ‘X509_NAME_get_text_by_NID()’ qui renvoie le CommonName du DN du
     sujet. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          auth-mechanisms
     Liste des mécanismes d’authentification souhaités. Les mécanismes
     supportés sont : ‘plain’, ‘login’, ‘digest-md5’, ‘cram-md5’,
     ‘ntlm’, ‘rpa’, ‘apop’, ‘anonymous’, ‘gssapi’, ‘otp’, ‘skey’ et
     ‘gss-spnego’. Remarquez : Voir aussi le paramètre
     ‘disable-plaintext-auth’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          director-servers
     Liste des IP ou des noms d’hôtes des serveurs directeurs, dont
     soi-même. Les ports peuvent être spécifiés avec ip:port. Le port
     par défaut est le même que le ‘inet-listener’ du service directeur.
     La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          director-mail-servers
     Liste des IP ou des noms d’hôtes de tous les serveurs de courriel
     de la grappe. Les intervalles sont aussi permis, comme
     10.0.0.10-10.0.0.30. La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : string director-user-expire
     Combien de temps avant de rediriger les utilisateurs à un serveur
     spécifique après qu’il n’y a plus de connexion. La valeur par
     défaut est ‘"15 min"’.

 -- paramètre de ‘dovecot-configuration’ : string director-username-hash
     La manière de traduire le nom d’utilisateur avant de le hasher. Les
     valeurs utiles comprennent %Ln si l’utilisateur peut se connecter
     avec ou sans @domain, %Ld si les boîtes aux lettres sont partagées
     dans le domaine. La valeur par défaut est ‘"%Lu"’.

 -- paramètre de ‘dovecot-configuration’ : string log-path
     Fichier de journal à utiliser pour les messages d’erreur. ‘syslog’
     journalise vers syslog, ‘/dev/stderr’ vers la sortie d’erreur. La
     valeur par défaut est ‘"syslog"’.

 -- paramètre de ‘dovecot-configuration’ : string info-log-path
     Fichier de journal à utiliser pour les messages d’information. La
     valeur par défaut est ‘log-path’. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string debug-log-path
     Fichier de journal à utiliser pour les messages de débogage. La
     valeur par défaut est ‘info-log-path’. La valeur par défaut est
     ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string syslog-facility
     Dispositif syslog à utiliser si vous journalisez avec syslog.
     Normalement si vous ne voulez pas utiliser ‘mail’, vous voudrez
     utiliser local0..local7. D’autres dispositifs standard sont
     supportés. La valeur par défaut est ‘"mail"’.

 -- paramètre de ‘dovecot-configuration’ : boolean auth-verbose?
     Indique s’il faut enregistrer les tentatives de connexion échouées
     et la raison de leur échec. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : string auth-verbose-passwords
     Dans le cas où le mot de passe n’était pas correct, indique s’il
     faut enregistrer le mauvais mot de passe. Les valeurs valides sont
     « no », « plain » et « sha1 ». Il peut être utile d’indiquer « sha1
     » pour discriminer des attaques par force brute d’utilisateurs qui
     réessayent encore et encore le même mot de passe. Vous pouvez aussi
     tronquer la valeur à n caractères en ajoutant « :n » (p. ex. «
     sha1:6 »). La valeur par défaut est ‘"no"’.

 -- paramètre de ‘dovecot-configuration’ : boolean auth-debug?
     Journaux encore plus verbeux pour le débogage. Cela montre par
     exemple les requêtes SQL effectuées. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean auth-debug-passwords?
     Dans le cas où le mot de passe était incorrect, indique s’il faut
     enregistrer les mots de passe et les schémas utilisés pour que le
     problème puisse être débogué. Activer cette option active aussi
     ‘auth-debug’. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean mail-debug?
     Indique s’il faut activer le débogage du traitement des courriels.
     Cela peut vous aider à comprendre pourquoi Dovecot ne trouve pas
     vos courriels. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean verbose-ssl?
     Indique s’il faut montrer les erreurs au niveau SSL. La valeur par
     défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : string log-timestamp
     Préfixe à utiliser devant chaque ligne écrite dans le fichier
     journal. Les codes % sont au format strftime(3). La valeur par
     défaut est ‘"\"%b %d %H:%M:%S \""’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          login-log-format-elements
     Liste des éléments qu’il faut enregistrer. Les éléments qui ont une
     variable non vide sont agrégés pour former une chaîne de mots
     séparés par des virgules.

 -- paramètre de ‘dovecot-configuration’ : string login-log-format
     Format du journal de connexion. %s contient la chaîne
     ‘login-log-format-elements’, %$ contient la donnée à enregistrer.
     La valeur par défaut est ‘"%$: %s"’.

 -- paramètre de ‘dovecot-configuration’ : string mail-log-prefix
     Préfixe à utiliser devant chaque ligne du fichier de journal pour
     les processus traitant les courriels. Voir doc/wiki/Variables.txt
     pour trouver la liste des variables que vous pouvez utiliser. La
     valeur par défaut est ‘"\"%s(%u)<%{pid}><%{session}>: \""’.

 -- paramètre de ‘dovecot-configuration’ : string deliver-log-format
     Format à utiliser pour enregistrer les livraisons de courriels.
     Vous pouvez utiliser ces variables :
     ‘%$’
          Message de statut de la livraison (p. ex. ‘saved to INBOX’)
     ‘%m’
          Message-ID
     ‘%s’
          Objet
     ‘%f’
          Adresse « de »
     ‘%p’
          Taille physique
     ‘%w’
          Taille virtuelle.
     La valeur par défaut est ‘"msgid=%m: %$"’.

 -- paramètre de ‘dovecot-configuration’ : string mail-location
     Emplacement des boîtes à lettre des utilisateurs. La valeur par
     défaut est vide, ce qui signifie que Dovecot essaiera de trouver
     les boîte aux lettres automatiquement. Cela ne fonctionnera pas si
     l’utilisateur n’a aucun courriel, donc il vaut mieux indiquer
     explicitement le bon emplacement à Dovecot.

     Si vous utilisez mbox, il ne suffit pas de donner le chemin vers le
     fichier INBOX (p. ex. ‘/var/mail/%u’). Vous devrez aussi dire à
     Dovecot où les autres boîtes aux lettres se trouvent. Cela
     s’appelle le « répertoire racine des courriels » et il doit être le
     premier chemin donné à l’option ‘mail-location’.

     Il y a quelques variables spéciales que vous pouvez utiliser, p. ex
     :

     ‘%u’
          nom d’utilisateur
     ‘%n’
          la partie « utilisateur » dans « utilisateur@domaine », comme
          %u s’il n’y a pas de domaine
     ‘%d’
          la partie « domaine » dans « utilisateur@domaine », vide s’il
          n’y a pas de domaine
     ‘%h’
          répertoire personnel

     Voir doc/wiki/Variables.txt pour la liste complète. Quelques
     exemple :
     ‘maildir:~/Maildir’
     ‘mbox:~/mail:INBOX=/var/mail/%u’
     ‘mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%’
     La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string mail-uid
     Utilisateur et groupe système utilisé pour accéder aux courriels.
     Si vous utilisez multiple, userdb peut remplacer ces valeurs en
     renvoyant les champs uid et gid. Vous pouvez utiliser soit des
     nombres, soit des noms. <doc/wiki/UserIds.txt>. La valeur par
     défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string mail-gid

     La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string mail-privileged-group
     Groupe à activer temporairement pour les opérations privilégiées.
     Actuellement cela est utilisé uniquement avec INBOX lors de sa
     création initiale et quand le verrouillage échoie. Typiquement,
     vous pouvez utiliser ‘"mail"’ pour donner accès à ‘/var/mail’. La
     valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string mail-access-groups
     Donne l’accès à ces groupes supplémentaires aux processus de
     courriel. Ils sont typiquement utilisés pour mettre en place
     l’accès à des boites aux lettres partagées. Remarquez qu’il peut
     être dangereux d’utiliser cette option si l’utilisateur peut créer
     des liens symboliques (p. ex. si le groupe ‘mail’ est utilisé ici,
     ‘ln -s /var/mail ~/mail/var’ peut permettre à un utilisateur de
     supprimer les boites aux lettres des autres, ou ‘ln -s
     /secret/shared/box ~/mail/mybox’ lui permettrait de la lire). La
     valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string mail-attribute-dict
     L’emplacement d’un dictionnaire utilisé pour stocker les ‘IMAP
     METADATA’ définies par RFC 5464
     (https://tools.ietf.org/html/rfc5464).

     Les commandes IMAP METADATA sont disponibles seulement si le champ
     ‘imap-metadata?’ de la configuration du protocol « imap » vaut
     ‘#t’.

     La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          mail-full-filesystem-access?
     Permet l’accès complet au système de fichiers pour les clients. Il
     n’y a pas de vérification d’accès autres que ce que le système
     d’exploitation fait avec les UID/GID. Cela fonctionne aussi bien
     avec maildir qu’avec mbox, ce qui vous permet de préfixer les noms
     des boites aux lettres avec p. ex. ‘/chemin/’ ou ‘~utilisateur/’.
     La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean mmap-disable?
     Ne pas du tout utiliser ‘mmap()’. Cela est requis si vous stockez
     les index dans des systèmes de fichiers partagés (NFS ou
     clusterfs). La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean dotlock-use-excl?
     S’appuyer sur ‘O_EXCL’ lors de la création de fichiers de
     verrouillage. NFS supporte ‘O_EXCL’ depuis la version 3, donc cette
     option est sûre de nos jours. La valeur par défaut est ‘#t’.

 -- paramètre de ‘dovecot-configuration’ : string mail-fsync
     Quand utiliser les appels à fsync() ou fdatasync() :
     ‘optimized’
          Lorsque cela est nécessaire pour éviter de perdre des données
          importantes
     ‘always’
          Utile lorsque par exemple les ‘write()’ de NFS sont retardées
     ‘never’
          Ne l’utilisez pas (ça a de meilleures performances, mais les
          crashs font perdre toutes les données).
     La valeur par défaut est ‘"optimized"’.

 -- paramètre de ‘dovecot-configuration’ : boolean mail-nfs-storage?
     Le stockage des courriels se fait sur NFS. Utilisez cette option
     pour que Dovecot vide les caches NFS lorsque c’est nécessaire. Si
     vous utilisez seulement un simple serveur de courriel, ce n’est pas
     nécessaire. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean mail-nfs-index?
     Les fichiers d’index de courriels sont sur un système de fichiers
     NFS. Pour utiliser cette option, vous aurez besoin de
     ‘mmap-disable? #t’ et ‘fsync-disable? #f’. La valeur par défaut est
     ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : string lock-method
     Méthode de verrouillage des fichiers d’index. Les alternatives sont
     fcntl, flock et dotlock. Le verrouillage-point (dotlocking) utilise
     des astuces qui peuvent créer plus d’utilisation du disque que les
     autres méthodes de verrouillage. Pour les utilisateurs de NFS,
     flock ne marche pas, et rappelez-vous de modifier ‘mmap-disable’.
     La valeur par défaut est ‘"fcntl"’.

 -- paramètre de ‘dovecot-configuration’ : file-name mail-temp-dir
     Le répertoire dans lequel LDA/LMTP stockent temporairement les
     courriels de plus de 128 Ko. La valeur par défaut est ‘"/tmp"’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          first-valid-uid
     L’intervalle d’UID valides pour les utilisateurs. Cette option est
     surtout utile pour s’assurer que les utilisateurs ne peuvent pas
     s’authentifier en tant que démon ou qu’un autre utilisateur
     système. Remarquez que la connexion en root est interdite en dur
     dans le binaire de dovecot et qu’on ne peut pas l’autoriser même si
     ‘first-valid-uid’ vaut 0. La valeur par défaut est ‘500’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          last-valid-uid

     La valeur par défaut est ‘0’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          first-valid-gid
     Li’ntervalle de GID valides pour les utilisateurs. Les utilisateurs
     qui ont un GID non-valide comme numéro de groupe primaire ne
     peuvent pas se connecter. Si l’utilisateur appartient à un groupe
     avec un GID non valide, ce groupe n’est pas utilisable. La valeur
     par défaut est ‘1’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          last-valid-gid

     La valeur par défaut est ‘0’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          mail-max-keyword-length
     Longueur maximale autorisée pour les mots-clefs. Elle n’est
     utilisée que lors de la création de nouveaux mots-clefs. La valeur
     par défaut est ‘50’.

 -- paramètre de ‘dovecot-configuration’ :
          colon-separated-file-name-list valid-chroot-dirs
     Liste des répertoires sous lesquels le chroot est permis pour les
     processus de traitement des courriels (c.-à-d. ‘/var/mail’
     permettra aussi de se chrooter dans ‘/var/mail/toto/titi’). Ce
     paramètre n’affecte pas ‘login-chroot’ ‘mail-chroot’ ou les
     paramètres de chroot de l’authentification. Si ce paramètre est
     vide, ‘/./’ dans les répertoires personnels sont ignorés. ATTENTION
     : n’ajoutez jamais de répertoires ici que les utilisateurs locaux
     peuvent modifier, puisque ça pourrait permettre d’escalader les
     privilèges. Normalement vous ne devriez le faire que si les
     utilisateurs n’ont pas d’accès shell. <doc/wiki/Chrooting.txt>. La
     valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : string mail-chroot
     Répertoire chroot par défaut pour les processus de traitement des
     courriels. Cela peut être modifié pour des utilisateurs
     particuliers dans la base de donnée en donnant ‘/./’ dans le
     répertoire personnel (p. ex. ‘/home/./utilisateur’ permet de se
     chrooter dans ‘/home’). Remarquez qu’il n’y a d’habitude pas besoin
     de se chrooter. Dovecot ne permet pas aux utilisateurs d’accéder
     aux fichiers en dehors de leur répertoire de courriels de toute
     façon. Si vos répertoires personnels sont préfixés par le
     répertoire de chroot, ajoutez ‘/.’ à ‘mail-chroot’.
     <doc/wiki/Chrooting.txt>. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : file-name auth-socket-path
     Chemin de socket UNIX vers le serveur d’authentification maître
     pour trouver les utilisateurs. C’est utilisé par imap (pour les
     utilisateurs partagés) et lda. La valeur par défaut est
     ‘"/var/run/dovecot/auth-userdb"’.

 -- paramètre de ‘dovecot-configuration’ : file-name mail-plugin-dir
     Répertoire où trouver les greffons. La valeur par défaut est
     ‘"/usr/lib/dovecot"’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          mail-plugins
     Liste des greffons à charger pour tous les services. Les greffons
     spécifiques à IMAP, LDA, etc. sont ajoutés à cette liste dans leur
     propre fichiers .conf. La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          mail-cache-min-mail-count
     Le nombre minimal de courriels dans une boîte aux lettres avant de
     mettre à jour le fichier de cache. Cela permet d’optimiser le
     comportement de Dovecot pour qu’il fasse moins d’écriture disque
     contre plus de lecture disque. La valeur par défaut est ‘0’.

 -- paramètre de ‘dovecot-configuration’ : string
          mailbox-idle-check-interval
     Lorsque la commande IDLE est lancée, la boîte aux lettres est
     vérifiée de temps en temps pour voir s’il y a de nouveaux messages
     ou d’autres changements. Ce paramètre défini le temps d’attente
     minimum entre deux vérifications. Dovecot peut aussi utilise
     dnotify, inotify et kqueue pour trouver immédiatement les
     changements. La valeur par défaut est ‘"30 secs"’.

 -- paramètre de ‘dovecot-configuration’ : boolean mail-save-crlf?
     Sauvegarder les courriels avec CR+LF plutôt que seulement LF. Cela
     permet de consommer moins de CPU en envoyant ces courriels, surtout
     avec l’appel système sendfile() de Linux et FreeBSD. Mais cela crée
     un peu plus d’utilisation du disque, ce qui peut aussi le ralentir.
     Remarquez aussi que si d’autres logiciels lisent les mbox/maildirs,
     ils peuvent se tromper dans leur traitement de ces CR
     supplémentaires et causer des problèmes. La valeur par défaut est
     ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean maildir-stat-dirs?
     Par défaut la commande LIST renvoie toutes les entrées du maildir
     qui commencent par un point. Activer cette option permet à Dovecot
     de renvoyer uniquement les entrées qui sont des répertoires. Cela
     se fait avec stat() sur chaque entrée, ce qui cause plus
     d’utilisation du disque. For systems setting struct
     ‘dirent->d_type’ this check is free and it’s done always regardless
     of this setting). La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          maildir-copy-with-hardlinks?
     Lors de la copie d’un message, le faire avec des liens en dur si
     possible. Cela améliore un peu la performance et n’a que peu de
     chance d’avoir des effets secondaires.

 -- paramètre de ‘dovecot-configuration’ : boolean
          maildir-very-dirty-syncs?
     Suppose que Dovecot est le seul MUA qui accède à Maildir : scanne
     le répertoire cur/ seulement lorsque son mtime change de manière
     inattendue ou lorsqu’il ne peut pas trouver le courriel autrement.
     La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          mbox-read-locks
     La méthode de verrouillage à utiliser pour verrouiller le boîtes
     aux lettres mbox. Il y en a quatre :

     ‘dotlock’
          Crée un fichier <mailbox>.lock. C’est la solution la plus
          ancienne et la plus sûr pour NFS. Si vous voulez utiliser
          /var/mail/, les utilisateurs auront besoin de l’accès en
          écriture à ce répertoire.
     ‘dotlock-try’
          Comme pour dotlock, mais si elle échoue à cause d’un problème
          de permission ou parce qu’il n’y a pas assez d’espace disque,
          l’ignore.
     ‘fcntl’
          Utilisez cette méthode si possible. Elle fonctionne aussi avec
          NFS si vous utilisez lockd.
     ‘flock’
          Peut ne pas exister sur tous les systèmes. Ne fonctionne pas
          avec NFS.
     ‘lockf’
          Peut ne pas exister sur tous les systèmes. Ne fonctionne pas
          avec NFS.

     Vous pouvez utiliser plusieurs méthodes de verrouillage ; dans ce
     cas l’ordre dans lequel elles sont déclarées est important pour
     éviter des interblocages si d’autres MTA/MUA utilisent aussi
     plusieurs méthodes. Certains systèmes d’exploitation ne permettent
     pas d’utiliser certaines méthodes en même temps.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          mbox-write-locks

 -- paramètre de ‘dovecot-configuration’ : string mbox-lock-timeout
     Temps d’attente maximal pour un verrou (tous les verrous) avant
     d’abandonner. La valeur par défaut est ‘"5 mins"’.

 -- paramètre de ‘dovecot-configuration’ : string
          mbox-dotlock-change-timeout
     Si le fichier dotlock existe mais que la boîte aux lettres n’est
     pas modifiée, remplacer le fichier de verrouillage après ce temps
     d’attente. La valeur par défaut est ‘"2 mins"’.

 -- paramètre de ‘dovecot-configuration’ : boolean mbox-dirty-syncs?
     Lorsqu’un mbox change ne manière inattendue, il faut le lire en
     entier pour savoir ce qui a changé. Si le mbox est assez grand cela
     peut prendre beaucoup de temps. Comme le changement est
     habituellement un simple courriel supplémentaire, il serait plus
     rapide de lire le nouveaux courriels. Si ce paramètre est activé,
     Dovecot fait cela mais revient toujours à relire le fichier mbox
     complet si le fichier n’est pas comme attendu. Le seul réel
     inconvénient à ce paramètre est que certains MUA changent les
     drapeaux des messages, et dans ce cas Dovecot ne s’en rend pas
     immédiatement compte. Remarquez qu’une synchronisation complète est
     effectuée avec les commandes SELECT, EXAMINE, EXPUNGE et CHECK. La
     valeur par défaut est ‘#t’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          mbox-very-dirty-syncs?
     Comme ‘mbox-dirty-syncs’, mais ne synchronise pas complètement même
     avec les commandes SELECT, EXAMINE, EXPUNGE ou CHECK. Si l’option
     n’est pas activée, ‘mbox-dirty-syncs’ est ignorée. La valeur par
     défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean mbox-lazy-writes?
     Attendre avant d’écrire les en-têtes mbox jusqu’à la prochaine
     synchronisation des écritures (les commandes EXPUNGE et CHECK et
     quand on ferme la boîte aux lettres). C’est surtout utile pour POP3
     où les clients suppriment souvent tous les courriels.
     L’inconvénient c’est que vos changements ne sont pas immédiatement
     visibles pour les autres MUA. La valeur par défaut est ‘#t’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          mbox-min-index-size
     Si la taille du fichier mbox est plus petite que cela (p. ex.
     100k), ne pas écrire de fichier d’index. Si un fichier d’index
     existe déjà il est toujours lu, mais pas mis à jour. La valeur par
     défaut est ‘0’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          mdbox-rotate-size
     Taille du fichier dbox maximale avant rotation. La valeur par
     défaut est ‘10000000’.

 -- paramètre de ‘dovecot-configuration’ : string mdbox-rotate-interval
     Âge maximum du fichier dbox avant rotation. Typiquement en jours.
     Les jours commencent à minuit, donc 1d signifie aujourd’hui, 2d
     pour hier, etc. 0 pour désactiver la vérification. La valeur par
     défaut est ‘"1d"’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          mdbox-preallocate-space?
     Lors de la création des fichiers mdbox, préallouer immédiatement
     leur taille à ‘mdbox-rotate-size’. Ce paramètre ne fonctionne
     actuellement que dans Linux avec certains systèmes de fichiers
     (ext4, xfs). La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : string mail-attachment-dir
     sdbox et mdbox supportent la sauvegarde des pièces-jointes dans des
     fichiers externes, ce qui permet de les stocker une seule fois. Les
     autres moteurs ne le supportent pas pour le moment.

     ATTENTION : Cette fonctionnalité n’a pas été beaucoup testée.
     Utilisez-la à vos risques et périls.

     Racine du répertoire où stocker les pièces-jointes. Désactivé si
     vide. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          mail-attachment-min-size
     Les pièces-jointes plus petites que cela ne sont pas enregistrées à
     part. Il est aussi possible d’écrire un greffon pour désactiver
     l’enregistrement externe de certaines pièces-jointes spécifiques.
     La valeur par défaut est ‘128000’.

 -- paramètre de ‘dovecot-configuration’ : string mail-attachment-fs
     Moteur du système de fichier à utiliser pour sauvegarder les
     pièces-jointes :
     ‘posix’
          Pas de SiS (single instance storage) par Dovecot (mais cela
          peut aider la déduplication du système de fichier)
     ‘sis posix’
          SiS avec comparaison bit-à-bit immédiate pendant la sauvegarde
     ‘sis-queue posix’
          SiS avec déduplication et comparaison différées.
     La valeur par défaut est ‘"sis posix"’.

 -- paramètre de ‘dovecot-configuration’ : string mail-attachment-hash
     Format de hash à utiliser dans les noms de fichiers des
     pièces-jointes. Vous pouvez ajouter n’importe quel texte ou
     variable : ‘%{md4}’, ‘%{md5}’, ‘%{sha1}’, ‘%{sha256}’, ‘%{sha512}’,
     ‘%{size}’. Les variables peuvent être tronquées, p. ex.
     ‘%{sha256:80}’ renvoie seulement les 80 premiers bits. La valeur
     par défaut est ‘"%{sha1}"’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          default-process-limit

     La valeur par défaut est ‘100’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          default-client-limit

     La valeur par défaut est ‘1000’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          default-vsz-limit
     Limite VSZ (taille mémoire virtuelle) par défaut pour les processus
     de service. C’est surtout pour attraper et tuer les processus qui
     font fuiter la mémoire avant qu’ils ne l’utilisent en entier. La
     valeur par défaut est ‘256000000’.

 -- paramètre de ‘dovecot-configuration’ : string default-login-user
     Utilisateur de connexion utilisé en interne par les processus de
     connexion. C’est l’utilisateur avec la confiance minimale pour
     Dovecot. Il ne devrait avoir accès à rien du tout. La valeur par
     défaut est ‘"dovenull"’.

 -- paramètre de ‘dovecot-configuration’ : string default-internal-user
     Utilisateur utilisé en interne par les processus non privilégiés.
     Il devrait être différent de l’utilisateur de connexion, pour que
     les processus de connexion ne puissent pas perturber les autres
     processus. La valeur par défaut est ‘"dovecot"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl?
     Support SSL/TLS : yes, no, required. <doc/wiki/SSL.txt>. La valeur
     par défaut est ‘"required"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-cert
     Certificat SSL/TLS X.509 encodé en PEM (clef publique). La valeur
     par défaut est ‘"</etc/dovecot/default.pem"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-key
     Clef privée SSL/TLS encodée en PEM. La clef est ouverte avant
     l’abandon des privilèges root, donc laissez-la non-lisible pour les
     utilisateurs. La valeur par défaut est
     ‘"</etc/dovecot/private/default.pem"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-key-password
     Si le fichier de clef est protégé par un mot de passe, donnez-le
     ici. Autrement, donnez-le en démarrant dovecot avec le paramètre
     -p. Comme ce fichier est souvent lisible pour tout le monde, vous
     pourriez vouloir placer ce paramètre dans un autre fichier. La
     valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-ca
     Certificat de l’autorité de confiance encodé en PEM. Indiquez cette
     valeur si vous voulez utiliser ‘ssl-verify-client-cert? #t’. Le
     fichier devrait contenir les certificats de CA suivi par les CRL
     correspondants (p. ex. ‘ssl-ca </etc/ssl/certs/ca.pem’). La valeur
     par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : boolean ssl-require-crl?
     Indique si les certificats clients doivent réussir la vérification
     du CRL. La valeur par défaut est ‘#t’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          ssl-verify-client-cert?
     Demande aux clients d’envoyer un certificat. Si vous voulez aussi
     le requérir, indiquez ‘auth-ssl-require-client-cert? #t’ dans la
     section auth. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : string
          ssl-cert-username-field
     Le champ du certificat à utiliser pour le nom d’utilisateur. Les
     choix habituels sont commonName et X500UniqueIdentifier. Vous
     devrez aussi indiquer ‘auth-ssl-username-from-cert? #t’. La valeur
     par défaut est ‘"commonName"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-min-protocol
     Version minimale de SSL à accepter. La valeur par défaut est
     ‘"TLSv1"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-cipher-list
     Méthodes de chiffrement à utiliser. La valeur par défaut est
     ‘"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@STRENGTH"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-crypto-device
     Moteur cryptographique SSL à utiliser. Pour les valeur valides,
     lancez « openssl engine ». La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string postmaster-address
     Adresse à utiliser pour envoyer les courriels de rejet. %d
     correspond au domaine du destinataire. La valeur par défaut est
     ‘"postmaster@%d"’.

 -- paramètre de ‘dovecot-configuration’ : string hostname
     Nom d’hôte à utiliser dans diverses parties des courriels envoyés
     (p. ex. dans Message-Id) et dans les réponses LMTP. La valeur par
     défaut est le nomdhôte@domaine réel du système. La valeur par
     défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : boolean quota-full-tempfail?
     Si l’utilisateur dépasse le quota, renvoie un échec temporaire au
     lieu de rejeter le courriel. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : file-name sendmail-path
     Binaire à utiliser pour envoyer des courriels. La valeur par défaut
     est ‘"/usr/sbin/sendmail"’.

 -- paramètre de ‘dovecot-configuration’ : string submission-host
     Si la valeur est non vide, envoyer les courriels à ce serveur SMTP
     hôte[:port] au lieu de sendmail. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string rejection-subject
     En-tête d’objet à utiliser pour les courriels de rejet. Vous pouvez
     utiliser les mêmes variables que pour ‘rejection-reason’
     ci-dessous. La valeur par défaut est ‘"Rejected: %s"’.

 -- paramètre de ‘dovecot-configuration’ : string rejection-reason
     Message d’erreur pour les humains dans les courriels de rejet. Vous
     pouvez utiliser ces variables :

     ‘%n’
          CRLF
     ‘%r’
          raison
     ‘%s’
          objet du courriel de départ
     ‘%t’
          destinataire
     La valeur par défaut est ‘"Your message to <%t> was automatically
     rejected:%n%r"’.

 -- paramètre de ‘dovecot-configuration’ : string recipient-delimiter
     Caractère de délimitation entre la partie locale et le détail des
     adresses de courriel. La valeur par défaut est ‘"+"’.

 -- paramètre de ‘dovecot-configuration’ : string
          lda-original-recipient-header
     En-tête où l’adresse du destinataire d’origine (l’adresse RCPT TO
     de SMTP) est récupérée si elle n’est pas disponible ailleurs. Le
     paramètre -a de dovecot-lda le remplace. L’en-tête couramment
     utilisée pour cela est X-Original-To. La valeur par défaut est
     ‘""’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          lda-mailbox-autocreate?
     Sauvegarder un courriel dans un fichier qui n’existe pas devrait-il
     le créer ? La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          lda-mailbox-autosubscribe?
     Devrait-on aussi se souscrire aux boîtes aux lettres nouvellement
     créées ? La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : entier-non-négatif
          imap-max-line-length
     Longueur maximale de la ligne de commande IMAP. Certains clients
     génèrent des lignes de commandes très longues avec des boîtes aux
     lettres énormes, donc vous pourriez avoir besoin d’augmenter cette
     limite si vous obtenez les erreurs « Too long argument » ou « IMAP
     command line too large ». La valeur par défaut est ‘64000’.

 -- paramètre de ‘dovecot-configuration’ : string imap-logout-format
     Format de la chaîne de déconnexion IMAP :
     ‘%i’
          nombre d’octets lus par le client
     ‘%o’
          nombre total d’octets envoyés au client.
     Voir ‘doc/wiki/Variables.txt’ pour une liste de toutes les
     variables utilisables. La valeur par défaut est ‘"in=%i out=%o
     deleted=%{deleted} expunged=%{expunged} trashed=%{trashed}
     hdr_count=%{fetch_hdr_count} hdr_bytes=%{fetch_hdr_bytes}
     body_count=%{fetch_body_count} body_bytes=%{fetch_body_bytes}"’.

 -- paramètre de ‘dovecot-configuration’ : string imap-capability
     Remplace la réponse CAPABILITY d’IMAP. Si la valeur commence par «
     + », ajoute les capacités données en haut des valeur par défaut (p.
     ex. +XFOO XBAR). La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string
          imap-idle-notify-interval
     Temps d’attente entre les notifications « OK Still here » lorsque
     le client est en IDLE. La valeur par défaut est ‘"2 mins"’.

 -- paramètre de ‘dovecot-configuration’ : string imap-id-send
     Noms des champs ID et de leur valeur à envoyer aux clients. « * »
     signifie la valeur par défaut. Les champs suivants ont actuellement
     des valeurs par défaut : name, version, os, os-version,
     support-url, support-email. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string imap-id-log
     Champs ID envoyés par le client à enregistrer. « * » signifie tout.
     La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          imap-client-workarounds
     Contournements pour divers bogues de certains client :

     ‘delay-newmail’
          Envoi des notifications de nouveau message EXISTS/RECENT
          seulement en réponse aux commandes NOOP et CHECK. Certains
          clients les ignorent autrement, par exemple OSX Mail (< v2.1).
          Outlook Express est encore plus cassé, sans cela il peut
          montrer des erreurs de type « Le message n’est plus sur le
          serveur ». Remarquez que OE6 est toujours cassé même avec ce
          contournement si la synchronisation est à « En-têtes seulement
          ».

     ‘tb-extra-mailbox-sep’
          Thunderbird se mélange les pinceaux avec LAYOUT=fs (mbox et
          dbox) et ajoute un suffixe ‘/’ supplémentaire sur les noms des
          boîtes aux lettres. Cette option fait que dovecot ignore le
          ‘/’ supplémentaire au lieu de le traiter comme un nom de boîte
          aux lettres invalide.

     ‘tb-lsub-flags’
          Montre les drapeaux \Noselect pour les réponses LSUB avec
          LAYOUT=fs (p. ex. mbox). Cela fait que Thunderbird réalise
          qu’ils ne sont pas sélectionnables et les montre en grisé, au
          lieu de montrer un popup « non sélectionnable » après coup.
     La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : string imap-urlauth-host
     Hôte autorisé dans les URL URLAUTH envoyés par les clients. « * »
     les autorise tous. La valeur par défaut est ‘""’.

   Ouf ! Tant d’options de configuration. La bonne nouvelle, c’est que
Guix a une interface complète avec le langage de configuration de
Dovecot. Cela permet non seulement de déclarer la configuration de
manière agréable, mais aussi d’offrir des capacités de réflexion : les
utilisateurs peuvent écrire du code pour inspecter et transformer les
configuration depuis Scheme.

   Cependant, vous pourriez avoir un fichier ‘dovecot.conf’ déjà tout
prêt. Dans ce cas, vous pouvez passer un objet
‘opaque-dovecot-configuration’ comme paramètre ‘#:config’ à
‘dovecot-service’. Comme son nom l’indique, une configuration opaque n’a
pas les capacités de réflexions.

   Les champs de ‘opaque-dovecot-configuration’ disponibles sont :

 -- paramètre de ‘opaque-dovecot-configuration’ : package dovecot
     Le paquet dovecot.

 -- paramètre de ‘opaque-dovecot-configuration’ : string string
     Le contenu de ‘dovecot.conf’, en tant que chaîne de caractères.

   Par exemple, si votre ‘dovecot.conf’ est simplement la chaîne vide,
vous pouvez instancier un service dovecot comme cela :

     (dovecot-service #:config
                      (opaque-dovecot-configuration
                       (string "")))

Service OpenSMTPD
.................

 -- Variable Scheme : opensmtpd-service-type
     C’est le type de service de OpenSMTPD (https://www.opensmtpd.org),
     dont la valeur devrait être un objet ‘opensmtpd-configuration’
     comme dans cet exemple :

          (service opensmtpd-service-type
                   (opensmtpd-configuration
                     (config-file (local-file "./my-smtpd.conf"))))

 -- Type de données : opensmtpd-configuration
     Type de données représentant la configuration de opensmtpd.

     ‘package’ (par défaut : OPENSMTPD)
          Objet de paquet du serveur SMTP OpenSMTPD.

     ‘config-file’ (par défaut : ‘%default-opensmtpd-config-file’)
          Objet simili-fichier du fichier de configuration de OpenSMTPD
          à utiliser. Par défaut il écoute sur l’interface de boucle
          locale et accepte les courriels des utilisateurs et des démons
          de la machine locale, et autorise l’envoi de courriels à des
          serveurs distants. Lancez ‘man smtpd.conf’ pour plus
          d’information.

     ‘setgid-commands?’ (par défaut : ‘#t’)
          Rend les commandes suivantes setgid à ‘smtpq’ pour qu’elles
          puissent être exécutées : ‘smtpctl’, ‘sendmail’, ‘send-mail’,
          ‘makemap’, ‘mailq’ et ‘newalsiases’. *Note Programmes
          setuid::, pour plus d’informations sur les programmes setgid.

Service Exim
............

 -- Variable Scheme : exim-service-type
     C’est le type de l’agent de transfert de courriel (MTA) Exim
     (https://exim.org), dont la valeur devrait être un objet
     ‘exim-configuration’ comme dans cet exemple :

          (service exim-service-type
                   (exim-configuration
                     (config-file (local-file "./my-exim.conf"))))

   Pour utilise le service ‘exim-service-type’ vous devez aussi avoir un
service ‘mail-aliases-service-type’ dans votre ‘operating-system’ (même
sans alias).

 -- Type de données : exim-configuration
     Type de données représentant la configuration d’exim.

     ‘package’ (par défaut : EXIM)
          Objet de paquet du serveur Exim.

     ‘config-file’ (par défaut : ‘#f’)
          Objet simili-fichier du fichier de configuration d’Exim à
          utiliser. Si sa valeur est ‘#f’ alors le service utilisera la
          configuration par défaut du paquet fournit dans ‘package’. Le
          fichier de configuration qui en résulte est chargé après avoir
          mis en place les variables de configuration ‘exim_user’ et
          ‘exim_group’.

Service Getmail
...............

 -- Variable Scheme : getmail-service-type
     C’est le type du service de récupération de courriels Getmail
     (http://pyropus.ca/software/getmail/), dont la valeur devrait être
     un objet ‘getmail-configuration’.

   Les champs de ‘getmail-configuration’ disponibles sont :

 -- paramètre de ‘getmail-configuration’ : symbol name
     Un symbole pour identifier le service getmail.

     La valeur par défaut est ‘"unset"’.

 -- paramètre de ‘getmail-configuration’ : package package
     Le paquet getmail à utiliser.

 -- paramètre de ‘getmail-configuration’ : string user
     L’utilisateur qui lance getmail.

     La valeur par défaut est ‘"getmail"’.

 -- paramètre de ‘getmail-configuration’ : string group
     Le groupe qui lance getmail.

     La valeur par défaut est ‘"getmail"’.

 -- paramètre de ‘getmail-configuration’ : string directory
     Le répertoire getmail à utiliser.

     La valeur par défaut est ‘"/var/lib/getmail/default"’.

 -- paramètre de ‘getmail-configuration’ : getmail-configuration-file
          rcfile
     Le fichier de configuration de getmail à utiliser.

     Les champs de ‘getmail-configuration-file’ disponibles sont :

      -- paramètre de ‘getmail-configuration-file’ :
               getmail-retriever-configuration retriever
          Le compte de courriel duquel récupérer les courriel, et comme
          accéder à ce compte.

          Les champs de ‘getmail-retriever-configuration’ disponibles
          sont :

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    type
               Le type de récupérateur de courriel à utiliser. Des
               valeurs valides sont ‘passwd’ et ‘static’.

               La valeur par défaut est ‘"SimpleIMAPSSLRetriever"’.

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    server
               Utilisateur avec lequel se connecter au serveur de
               courriel.

               La valeur par défaut est ‘unset’.

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    username
               Utilisateur avec lequel se connecter au serveur de
               courriel.

               La valeur par défaut est ‘unset’.

           -- paramètre de ‘getmail-retriever-configuration’ :
                    entier-non-négatif port
               Numéro de port sur lequel se connecter.

               La valeur par défaut est ‘#f’.

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    password
               Remplace des champs de passwd.

               La valeur par défaut est ‘""’.

           -- paramètre de ‘getmail-retriever-configuration’ : list
                    password-command
               Remplace des champs de passwd.

               La valeur par défaut est ‘()’.

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    keyfile
               Fichier de clés au format PEM pour la négociation TLS.

               La valeur par défaut est ‘""’.

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    certfile
               Fichier de certificat au format PEM à utiliser pour la
               négociation TLS.

               La valeur par défaut est ‘""’.

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    ca-certs
               Certificats d’autorité à utiliser.

               La valeur par défaut est ‘""’.

           -- paramètre de ‘getmail-retriever-configuration’ :
                    parameter-alist extra-parameters
               Paramètres supplémentaires pour le récupérateur.

               La valeur par défaut est ‘()’.

      -- paramètre de ‘getmail-configuration-file’ :
               getmail-destination-configuration destination
          Que faire avec les message récupérés.

          Les champs de ‘getmail-destination-configuration’ disponibles
          sont :

           -- paramètre de ‘getmail-destination-configuration’ : string
                    type
               Le type de destination des courriels. Des valeurs valides
               sont ‘Mailldir’, ‘Mboxrd’ et ‘MDA external’.

               La valeur par défaut est ‘unset’.

           -- paramètre de ‘getmail-destination-configuration’ :
                    string-or-filelike path
               L’option de chemin pour la destination du courriel. Le
               comportement dépend du type choisi.

               La valeur par défaut est ‘""’.

           -- paramètre de ‘getmail-destination-configuration’ :
                    parameter-alist extra-parameters
               Paramètres supplémentaires pour la destination

               La valeur par défaut est ‘()’.

      -- paramètre de ‘getmail-destination-configuration’ :
               getmail-options-configuration options
          Configurer getmail.

          Les champs de ‘getmail-options-configuration’ disponibles sont
          :

           -- paramètre de ‘getmail-options-configuration’ :
                    non-negative-integer verbose
               Si la valeur est ‘0’, getmail n’affichera que les
               avertissements et les erreurs. Une valeur de ‘1’ signifie
               que des messages à propos de la récupération et de la
               suppression de messages seront affichés. Si la valeur est
               ‘2’, getmail affichera des messages pour chacune de ses
               actions.

               La valeur par défaut est ‘1’.

           -- paramètre de ‘getmail-options-configuration’ : boolean
                    read-all
               Si la valeur est vraie, getmail récupérera tous les
               messages disponibles. Sinon, il récupérera les message
               qu’il n’a pas déjà vu.

               La valeur par défaut est ‘#t’.

           -- paramètre de ‘getmail-options-configuration’ : boolean
                    delete
               Si la valeur est vraie, les messages seront supprimées du
               serveur après les avoir récupérés et les avoir livrés
               correctement. Sinon, les messages seront laissés sur le
               serveur.

               La valeur par défaut est ‘#f’.

           -- paramètre de ‘getmail-options-configuration’ :
                    entier-non-négatif delete-after
               Getmail supprimera les messages après un certain nombre
               de jours après les avoir vu, s’ils ont été livrés. Cela
               signifie que les messages resteront sur le serveur
               quelques jours après qu’ils ont été livrés. Une valeur de
               ‘0’ désactive cette fonctionnalité.

               La valeur par défaut est ‘0’.

           -- paramètre de ‘getmail-options-configuration’ :
                    entier-non-négatif delete-bigger-than
               Supprime les messages plus grands que cette quantité
               d’octets après les avoir récupérés, même si les options
               delete et delete-after sont désactivées. La valeur ‘0’
               permet de désactiver cette fonctionnalité.

               La valeur par défaut est ‘0’.

           -- paramètre de ‘getmail-options-configuration’ :
                    entier-non-négatif max-bytes-per-session
               Récupère les message jusqu’à ce nombre d’octets avant de
               fermer la session avec le serveur. La valeur ‘0’
               désactive cette fonctionnalité.

               La valeur par défaut est ‘0’.

           -- paramètre de ‘getmail-options-configuration’ :
                    entier-non-négatif max-message-size
               Ne récupère pas les messages plus grands que cette valeur
               en octets. La valeur ‘0’ désactive cette fonctionnalité.

               La valeur par défaut est ‘0’.

           -- paramètre de ‘getmail-options-configuration’ : boolean
                    delivered-to
               Si la valeur est vraie, getmail ajoutera un en-tête
               Delivered-To aux messages.

               La valeur par défaut est ‘#t’.

           -- paramètre de ‘getmail-options-configuration’ : boolean
                    received
               Si la valeur est indiquée, getmail ajoute un en-tête
               Received aux messages.

               La valeur par défaut est ‘#t’.

           -- paramètre de ‘getmail-options-configuration’ : string
                    message-log
               Getmail enregistrera un journal de ses actions dans le
               fichier ainsi nommé. La valeur ‘""’ désactive la
               fonctionnalité.

               La valeur par défaut est ‘""’.

           -- paramètre de ‘getmail-options-configuration’ : boolean
                    message-log-syslog
               Si la valeur est vraie, getmail enregistrera un journal
               de ses actions en utilisant le démon de journalisation du
               système.

               La valeur par défaut est ‘#f’.

           -- paramètre de ‘getmail-options-configuration’ : boolean
                    message-log-verbose
               Si la valeur est vraie, getmail enregistrera un journal
               de ses action à propos des messages non-récupérés et la
               raison pour laquelle ils n’ont pas été récupérés, en plus
               de lignes d’informations sur le début et la fin des
               opérations.

               La valeur par défaut est ‘#f’.

           -- paramètre de ‘getmail-options-configuration’ :
                    parameter-alist extra-parameters
               Options supplémentaires à inclure.

               La valeur par défaut est ‘()’.

 -- paramètre de ‘getmail-options-configuration’ : list idle
     Une liste de boites de courriels pour lesquels getmail devrait
     attendre une notification de nouveaux messages sur le serveur. Cela
     demande que le serveur prenne en charge l’extension IDLE.

     La valeur par défaut est ‘()’.

 -- paramètre de ‘getmail-configuration’ : list environment-variables
     Une liste de variables d’environnement à définir pour getmail.

     La valeur par défaut est ‘()’.

Service d’alias de courriel
...........................

 -- Variable Scheme : mail-aliases-service-type
     C’est le type de service qui fournit ‘/etc/aliases’ et qui spécifie
     comment délivrer les courriels aux utilisateurs du système.

          (service mail-aliases-service-type
                   '(("postmaster" "bob")
                     ("bob" "bob@example.com" "bob@example2.com")))

   La configuration pour un service ‘mail-aliases-service-type’ est une
liste associative qui dénote comment délivrer les courriels qui arrivent
au système. Chaque entrée est de la forme ‘(alias adresses ...)’ avec
‘alias’ qui spécifie l’alias local et ‘adresses’ qui spécifie où
délivrer les courriels de cet utilisateur.

   Les alias n’ont pas besoin de correspondre à des utilisateurs locaux
du système. Dans l’exemple au-dessus, il n’y a pas besoin d’une entrée
‘postmaster’ dans la liste ‘user-accounts’ du ‘operating-system’ pour
délivrer les courriels à destination de ‘postmaster’ à ‘bob’ (qui
ensuite délivrerait le courriel à ‘bob@example.com’ et
‘bob@example2.com’).

Démon IMAP4 GNU Mailutils
.........................

 -- Variable Scheme : imap4d-service-type
     C’est le type du démon IMAP4 GNU Mailutils, dont la valeur devrait
     être un objet ‘imap4d-configuration’ comme dans cet exemple :

          (service imap4d-service-type
                   (imap4d-configuration
                     (config-file (local-file "imap4d.conf"))))

 -- Type de données : imap4d-configuration
     Type de données représentant la configuration de ‘imap4d’.

     ‘package’ (par défaut : ‘mailutils’)
          Le paquet qui fournit ‘imap4d’.

     ‘config-file’ (par défaut : ‘%default-imap4d-config-file’)
          Objet simili-fichier du fichier de configuration à utiliser.
          Par défaut, la configuration fera écouter sur le port TCP 143
          sur ‘localhost’. *Note (mailutils)Conf-imap4d::, pour les
          détails.

Service Radicale
................

 -- Variable Scheme : radicale-service-type
     C’est le type du service de récupération de courriels Radicale
     (https://radicale.org), dont la valeur devrait être un objet
     ‘radicale-configuration’.

 -- Type de données : radicale-configuration
     Type de données représentant la configuration de ‘radicale’.

     ‘package’ (par défaut : ‘radicale’)
          Le paquet qui fournit ‘radicale’.

     ‘config-file’ (par défaut : ‘%default-radicale-config-file’)
          Objet simili-fichier du fichier de configuration à utiliser.
          Par défaut, la configuration fera écouter sur le port TCP 5232
          sur ‘localhost’ et utiliser le fichier ‘htpasswd’ dans
          ‘/var/lib/radicale/users’ sans chiffrement (‘plain’).


File: guix.fr.info,  Node: Services de messagerie,  Next: Services de téléphonie,  Prev: Services de courriels,  Up: Services

12.9.13 Services de messagerie
------------------------------

Le module ‘(gnu services messaging)’ fournit des définitions de services
Guix pour les services de messageries instantanées. Actuellement il
fournit les services suivants :

Service Prosody
...............

 -- Variable Scheme : prosody-service-type
     C’est le type pour le le serveur de communication XMPP Prosody
     (https://prosody.im). Sa valeur doit être un enregistrement
     ‘prosody-configuration’ comme dans cet exemple :

          (service prosody-service-type
                   (prosody-configuration
                    (modules-enabled (cons* "groups" "mam" %default-modules-enabled))
                    (int-components
                     (list
                      (int-component-configuration
                       (hostname "conference.example.net")
                       (plugin "muc")
                       (mod-muc (mod-muc-configuration)))))
                    (virtualhosts
                     (list
                      (virtualhost-configuration
                       (domain "example.net"))))))

     Voir plus bas pour des détails sur ‘prosody-configuration’.

   Par défaut, Prosody n’a pas besoin de beaucoup de configuration. Seul
un champ ‘virtualhosts’ est requis : il spécifie le domaine que vous
voulez voir Prosody servir.

   Vous pouvez effectuer plusieurs vérifications de la configuration
générée avec la commande ‘prosodyctl check’.

   Prosodyctl vous aidera aussi à importer des certificats du répertoire
‘letsencrypt’ pour que l’utilisateur ‘prosody’ puisse y accéder. Voir
<https://prosody.im/doc/letsencrypt>.

     prosodyctl --root cert import /etc/letsencrypt/live

   Les paramètres de configuration disponibles sont les suivants. Chaque
définition des paramètres est précédé par son type ; par exemple,
‘liste-de-chaines toto’ indique que le paramètre ‘toto’ devrait être
spécifié comme une liste de chaînes de caractères. Les types précédés de
‘peut-être-’ signifient que le paramètre n’apparaîtra pas dans
‘prosody.cfg.lua’ lorsque sa valeur est non spécifiée.

   Il y a aussi une manière de spécifier la configuration en tant que
chaîne de caractères si vous avez un vieux fichier ‘prosody.cfg.lua’ que
vous voulez porter depuis un autre système ; voir la fin pour plus de
détails.

   Le type ‘file-object’ désigne soit un objet simili-fichier (*note
file-like objects: G-Expressions.), soit un nom de fichier.

   Les champs de ‘prosody-configuration’ disponibles sont :

 -- paramètre de ‘prosody-configuration’ : package prosody
     Le paquet Prosody.

 -- paramètre de ‘prosody-configuration’ : file-name data-path
     Emplacement du répertoire de stockage des données de Prosody. Voir
     <https://prosody.im/doc/configure>. La valeur par défaut est
     ‘"/var/lib/prosody"’.

 -- paramètre de ‘prosody-configuration’ : file-object-list plugin-paths
     Répertoires de greffons supplémentaires. Ils sont analysés dans
     l’ordre spécifié. Voir <https://prosody.im/doc/plugins_directory>.
     La valeur par défaut est ‘()’.

 -- paramètre de ‘prosody-configuration’ : file-name certificates
     Chaque hôte virtuel et composant a besoin d’un certificat pour que
     les clients et les serveurs puissent vérifier son identité. Prosody
     chargera automatiquement les clefs et les certificats dans le
     répertoire spécifié ici. La valeur par défaut est
     ‘"/etc/prosody/certs"’.

 -- paramètre de ‘prosody-configuration’ : string-list admins
     C’est une liste des comptes administrateurs de ce serveur.
     Remarquez que vous devez créer les comptes séparément. Voir
     <https://prosody.im/doc/admins> et
     <https://prosody.im/doc/creating_accounts>. Par exemple : ‘(admins
     '("user1@example.com" "user2@example.net"))’. La valeur par défaut
     est ‘()’.

 -- paramètre de ‘prosody-configuration’ : boolean use-libevent?
     Active l’utilisation de libevent pour de meilleures performances
     sous une forte charge. Voir <https://prosody.im/doc/libevent>. La
     valeur par défaut est ‘#f’.

 -- paramètre de ‘prosody-configuration’ : module-list modules-enabled
     C’est la liste des modules que Prosody chargera au démarrage. Il
     cherchera ‘mod_modulename.lua’ dans le répertoire des greffons,
     donc assurez-vous qu’il existe aussi. La documentation des modules
     se trouve sur <https://prosody.im/doc/modules>. La valeur par
     défaut est ‘("roster" "saslauth" "tls" "dialback" "disco" "carbons"
     "private" "blocklist" "vcard" "version" "uptime" "time" "ping"
     "pep" "register" "admin_adhoc")’.

 -- paramètre de ‘prosody-configuration’ : string-list modules-disabled
     ‘"offline"’,‘"c2s"’ et ‘"s2s"’ sont chargés automatiquement, mais
     si vous voulez les désactiver, ajoutez-les à cette liste. La valeur
     par défaut est ‘()’.

 -- paramètre de ‘prosody-configuration’ : file-object groups-file
     Chemin vers un fichier texte où les groupes partagés sont définis.
     Si ce chemin est vide alors ‘mod_groups’ ne fait rien. Voir
     <https://prosody.im/doc/modules/mod_groups>. La valeur par défaut
     est ‘"/var/lib/prosody/sharedgroups.txt"’.

 -- paramètre de ‘prosody-configuration’ : boolean allow-registration?
     Désactive la création de compte par défaut, pour la sécurité. Voir
     <https://prosody.im/doc/creating_accounts>. La valeur par défaut
     est ‘#f’.

 -- paramètre de ‘prosody-configuration’ : peut-être-ssl-configuration
          ssl
     Ce sont les paramètres liés à SSL/TLS. La plupart sont désactivés
     pour pouvoir utiliser les paramètres par défaut de Prosody. Si vous
     ne comprenez pas complètement ces options, ne les ajoutez pas à
     votre configuration, il est aisé de diminuer la sécurité de votre
     serveur en les modifiant. Voir
     <https://prosody.im/doc/advanced_ssl_config>.

     Les champs de ‘ssl-configuration’ disponibles sont :

      -- paramètre de ‘ssl-configuration’ : peut-être-chaine protocol
          Cela détermine la poignée de main à utiliser.

      -- paramètre de ‘ssl-configuration’ : peut-être-nom-de-fichier key
          Chemin vers votre fichier de clef privée.

      -- paramètre de ‘ssl-configuration’ : peut-être-nom-de-fichier
               certificate
          Chemin vers votre fichier de certificat.

      -- paramètre de ‘ssl-configuration’ : file-object capath
          Chemin vers le répertoire contenant les certificats racines
          que vous voulez voir Prosody utiliser lors de la vérification
          des certificats des serveurs distants. La valeur par défaut
          est ‘"/etc/ssl/certs"’.

      -- paramètre de ‘ssl-configuration’ : peut-être-fichier-objet
               cafile
          Chemin vers un fichier contenant les certificats racines
          auxquels Prosody devra faire confiance. Comme ‘capath’ mais
          avec les certificats concaténés ensemble.

      -- paramètre de ‘ssl-configuration’ : peut-être-liste-de-chaine
               verify
          Une liste d’options de vérification (qui correspondent
          globalement aux drapeaux ‘set_verify()’ d’OpenSSL).

      -- paramètre de ‘ssl-configuration’ : peut-être-liste-de-chaine
               options
          Une liste d’options générales liées à SSL/TLS. Elles
          correspondent globalement à ‘set_options()’ d’OpenSSL. Pour
          une liste complète des options disponibles dans LuaSec, voir
          les sources de LuaSec.

      -- paramètre de ‘ssl-configuration’ : peut-être-entier-non-négatif
               depth
          Longueur maximale d’une chaîne d’autorités de certifications
          avant la racine.

      -- paramètre de ‘ssl-configuration’ : peut-être-chaine ciphers
          Une chaîne de méthodes de chiffrement OpenSSL. Cela choisi les
          méthodes de chiffrement que Prosody offrira aux clients, et
          dans quel ordre de préférence.

      -- paramètre de ‘ssl-configuration’ : peut-être-nom-de-fichier
               dhparam
          Un chemin vers un fichier contenant les paramètres pour
          l’échange de clef Diffie-Hellman. Vous pouvez créer un tel
          fichier avec : ‘openssl dhparam -out
          /etc/prosody/certs/dh-2048.pem 2048’

      -- paramètre de ‘ssl-configuration’ : peut-être-chaine curve
          Courbe pour Diffie-Hellman sur courbe elliptique. La valeur
          par défaut de Prosody est ‘"secp384r1"’.

      -- paramètre de ‘ssl-configuration’ : peut-être-liste-de-chaine
               verifyext
          Une liste d’options de vérification « supplémentaires ».

      -- paramètre de ‘ssl-configuration’ : peut-être-chaine password
          Mot de passe pour les clefs privées chiffrées.

 -- paramètre de ‘prosody-configuration’ : boolean
          c2s-require-encryption?
     S’il faut forcer toutes les connexions client-serveur à être
     chiffrées ou non. Voir <https://prosody.im/doc/modules/mod_tls>. La
     valeur par défaut est ‘#f’.

 -- paramètre de ‘prosody-configuration’ : string-list
          disable-sasl-mechanisms
     Ensemble de mécanismes qui ne seront jamais offerts. Voir
     <https://prosody.im/doc/modules/mod_saslauth>. La valeur par défaut
     est ‘("DIGEST-MD5")’.

 -- paramètre de ‘prosody-configuration’ : boolean
          s2s-require-encryption?
     S’il faut forcer toutes les connexion serveur-serveur à être
     chiffrées ou non. Voir <https://prosody.im/doc/modules/mod_tls>. La
     valeur par défaut est ‘#f’.

 -- paramètre de ‘prosody-configuration’ : boolean s2s-secure-auth?
     S’il faut requérir le chiffrement et l’authentification du
     certificat. Cela fournit une sécurité idéale, mais demande que les
     serveurs avec lesquels vous communiquez supportent le chiffrement
     ET présentent un certificat valide et de confiance. Voir
     <https://prosody.im/doc/s2s#security>. La valeur par défaut est
     ‘#f’.

 -- paramètre de ‘prosody-configuration’ : string-list
          s2s-insecure-domains
     Beaucoup de serveurs ne supportent pas le chiffrement ou ont un
     certificat invalide ou auto-signé. Vous pouvez lister les domaines
     ici qui n’ont pas besoin de s’authentifier avec des certificats.
     Ils seront authentifiés par DNS. Voir
     <https://prosody.im/doc/s2s#security>. La valeur par défaut est
     ‘()’.

 -- paramètre de ‘prosody-configuration’ : string-list
          s2s-secure-domains
     Même si vous laissez ‘s2s-secure-auth?’ désactivé, vous pouvez
     toujours demander un certificat valide pour certains domaine en
     spécifiant la liste ici. Voir
     <https://prosody.im/doc/s2s#security>. La valeur par défaut est
     ‘()’.

 -- paramètre de ‘prosody-configuration’ : string authentication
     Choisi le moteur d’authentification à utiliser. Le moteur par
     défaut stocke les mots de passes en texte clair et utilise la
     configuration de stockage des données de Prosody pour stocker les
     données authentifiées. Si vous n’avez pas confiance dans le
     serveur, lisez
     <https://prosody.im/doc/modules/mod_auth_internal_hashed> pour plus
     d’information sur l’utilisation du moteur hashed. Voir aussi
     <https://prosody.im/doc/authentication>. La valeur par défaut est
     ‘"internal_plain"’.

 -- paramètre de ‘prosody-configuration’ : peut-être-chaine log
     Indique les options de journalisation. La configuration avancée des
     journaux n’est pas encore supportée par le service Prosody. Voir
     <https://prosody.im/doc/logging>. La valeur par défaut est
     ‘"*syslog"’.

 -- paramètre de ‘prosody-configuration’ : file-name pidfile
     Fichier où écrire le PID. Voir
     <https://prosody.im/doc/modules/mod_posix>. La valeur par défaut
     est ‘"/var/run/prosody/prosody.pid"’.

 -- paramètre de ‘prosody-configuration’ : peut-être-entier-non-négatif
          http-max-content-size
     Taille maximum autorisée pour le corps HTTP (en octets).

 -- paramètre de ‘prosody-configuration’ : peut-être-chaine
          http-external-url
     Certains modules exposent leur propre URL de diverses manières.
     Cette URL est construite à partir du protocole, de l’hôte et du
     port utilisé. Si Prosody se trouve derrière un proxy, l’URL
     publique sera ‘http-external-url’ à la place. Voir
     <https://prosody.im/doc/http#external_url>.

 -- paramètre de ‘prosody-configuration’ :
          virtualhost-configuration-list virtualhosts
     Un hôte dans Prosody est un domaine sur lequel les comptes
     utilisateurs sont créés. Par exemple si vous voulez que vos
     utilisateurs aient une adresse comme ‘"john.smith@example.com"’
     vous devrez ajouter un hôte ‘"example.com"’. Toutes les options de
     cette liste seront appliquées uniquement à cet hôte.

          Remarque : Le nom d’hôte _virtuel_ est utilisé dans la
          configuration pour éviter de le confondre avec le nom d’hôte
          physique réel de la machine qui héberge Prosody. Une seule
          instance de Prosody peut servir plusieurs domaines, chacun
          défini comme une entrée VirtualHost dans la configuration de
          Prosody. Ainsi, un serveur qui n’héberge qu’un seul domaine
          n’aura qu’une entrée VirtualHost.

          Voir <https://prosody.im/doc/configure#virtual_host_settings>.

     Les champs de ‘virtualhost-configuration’ disponibles sont :

     tous ces champs de ‘prosody-configuration’ : ‘admins’,
     ‘use-libevent?’, ‘modules-enabled’, ‘modules-disabled’,
     ‘groups-file’, ‘allow-registration?’, ‘ssl’,
     ‘c2s-require-encryption?’, ‘disable-sasl-mechanisms’,
     ‘s2s-require-encryption?’, ‘s2s-secure-auth?’,
     ‘s2s-insecure-domains’, ‘s2s-secure-domains’, ‘authentication’,
     ‘log’, ‘http-max-content-size’, ‘http-external-url’, ‘raw-content’,
     plus :
      -- paramètre de ‘virtualhost-configuration’ : string domain
          Domaine que vous souhaitez que Prosody serve.

 -- paramètre de ‘prosody-configuration’ :
          int-component-configuration-list int-components
     Les composant sont des services supplémentaires qui sont
     disponibles pour les clients, habituellement sur un sous-domaine du
     serveur principal (comme ‘"mycomponent.example.com"’). Des exemples
     de composants sont des serveurs de chatroom, des répertoires
     utilisateurs ou des passerelles vers d’autres protocoles.

     Les composants internes sont implémentés dans des greffons
     spécifiques à Prosody. Pour ajouter un composant interne, vous
     n’avez qu’à remplir le champ de nom d’hôte et le greffon que vous
     voulez utiliser pour le composant.

     Voir <https://prosody.im/doc/components>. La valeur par défaut est
     ‘()’.

     Les champs de ‘int-component-configuration’ disponibles sont :

     tous ces champs de ‘prosody-configuration’ : ‘admins’,
     ‘use-libevent?’, ‘modules-enabled’, ‘modules-disabled’,
     ‘groups-file’, ‘allow-registration?’, ‘ssl’,
     ‘c2s-require-encryption?’, ‘disable-sasl-mechanisms’,
     ‘s2s-require-encryption?’, ‘s2s-secure-auth?’,
     ‘s2s-insecure-domains’, ‘s2s-secure-domains’, ‘authentication’,
     ‘log’, ‘http-max-content-size’, ‘http-external-url’, ‘raw-content’,
     plus :
      -- paramètre de ‘int-component-configuration’ : string hostname
          Nom d’hôte du composant.

      -- paramètre de ‘int-component-configuration’ : string plugin
          Greffon que vous voulez utiliser pour ce composant.

      -- paramètre de ‘int-component-configuration’ :
               peut-être-mod-muc-configuration mod-muc
          Le chat multi-utilisateur (MUC) est le modules de Prosody qui
          vous permet de créer des chatrooms/conférences pour les
          utilisateurs XMPP.

          Des informations générales sur la configuration des salons de
          discussion multiutilisateurs se trouvent dans la documentation
          sur les salons (<https://prosody.im/doc/chatrooms>), que vous
          devriez lire si vous découvrez les salons XMPP.

          Voir aussi <https://prosody.im/doc/modules/mod_muc>.

          Les champs de ‘mod-muc-configuration’ disponibles sont :

           -- paramètre de ‘mod-muc-configuration’ : string name
               Le nom à renvoyer dans les réponses de découverte de
               services. La valeur par défaut est ‘"Prosody Chatrooms"’.

           -- paramètre de ‘mod-muc-configuration’ : string-or-boolean
                    restrict-room-creation
               Si la valeur est ‘#t’, cela permettra uniquement aux
               admins de créer de nouveaux salons. Sinon n’importe qui
               peut créer un salon. La valeur ‘"local"’ restreint la
               création aux utilisateurs du domaine parent du service.
               P. ex. ‘user@example.com’ peut créer des salons sur
               ‘rooms.example.com’. La valeur ‘"admin"’ restreint ce
               service aux administrateurs. La valeur par défaut est
               ‘#f’.

           -- paramètre de ‘mod-muc-configuration’ : entier-non-négatif
                    max-history-messages
               Nombre maximum de messages d’historique qui seront
               envoyés aux membres qui viennent de rejoindre le salon.
               La valeur par défaut est ‘20’.

 -- paramètre de ‘prosody-configuration’ :
          ext-component-configuration-list ext-components
     Les composants externes utilisent XEP-0114, que la plupart des
     composants supportent. Pour ajouter un composant externe, vous
     remplissez simplement le champ de nom d’hôte. Voir
     <https://prosody.im/doc/components>. La valeur par défaut est ‘()’.

     Les champs de ‘ext-component-configuration’ disponibles sont :

     tous ces champs de ‘prosody-configuration’ : ‘admins’,
     ‘use-libevent?’, ‘modules-enabled’, ‘modules-disabled’,
     ‘groups-file’, ‘allow-registration?’, ‘ssl’,
     ‘c2s-require-encryption?’, ‘disable-sasl-mechanisms’,
     ‘s2s-require-encryption?’, ‘s2s-secure-auth?’,
     ‘s2s-insecure-domains’, ‘s2s-secure-domains’, ‘authentication’,
     ‘log’, ‘http-max-content-size’, ‘http-external-url’, ‘raw-content’,
     plus :
      -- paramètre de ‘ext-component-configuration’ : string
               component-secret
          Mot de passe que le composant utilisera pour s’authentifier.

      -- paramètre de ‘ext-component-configuration’ : string hostname
          Nom d’hôte du composant.

 -- paramètre de ‘prosody-configuration’ : liste-d'entiers-non-négatifs
          component-ports
     Ports sur lesquels Prosody écoutera les connexions des composants.
     La valeur par défaut est ‘(5347)’.

 -- paramètre de ‘prosody-configuration’ : string component-interface
     Interface sur laquelle Prosody écoutera les connexions des
     composants. La valeur par défaut est ‘"127.0.0.1"’.

 -- paramètre de ‘prosody-configuration’ : peut-être-contenu-brut
          raw-content
     Contenu brut qui sera ajouté au fichier de configuration.

   Il se peut que vous ayez juste envie de lancer un fichier
‘prosody.cfg.lua’ directement. Dans ce cas, vous pouvez passer un
enregistrement ‘opaque-prosody-configuration’ comme valeur à
‘prosody-service-type’. Comme son nom l’indique, une configuration
opaque n’a pas de capacités de réflexion simples. Les champs disponibles
de ‘opaque-prosody-configuration’ sont :

 -- paramètre de ‘opaque-prosody-configuration’ : package prosody
     Le paquet prosody.

 -- paramètre de ‘opaque-prosody-configuration’ : string prosody.cfg.lua
     Le contenu de ‘prosody.cfg.lua’ à utiliser.

   Par exemple, si votre ‘prosody.cfg.lua’ est juste la chaîne vide,
vous pouvez instancier un service prosody comme ceci :

     (service prosody-service-type
              (opaque-prosody-configuration
               (prosody.cfg.lua "")))

Service BitlBee
...............

BitlBee (https://bitlbee.org) est une passerelle qui fournit une
interface IRC vers une variété de protocoles de messagerie instantanée
comme XMPP.

 -- Variable Scheme : bitlbee-service-type
     C’est le type de service pour le démon de passerelle IRC BitlBee
     (https://bitlbee.org). Sa valeur est un ‘bitlbee-configuration’
     (voir plus bas).

     Pour que BitlBee écoute sur le port 6667 sur localhost, ajoutez
     cette ligne à vos services :

          (service bitlbee-service-type)

 -- Type de données : bitlbee-configuration
     C’est la configuration de BitlBee, avec les champs suivants :

     ‘interface’ (par défaut : ‘"127.0.0.1"’)
     ‘port’ (par défaut : ‘6667’)
          Écoute sur l’interface réseau correspondant à l’adresse IP
          dans INTERFACE, sur PORT.

          Lorsque INTERFACE vaut ‘127.0.0.1’, seuls les clients locaux
          peuvent se connecter ; lorsqu’elle vaut ‘0.0.0.0’, les
          connexions peuvent venir de n’importe quelle interface réseau.

     ‘bitlbee’ (par défaut : ‘bitlbee’)
          Le paquet BitlBee à utiliser.

     ‘plugins’ (par défaut : ‘'()’)
          Liste des paquets de greffons à utiliser — p. ex.
          ‘bitlbee-discord’.

     ‘extra-settings’ (par défaut : ‘""’)
          Partie de configuration ajoutée telle-quelle au fichier de
          configuration de BitlBee.

Service Quassel
...............

Quassel (https://quassel-irc.org/) est un client IRC distribué, ce qui
signifie qu’un client ou plus peuvent s’attacher et se détacher du cœur
central.

 -- Variable Scheme : quassel-service-type
     C’est le type de service pour le démon IRC Quassel
     (https://quassel-irc.org/). Sa valeur est un
     ‘quassel-configuration’ (voir plus bas).

 -- Type de données : quassel-configuration
     C’est la configuration de Quassel, avec les champs suivants :

     ‘quassel’ (par défaut : ‘quassel’)
          Le paquet Quassel à utiliser.

     ‘interface’ (par défaut : ‘"::,0.0.0.0"’)
     ‘port’ (par défaut : ‘4242’)
          Écoute sur les interfaces réseau correspondant à l’adresse
          IPv4 ou IPv6 des interfaces spécifiées dans INTERFACE, une
          liste de chaînes délimitées par des virgules, sur PORT.

     ‘loglevel’ (par défaut : ‘"info"’)
          Le niveau de journalisation souhaité. Les valeurs acceptées
          sont « Debug », « Info », « Warning » et « Error ».

