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

Copyright © 2012–2025 Ludovic Courtès
Copyright © 2013, 2014, 2016, 2024 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, 2023, 2025 Leo Famulari
Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Ricardo
Wurmus
Copyright © 2016 Ben Woodcroft
Copyright © 2016, 2017, 2018, 2021 Chris Marusich
Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2025 Efraim
Flashner
Copyright © 2016 John Darrington
Copyright © 2016, 2017 Nikita Gillmann
Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025
Janneke 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, 2024, 2025 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–2025 Maxim Cournoyer
Copyright © 2017–2022 Tobias Geerinckx-Rice
Copyright © 2017 George Clemmer
Copyright © 2017 Andy Wingo
Copyright © 2017, 2018, 2019, 2020, 2023, 2024, 2025 Arun Isaac
Copyright © 2017 nee
Copyright © 2018 Rutger Helling
Copyright © 2018, 2021, 2023, 2025 Oleg Pykhalov
Copyright © 2018 Mike Gerwitz
Copyright © 2018 Pierre-Antoine Rouby
Copyright © 2018, 2019 Gábor Boskovits
Copyright © 2018, 2019, 2020, 2022, 2023, 2024 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, 2023 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, 2022 Pierre Langlois
Copyright © 2020 pinoaffe
Copyright © 2020, 2023 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-2023 Josselin Poiret
Copyright © 2021, 2023 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
Copyright © 2022⁠–⁠2023 Bruno Victal
Copyright © 2022 Ivan Vilata-i-Balaguer
Copyright © 2023-2025 Giacomo Leidi
Copyright © 2022 Antero Mejr
Copyright © 2023 Karl Hallsby
Copyright © 2023 Nathaniel Nicandro
Copyright © 2023 Tanguy Le Carrour
Copyright © 2023-2024 Zheng Junjie
Copyright © 2023 Brian Cully
Copyright © 2023 Felix Lechner
Copyright © 2023 Foundation Devices, Inc.
Copyright © 2023 Thomas Ieong
Copyright © 2023 Saku Laesvuori
Copyright © 2023 Graham James Addis
Copyright © 2023-2025 Tomas Volf
Copyright © 2024, 2025 Herman Rimm
Copyright © 2024 Matthew Trzcinski
Copyright © 2024 Richard Sent
Copyright © 2024 Dariqq
Copyright © 2024 Denis ’GNUtoo’ Carikli
Copyright © 2024 Fabio Natali
Copyright © 2024 Arnaud Daby-Seesaram
Copyright © 2024-2025 Nigko Yerden
Copyright © 2024 Troy Figiel
Copyright © 2024 Sharlatan Hellseher
Copyright © 2024 45mg
Copyright © 2024 Greg Hogan
Copyright © 2025 Sören Tempel
Copyright © 2025 Rostislav Svoboda
Copyright © 2025 Zacchaeus
Copyright © 2025 Sergio Pastor Pérez
Copyright © 2024 Evgeny Pisemsky
Copyright © 2025 jgart
Copyright © 2025 Artur Wroblewski
Copyright © 2025 Edouard Klein
Copyright © 2025 Rodion Goritskov
Copyright © 2025 dan
Copyright © 2025 Noé Lopez

   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.fr: (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: Exécution de tâches planifiées,  Next: Rotation des journaux,  Prev: Services de base,  Up: Services

11.10.2 Exécution de tâches planifiées
--------------------------------------

It is often useful to have system tasks run periodically. This can be
achieved by defining Shepherd “timers” or by using the historical and
somewhat less flexible mcron service.

11.10.2.1 Shepherd Timers
.........................

The Shepherd supports running jobs periodically by defining “timers”, a
special kind of service. A Shepherd timer can be defined like another
Shepherd service, but with specific ‘start’ and ‘stop’ methods (*note
Services Shepherd::):

     ;; Defining a timer, verbosely.
     (shepherd-service
      (provision '(updatedb))
      (requirement '(user-processes))
      (modules '((shepherd service timer)))
      (start #~(make-timer-constructor
                ;; Everyday at 3AM (using Vixie cron syntax).
                (cron-string->calendar-event "0 3 * * *")
                (command '(#$(file-append findutils "/bin/updatedb")))
                #:wait-for-termination? #t))
      (stop #~(make-timer-destructor))
      (documentation "Periodically run 'updatedb'.")
      (actions (list shepherd-trigger-action)))

   This is quite some boilerplate so you can instead use this equivalent
shorthand notation:

     ;; Equivalent timer definition, but shorter.
     (shepherd-timer '(updatedb) "0 3 * * *"
                     #~(#$(file-append findutils "/bin/updatedb"))
                     #:requirement '(user-processes))

   This procedure is defined as follows.

 -- Procedure : shepherd-timer PROVISION SCHEDULE COMMAND [#:requirement
          '()]  [#:documentation
     %default-timer-documentation] Return a Shepherd service with the
     given PROVISION periodically running COMMAND, a list-valued gexp,
     according to SCHEDULE, a string in Vixie cron syntax or a gexp
     providing a Shepherd calendar event. DOCUMENTATION is the string
     that appears when running ‘herd doc SERVICE’.

   The example below shows how to define a timer and to add it to your
operating system configuration.

     (use-modules (gnu))
     (use-service-modules shepherd)
     (use-package-modules base)

     (define updatedb-timer
       ;; Run 'updatedb' at 3AM everyday.
       (shepherd-timer '(updatedb)
                       "0 3 * * *"  ;Vixie cron syntax
                       #~(#$(file-append findutils "/bin/updatedb")
                          "--prunepaths=/tmp /var/tmp /gnu/store")
                       #:requirement '(user-processes)))

     (define garbage-collection-timer
       ;; Run 'guix gc' everyday at 5AM.
       (shepherd-timer '(garbage-collection)
                       #~(calendar-event #:hours '(5) #:minutes '(0))
                       #~("/run/current-system/profile/bin/guix"
                          "gc" "-F" "10G")
                       #:requirement '(guix-daemon)))

     (operating-system
       ;; ...

       ;; Extend the Shepherd service with additional timers
       ;; using 'simple-service'.
       (services (cons (simple-service 'my-timers
                                        shepherd-root-service-type
                                        (list garbage-collection-timer
                                              updatedb-timer))
                       %base-services)))

   The resulting system contains these two services, which can be
inspected with ‘herd status’. They can also be triggered manually:

     herd trigger garbage-collection

   *Note (shepherd)Timers:: for more information on Shepherd timers.

11.10.2.2 Mcron
...............

Alternatively, the ‘(gnu services mcron)’ module provides an interface
to GNU mcron, a daemon to run jobs at scheduled times (*note
(mcron)Top::). GNU mcron is similar to the traditional Unix ‘cron’
daemon; the main difference is that it is implemented in Guile Scheme.
It is overall less convenient than Shepherd timers: individual jobs
cannot depend on specific Shepherd services, logging is coarse-grain
(one file for all the jobs), jobs may not be inspected, updated, or
triggered manually.

     Remarque : For the reasons given above, we recommend using Shepherd
     timers rather than mcron for your periodic tasks.

   L’exemple en dessous définit un système d’exploitation qui lance les
commandes ‘updatebd’ (*note (find)Invoking updatedb::) et ‘guix gc’
(*note Invoquer guix gc::) tous les jours, ainsi que la commande ‘mkid’
en tant qu’utilisateur non privilégié (*note (idutils)mkid
invocation::). Il utilise des gexps pour introduire des définitions de
tâches qui sont passées à mcron (*note G-Expressions::).

     (use-modules (guix) (gnu) (gnu services mcron))
     (use-package-modules base idutils)

     (define updatedb-job
       ;; Lance « updatedb » à 3h du matin chaque jour.  Ici nous spécifions
       ;; l'action de la tâche comme une procédure Scheme.
       #~(job '(next-hour '(3))
              (lambda ()
                (system* (string-append #$findutils "/bin/updatedb")
                       "--prunepaths=/tmp /var/tmp /gnu/store"))
              "updatedb"))

     (define garbage-collector-job
       ;; Lance le ramasse-miettes tous les jours à minuit cinq.
       ;; L'action de la tâche est une commande shell.
       #~(job "5 0 * * *"            ;Vixie cron syntax
              "guix gc -F 1G"))

     (define idutils-job
       ;; Met à jour la base de données d'index en tant que « charlie » à 12h15
       ;; et 19h15.  La commande est lancée depuis le répertoire personnel de l'utilisateur.
       #~(job '(next-minute-from (next-hour '(12 19)) '(15))
              (string-append #$idutils "/bin/mkid src")
              #:user "charlie"))

     (operating-system
       ;; ...

       ;; %BASE-SERVICES inclus déjà une instance de
       ;; « mcron-service-type », que nous étendons avec un
       ;; travail supplémentaire avec « simple-service ».
       (services (cons (simple-service 'my-cron-jobs
                                        mcron-service-type
                                        (list garbage-collector-job
                                              updatedb-job
                                              idutils-job))
                       %base-services)))

     Astuce : Lorsque vous fournissez l’action d’une spécification de
     tâche avec une procédure, vous devriez donner un nom explicite à la
     tâche via le troisième argument facultatif comme dans l’exemple
     ‘updatedb-job’ ci-dessus. Sinon, la tâche apparaitra comme « Lambda
     function » dans la sortie de ‘herd schedule mcron’, ce qui n’est
     pas très descriptif !

     Astuce : Évitez d’appeler les procédures Guile ‘execl’, ‘execle’ et
     ‘execlp’ dans la spécification des tâches sinon mcron ne pourra pas
     afficher le statut complet de la tâche.

   Pour les tâches plus complexes définies dans Scheme où vous devez
contrôler le haut niveau, par exemple pour introduire un formulaire
‘use-modules’, vous pouvez déplacer votre code vers un programme séparé
en utilisant la procédure ‘program-file’ du module ‘(guix gexp)’ (*note
G-Expressions::). L’exemple ci-dessous illustre cette possibilité.

     (define %battery-alert-job
       ;; Beep when the battery percentage falls below %MIN-LEVEL.
       #~(job
          '(next-minute (range 0 60 1))
          #$(program-file
             "battery-alert.scm"
             (with-imported-modules (source-module-closure
                                     '((guix build utils)))
               #~(begin
                   (use-modules (guix build utils)
                                (ice-9 popen)
                                (ice-9 regex)
                                (ice-9 textual-ports)
                                (srfi srfi-2))

                   (define %min-level 20)

                   (setenv "LC_ALL" "C")     ; assure que la sortie est en anglais
                   (and-let* ((input-pipe (open-pipe*
                                           OPEN_READ
                                           #$(file-append acpi "/bin/acpi")))
                              (output (get-string-all input-pipe))
                              (m (string-match "Discharging, ([0-9]+)%" output))
                              (level (string->number (match:substring m 1)))
                              ((< level %min-level)))
                     (format #t "warning: Battery level is low (~a%)~%" level)
                     (invoke #$(file-append beep "/bin/beep") "-r5")))))))

   *Note mcron job specifications: (mcron)Guile Syntax, pour plus
d’informations sur les spécifications des tâche de mcron. Ci-dessous est
la référence du service mcron.

   Sur un système lancé, vous pouvez utiliser l’action ‘schedule’ du
service pour visualiser les travaux mcron qui seront exécutés ensuite :

     # herd schedule mcron

Cet exemple ci-dessus montre les cinq tâches qui seront exécutés, mais
vous pouvez spécifier le nombre de tâches à afficher :

     # herd schedule mcron 10

 -- Variable : mcron-service-type
     C’est le type du service ‘mcron’, dont la valeur est un objet
     ‘mcron-configuration’.

     Ce type de service peut être la cible d’une extension de service
     qui fournit des spécifications de tâches supplémentaires (*note
     Composition de services::). En d’autres termes, il est possible de
     définir des services qui fournissent des tâches mcron à lancer.

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

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

     ‘jobs’ (par défaut : ‘'()’) (type : liste-de-gexps)
          C’est la liste des gexps (*note G-Expressions::), où chaque
          gexp correspond à une spécification de tâche de mcron (*note
          mcron job specifications: (mcron)Syntax.).

     ‘log?’ (par défaut : ‘#t’) (type : booléen)
          Journalise les messages sur la sortie standard.

     ‘log-file’ (par défaut : ‘"/var/log/mcron.log"’) (type : chaine)
          Log file location.

     ‘log-format’ (par défaut : ‘"~1@*~a ~a: ~a~%"’) (type : chaine)
          Chaine de format ‘(ice-9 format)’ pour les message de
          journaux. La valeur par défaut produit des messages de type
          ‘PID NAME: MESSAGE’ (*note Invoking: (mcron)Invoking mcron.).
          Chaque message est aussi préfixé par un horodatage par le
          GNU Shepherd.

     ‘date-format’ (type : peut-être-chaine)
          ‘(srfi srfi-19)’ format string for date.


File: guix.fr.info,  Node: Rotation des journaux,  Next: Configuration du réseau,  Prev: Exécution de tâches planifiées,  Up: Services

11.10.3 Rotation des journaux
-----------------------------

Log files such as those found in ‘/var/log’ tend to grow endlessly, so
it’s a good idea to “rotate” them once in a while—i.e., archive their
contents in separate files, possibly compressed. The ‘(gnu services
admin)’ module provides an interface to the log rotation service
provided by the Shepherd (*note (shepherd)Log Rotation Service::).

   This log rotation service is made available through
‘log-rotation-service-type’, which takes a ‘log-rotation-configuration’
record as its value. By default, this provides ‘log-rotation’, a
Shepherd “timed service” that runs periodically—once a week by default.
It automatically knows about the log files produced by Shepherd services
and can be taught about external log files. You can inspect the service
and see when it’s going to run the usual way:

     $ sudo herd status log-rotation
     Status of log-rotation:
       It is running since Mon 09 Dec 2024 03:27:47 PM CET (2 days ago).
       ...

     Upcoming timer alarms:
       Sun 15 Dec 2024 10:00:00 PM CET (in 4 days)
       Sun 22 Dec 2024 10:00:00 PM CET (in 11 days)
       Sun 29 Dec 2024 10:00:00 PM CET (in 18 days)

   You can also list files subject to rotation with ‘herd files
log-rotation’ and trigger rotation manually with ‘herd trigger
log-rotation’.

   This service is part of ‘%base-services’, and thus enabled by
default, with the default settings.

 -- Variable : log-rotation-service-type
     This is the type of the log rotation service. Its associated value
     must be a ‘log-rotation-configuration’ record, as discussed below.

 -- Data Type : log-rotation-configuration
     Available ‘log-rotation-configuration’ fields are:

     ‘provision’ (default: ‘(log-rotation)’) (type: list-of-symbols)
          The name(s) of the log rotation Shepherd service.

     ‘requirement’ (default: ‘(user-processes)’) (type: list-of-symbols)
          Dependencies of the log rotation Shepherd service.

     ‘calendar-event’ (type: gexp)
          Gexp containing the “calendar event” when log rotation occurs.
          *Note (shepherd)Timers::, for more information on calendar
          events.

     ‘external-log-files’ (default: ‘()’) (type: list-of-strings)
          List of file names, external log files that should also be
          rotated.

     ‘compression’ (default: ‘zstd’) (type: gexp-or-symbol)
          The compression method used for rotated log files, one of
          ‘'none’, ‘'gzip’, and ‘'zstd’. Alternatively, it can be a gexp
          that evaluates to a procedure; that procedure gets called with
          the file to be rotated.

     ‘expiry’ (type: gexp-or-integer)
          Age in seconds after which a log file is deleted.

     ‘size-threshold’ (type: gexp-or-integer)
          Size in bytes below which a log file is _not_ rotated.

   Certains fichiers journaux doivent simplement être supprimés
périodiquement quand ils deviennent trop vieux, sans autre critère et
sans étape d’archivage. C’est le cas des journaux de construction
stockés par ‘guix-daemon’ dans ‘/var/log/guix/drvs’ (*note Invoquer
guix-daemon::). Le service ‘log-cleanup’ gère ce cas. Par exemple,
‘%base-services’ (*note Services de base::) inclus ce qui suit :

     ;; Supprime régulièrement les anciens journaux de construction.
     (service log-cleanup-service-type
              (log-cleanup-configuration
               (directory "/var/log/guix/drvs")))

   Cela s’assure que les journaux de construction ne s’accumulent pas
sans fin.

 -- Variable : log-cleanup-service-type
     C’est le type du service pour supprimer les anciens journaux. Sa
     valeur doit être un enregistrement ‘log-cleanup-configuration’,
     décrit ci-dessous.

 -- Type de données : log-cleanup-configuration
     Type de données représentant la configuration de nettoyage des
     journaux

     ‘directory’
          Nom du répertoire contenant les fichiers journaux.

     ‘expiry’ (par défaut : ‘(* 6 30 24 3600)’)
          Âge en secondes après lequel un fichier peut être supprimé
          (six moins par défaut).

     ‘schedule’ (par défaut : ‘"30 12 01,08,15,22 * *"’)
          Schedule of the log cleanup job written either as a string in
          traditional cron syntax or as a gexp representing a Shepherd
          calendar event (*note (shepherd)Timers::).

Service Anonip
--------------

Anonip est un filtre pour la vie privée qui supprime les adresses IP des
journaux des serveurs web. Ce service crée une FIFO et filtre toutes les
lignes écrite avec anonip avant d’écrire les journaux filtrés dans un
fichier cible.

   L’exemple suivant configure la FIFO
‘/var/run/anonip/https.access.log’ et écrit le fichier journal filtré
dans ‘/var/log/anonip/https.access.log’.

     (service anonip-service-type
              (anonip-configuration
                (input  "/var/run/anonip/https.access.log")
                (output "/var/log/anonip/https.access.log")))

   Configurez votre serveur web pour écrire ses journaux dans la FIFO
‘/var/run/anonip/https.access.log’ et récupérez les fichiers journaux
anonymisés dans ‘/var/web-logs/https.access.log’.

 -- Type de données : anonip-configuration
     Ce type de données représente la configuration d’anonip. Il a les
     paramètres suivants :

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

     ‘input’
          Le nom de fichier du fichier journal d’entrée à traiter. Le
          service crée une FIFO de ce nom. Le serveur web doit écrire
          ses journaux dans cette FIFO.

     ‘output’
          The file name of the processed log file. This file is subject
          to log rotation via the Shepherd’s log rotation service (*note
          Rotation des journaux::).

     Les réglages facultatifs suivants peuvent être fournis :

     ‘debug?’
          Print debug messages when ‘#true’.

     ‘skip-private?’
          Lorsque la valeur est ‘#true’, ne masque pas les adresses dans
          les plages privées.

     ‘column’
          Un numéro de colonne commençant par 1 pour la première
          colonne. Suppose que l’adresse IP est dans la colonne donnée
          (1 par défaut).

     ‘replacement’
          Chaine de remplacement au cas où l’analyse de l’adresse
          échoue, p. ex. ‘"0.0.0.0"’.

     ‘ipv4mask’
          Nombre de bits à masquer dans les adresses IPv4.

     ‘ipv6mask’
          Nombre de bits à masquer dans les adresses IPv6.

     ‘increment’
          Incrémente l’adresse IP par le nombre donné. La valeur par
          défaut est zéro.

     ‘delimiter’
          Chaine de délimitation des journaux.

     ‘regex’
          Expression régulière pour détecter l’adresse IP. À utiliser à
          la place de ‘column’.


File: guix.fr.info,  Node: Configuration du réseau,  Next: Services réseau,  Prev: Rotation des journaux,  Up: Services

11.10.4 Configuration du réseau
-------------------------------

Le module ‘(gnu services networking)’ fournit des services pour
configurer les interfaces réseau et paramétrer le réseau sur votre
machine. Ces services fournissent différentes manière pour paramétrer
votre machine : en déclarant une configuration réseau statique, en
lançant un client DHCP (Dynamic Host Configuration Protocol) ou en
lançant des démon comme NetworkManager et Connman qui automatisent le
processus complet, en s’adaptant automatiquement aux changements de
connectivité et en fournissant une interface utilisateur de haut niveau.

   Sur un portable, NetworkManager et Connman sont de loin les options
les plus pratiques, ce qui explique que les services de bureau par
défaut incluent NetworkManager *note ‘%desktop-services’: Services de
bureaux.). Pour un serveur, une machine virtuelle ou un conteneur, la
configuration réseau statique ou un simple client DHCP sont plus souvent
mieux appropriés.

   Cette section décrit les divers services de paramétrage réseau
existants, en commençant par le configuration réseau statique.

 -- Variable : static-networking-service-type
     C’est le type pour les interfaces réseaux configurées statiquement.
     Sa valeur doit être une liste d’enregistrements
     ‘static-networking’. Chacun déclare un ensemble d’“adresses”, de
     “routes” et de “liens”, comme indiqué plus bas.

     Voici la plus simple des configurations, avec un seul contrôleur
     d’interface réseau (NIC) et une seule connectivité IPv4 :

          ;; Réseau statique pour un NIC, IPv4 uniquement.
          (service static-networking-service-type
                   (list (static-networking
                          (addresses
                           (list (network-address
                                  (device "eno1")
                                  (value "10.0.2.15/24"))))
                          (routes
                           (list (network-route
                                  (destination "default")
                                  (gateway "10.0.2.2"))))
                          (name-servers '("10.0.2.3")))))

     Le bout de code ci-dessus peut être ajouté au champ ‘services’ de
     votre configuration du système d’exploitation (*note Utiliser le
     système de configuration::). Il configurera votre machine pour
     avoir l’adresse IP 10.0.2.15, avec un masque de sous-réseau de 24
     bits pour le réseau local — cela signifie que toutes les adresse
     10.0.2.X sont sur le réseau local (LAN). Le trafic à destination
     d’adresses extérieures au réseau local est routé via 10.0.2.2. Les
     noms d’hôte sont résolus en envoyant des requêtes au système de nom
     de domaine (DNS) à 10.0.2.3.

 -- Type de données : static-networking
     C’est le type de données représentant la configuration d’un réseau
     statique.

     Voici un exemple de la manière dont vous pouvez déclarer la
     configuration sur une machine avec un seul contrôleur d’interface
     réseau (NIC) disponible sous le nom ‘eno1’ et avec une adresse IPv4
     et une adresse IPv6 :

          ;; Configuration réseau pour un NIC, IPv4 + IPv6.
          (static-networking
           (addresses (list (network-address
                             (device "eno1")
                             (value "10.0.2.15/24"))
                            (network-address
                             (device "eno1")
                             (value "2001:123:4567:101::1/64"))))
           (routes (list (network-route
                          (destination "default")
                          (gateway "10.0.2.2"))
                         (network-route
                          (destination "default")
                          (gateway "2020:321:4567:42::1"))))
           (name-servers '("10.0.2.3")))

     Si vous connaissez la commande ‘ip’ du paquet ‘iproute2’
     (https://wiki.linuxfoundation.org/networking/iproute2) qui se
     trouve sur les systèmes Linux, la déclaration ci-dessus est
     équivalente à exécuter :

          ip address add 10.0.2.15/24 dev eno1
          ip address add 2001:123:4567:101::1/64 dev eno1
          ip route add default via inet 10.0.2.2
          ip route add default via inet6 2020:321:4567:42::1

     Exécutez ‘man 8 ip’ pour plus d’informations. Les utilisateurs et
     utilisatrices vétérans de GNU/Linux sauront sans doute comment le
     faire avec ‘ifconfig’ et ‘route’, mais nous vous épargnons cela.

     Les champs disponibles pour ce type de données sont les suivants :

     ‘addresses’
     ‘links’ (par défaut : ‘'()’)
     ‘routes’ (par défaut : ‘'()’)
          La liste de enregistrements ‘network-address’, ‘network-link’
          et ‘network-route’ pour ce réseau (voir plus bas).

     ‘name-servers’ (par défaut : ‘'()’)
          La liste des adresses IP (chaines) des serveurs de nom de
          domaine. Ces adresses IP vont dans ‘/etc/resolv.conf’.

     ‘provision’ (par défaut : ‘'(networking)’)
          Si la valeur est vraie, cela devrait être une liste de
          symboles pour le service Shepherd correspondant à cette
          configuration réseau.

     ‘requirement’ (par défaut : ‘'()’)
          La liste des services Shepherd dont celui-ci dépend.

 -- Type de données : network-address
     C’est le type de données représentant l’adresse IP d’une interface
     réseau.

     ‘device’
          Le nom de l’interface réseau pour cette adresse — p. ex.
          ‘"eno1"’.

     ‘value’
          L’adresse IP effective et le masque de sous-réseau en notation
          CIDR (Classless Inter-Domain Routing)
          (https://fr.wikipedia.org/wiki/Adresse_IP#Agr%C3%A9gation_des_adresses),
          en tant que chaine de caractères.

          Par exemple, ‘"10.0.2.15/24"’ dénote l’adresse IPv4 10 0 2 15
          sur un sous-réseau de 24 bits — toutes les adresses 10.0.2.X
          sont sur le même réseau local.

     ‘ipv6?’
          Indique si ‘value’ dénote une adresse IPv6. Par défaut cela
          est déterminé automatiquement.

 -- Type de données : network-route
     C’est le type de donnée représentant une route réseau.

     ‘destination’
          La destination de la route (une chaine), soit une adresse IP
          et un masque de sous-réseau, soit ‘"default"’ qui dénote la
          route par défaut.

     ‘source’ (par défaut : ‘#f’)
          Le source de la route.

     ‘device’ (par défaut : ‘#f’)
          Le périphérique utilisé pour la route — p. ex. ‘"eno2"’.

     ‘ipv6?’ (par défaut : auto)
          Indique si c’est une route IPv6. Par défaut cela est déterminé
          automatiquement en fonction de ‘destination’ ou de ‘gateway’.

     ‘gateway’ (par défaut : ‘#f’)
          Adresse IP (une chaine) à travers laquelle le trafic est
          routé.

 -- Type de données : network-link
     Data type for a network link (*note (guile-netlink)Link::). During
     startup, network links are employed to construct or modify existing
     or virtual ethernet links. These ethernet links can be identified
     by their NAME or MAC-ADDRESS. If there is a need to create virtual
     interface, NAME and TYPE fields are required.

     ‘name’
          The name of the link—e.g., ‘"v0p0"’ (default: ‘#f’).

     ‘type’
          A symbol denoting the type of the link—e.g., ‘'veth’ (default:
          ‘#f’).

     ‘mac-address’
          The mac-address of the link—e.g., ‘"98:11:22:33:44:55"’
          (default: ‘#f’).

     ‘arguments’
          La liste des arguments pour ce type de lien.

   Consider a scenario where a server equipped with a network interface
which has multiple ports. These ports are connected to a switch, which
supports link aggregation
(https://en.wikipedia.org/wiki/Link_aggregation) (also known as bonding
or NIC teaming). The switch uses port channels to consolidate multiple
physical interfaces into one logical interface to provide higher
bandwidth, load balancing, and link redundancy. When a port is added to
a LAG (or link aggregation group), it inherits the properties of the
port-channel. Some of these properties are VLAN membership, trunk
status, and so on.

   VLAN (https://en.wikipedia.org/wiki/Virtual_LAN) (or virtual local
area network) is a logical network that is isolated from other VLANs on
the same physical network. This can be used to segregate traffic,
improve security, and simplify network management.

   With all that in mind let’s configure our static network for the
server. We will bond two existing interfaces together using 802.3ad
schema and on top of it, build a VLAN interface with id 1055. We assign
a static ip to our new VLAN interface.

     (static-networking
      (links (list (network-link
                    (name "bond0")
                    (type 'bond)
                    (arguments '((mode . "802.3ad")
                                 (miimon . 100)
                                 (lacp-active . "on")
                                 (lacp-rate . "fast"))))

                   (network-link
                    (mac-address "98:11:22:33:44:55")
                    (arguments '((master . "bond0"))))

                   (network-link
                    (mac-address "98:11:22:33:44:56")
                    (arguments '((master . "bond0"))))

                   (network-link
                    (name "bond0.1055")
                    (type 'vlan)
                    (arguments '((id . 1055)
                                 (link . "bond0"))))))
      (addresses (list (network-address
                        (value "192.168.1.4/24")
                        (device "bond0.1055")))))

 -- Variable : %loopback-static-networking
     C’est l’enregistrement ‘static-networking’ qui représente le «
     périphérique de rebouclage », ‘lo’, pour les adresses IP 127.0.0.1
     et ::1, et qui fournit le service Shepherd ‘loopback’.

 -- Variable : %qemu-static-networking
     This is the ‘static-networking’ record representing network setup
     when using QEMU’s user-mode network stack on ‘eth0’ (*note
     (qemu)Using the user mode network stack::).

 -- Variable : dhcp-client-service-type
     This is the type of services that run DHCLIENT, the ISC Dynamic
     Host Configuration Protocol (DHCP) client.

 -- Type de données : dhcp-client-configuration
     Data type representing the configuration of the ISC DHCP client
     service.

     ‘package’ (par défaut : ‘isc-dhcp’)
          The ISC DHCP client package to use.

     ‘interfaces’ (par défaut : ‘'all’)
          Either ‘'all’ or the list of interface names that the ISC DHCP
          client should listen on—e.g., ‘'("eno1")’.

          When set to ‘'all’, the ISC DHCP client listens on all the
          available non-loopback interfaces that can be activated.
          Otherwise the ISC DHCP client listens only on the specified
          interfaces.

     ‘config-file’ (par défaut : ‘#f’)
          The configuration file for the ISC DHCP client.

     ‘version’ (par défaut : ‘"4"’)
          The DHCP protocol version to use, as a string. Accepted values
          are ‘"4"’ or ‘"6"’ for DHCPv4 or DHCPv6, respectively, as well
          as ‘"4o6"’, for DHCPv4 over DHCPv6 (as specified by RFC 7341).

     ‘rshepherd-equirement’ (par défaut : ‘'()’)
     ‘shepherd-provision’ (default: ‘'(networking)’)
          This option can be used to provide a list of symbols naming
          Shepherd services that this service will depend on, such as
          ‘'wpa-supplicant’ or ‘'iwd’ if you require authenticated
          access for encrypted WiFi or Ethernet networks.

          Likewise, ‘shepherd-provision’ is a list of Shepherd service
          names (symbols) provided by this service. You might want to
          change the default value if you intend to run several ISC DHCP
          clients, only one of which provides the ‘networking’ Shepherd
          service.

 -- Variable : dhcpcd-service-type
     This the type for a service running ‘dhcpcd’, a DHCP (Dynamic Host
     Configuration Protocol) client that can be used as a replacement
     for the historical ISC client supported by
     ‘dhcp-client-service-type’.

     Its value must be a ‘dhcpcd-configuration’ record, as described
     below. As an example, consider the following setup which runs
     ‘dhcpcd’ with a local DNS (Domain Name System) resolver:

          (service dhcpcd-service-type
            (dhcpcd-configuration
              (option '("rapid_commit" "interface_mtu"))
              (no-option '("nd_rdnss"
                           "dhcp6_name_servers"
                           "domain_name_servers"
                           "domain_name"
                           "domain_search"))
              (static '("domain_name_servers=127.0.0.1"))
              (no-hook '("hostname"))))

 -- Data Type : dhcpcd-configuration
     Available ‘dhcpcd-configuration’ fields are:

     ‘interfaces’ (default: ‘()’) (type: list)
          List of networking interfaces—e.g., ‘"eth0"’—to start a DHCP
          client for. If no interface is specified (i.e., the list is
          empty) then ‘dhcpcd’ discovers available Ethernet interfaces,
          that can be configured, automatically.

     ‘command-arguments’ (default: ‘("-q" "-q")’) (type: list)
          List of additional command-line options.

     ‘host-name’ (default: ‘""’) (type: maybe-string)
          Host name to send via DHCP, defaults to the current system
          host name.

     ‘duid’ (default: ‘""’) (type: maybe-string)
          DHCPv4 clients require a unique client identifier, this option
          uses the DHCPv6 Unique Identifier as a DHCPv4 client
          identifier as well. For more information, refer to RFC 4361
          (https://www.rfc-editor.org/rfc/rfc4361) and ‘dhcpcd.conf(5)’.

     ‘persistent?’ (default: ‘#t’) (type: boolean)
          When true, automatically de-configure the interface when
          ‘dhcpcd’ exits.

     ‘option’ (default: ‘("rapid_commit" "domain_name_servers" "domain_name" "domain_search" "host_name" "classless_static_routes" "interface_mtu")’) (type: list-of-strings)
          List of options to request from the server.

     ‘require’ (default: ‘("dhcp_server_identifier")’) (type: list-of-strings)
          List of options to require in responses.

     ‘slaac’ (default: ‘"private"’) (type: maybe-string)
          Interface identifier used for SLAAC generated IPv6 addresses.

     ‘no-option’ (default: ‘()’) (type: list-of-strings)
          List of options to remove from the message before it’s
          processed.

     ‘no-hook’ (default: ‘()’) (type: list-of-strings)
          List of hook script which should not be invoked.

     ‘static’ (default: ‘()’) (type: list-of-strings)
          DHCP client can request different options from a DHCP server,
          through ‘static’ it is possible to configure static values for
          selected options. For example,
          ‘"domain_name_servers=127.0.0.1"’.

     ‘vendor-class-id’ (type: maybe-string)
          Set the DHCP Vendor Class (e.g., ‘MSFT’). For more
          information, refer to RFC 2132
          (https://www.rfc-editor.org/rfc/rfc2132#section-9.13).

     ‘client-id’ (type: maybe-string)
          Use the interface hardware address or the given string as a
          client identifier, this is mutually exclusive with the ‘duid’
          option.

     ‘extra-content’ (type: maybe-string)
          Extra content to append to the configuration as-is.

     ‘shepherd-provision’ (default: ‘(networking)’) (type: list-of-symbols)
          This is a list of symbols naming Shepherd services provided by
          this service.

     ‘shepherd-requirement’ (default: ‘()’) (type: list-of-symbols)
          This is a list of symbols naming Shepherd services that this
          service will depend on.

 -- Variable : network-manager-service-type
     C’est le type de service pour le service NetworkManager
     (https://wiki.gnome.org/Projects/NetworkManager). La valeur pour ce
     type de service est un enregistrement
     ‘network-manager-configuration’.

     Ce service fait partie de ‘%desktop-services’ (*note Services de
     bureaux::).

 -- Type de données : network-manager-configuration
     Type de données représentant la configuration de NetworkManager.

     ‘network-manager’ (par défaut : ‘network-manager’)
          Le paquet NetworkManager à utiliser.

     ‘shepherd-requirement’ (default: ‘'(wireless-daemon)’)
          This option can be used to provide a list of symbols naming
          Shepherd services that this service will depend on. The
          default ‘'wireless-daemon’ is provided by
          ‘'wpa-supplicant-service-type’ and ‘'iwd-service-type’. Make
          sure you have one of these configured. Note, that
          ‘%desktop-services’ already include
          ‘wpa-supplicant-service-type’.

     ‘dns’ (par défaut : ‘"default"’)
          Mode de gestion pour le DNS, qui affecte la manière dont
          NetworkManager utilise le fichier de configuration
          ‘resolv.conf’.

          ‘default’
               NetworkManager mettra à jour ‘resolv.conf’ pour refléter
               les serveurs de noms fournis par les connexions actives.

          ‘dnsmasq’
               NetworkManager exécutera ‘dnsmasq’ comme un serveur de
               noms local en cache, en utilisant une configuration
               “transfert conditionnel” si vous êtes connecté à un VPN,
               puis mettra à jour ‘resolv.conf’ pour pointer vers le
               serveur de noms local.

               Avec ce paramètre, vous pouvez partager votre connexion
               réseau. Par exemple, lorsque vous souhaitez partager
               votre connexion réseau avec un autre ordinateur portable
               via un câble Ethernet, vous pouvez ouvrir
               ‘nm-connection-editor’ et configurer la méthode de
               connexion câblée pour IPv4 et IPv6 de manière à ce
               qu’elle soit "partagée avec d’autres ordinateurs" et à ce
               que la connexion soit rétablie (ou redémarrée).

               Vous pouvez également établir une “connexion hôte-invité”
               aux VM QEMU (*note Installer Guix dans une VM::). Avec
               une connexion d’hôte à invité, vous pouvez par exemple  :
               accéder à un serveur Web fonctionnant sur la VM (*note
               Services web::) à partir d’un navigateur Web sur votre
               système hôte, ou vous connecter à la VM via SSH (*note
               ‘openssh-service-type’: Services réseau.). Pour établir
               une connexion entre hôtes, exécutez cette commande une
               fois :

                    nmcli connection add type tun \
                     connection.interface-name tap0 \
                     tun.mode tap tun.owner $(id -u) \
                     ipv4.method shared \
                     ipv4.addresses 172.28.112.1/24

               Ensuite, chaque fois que vous lancez votre VM QEMU (*note
               Lancer Guix dans une VM::), passez ‘-nic
               tap,ifname=tap0,script=no,downscript=no’ à
               ‘qemu-system-...’.

          ‘none’
               NetworkManager ne modifiera pas ‘resolv.conf’.

     ‘vpn-plugins’ (par défaut : ‘'()’)
          C’est la liste des greffons disponibles pour les VPN (réseaux
          privés virtuels). Un exemple est le paquet
          ‘network-manager-openvpn’, qui permet à NetworkManager de
          gérer des VPN via OpenVPN.

     ‘extra-configuration-files’ (default: ‘'()’)
          A list of two-element lists; the first element of each list is
          a file name (as a string), and the second is a file-like
          object. Used to specify configuration files which will be
          added to the ‘/etc/NetworkManager/conf.d’. NetworkManager will
          read additional configuration from this directory. For details
          on configuration file precedence and the configuration file
          format, see ‘man 5 NetworkManager.conf’.

          For example, to add two files named ‘001-basic.conf’ and
          ‘002-unmanaged.conf’:

               (service network-manager-service-type
                        (network-manager-configuration
                         (extra-configuration-files
                          `(("001-basic.conf" ,(local-file "basic.conf"))
                            ("002-unmanaged.conf" ,(plain-file "constructed-unmanaged.conf"
                                                               "\
               [keyfile]
               unmanaged-devices=interface-name:wlo1_ap\n"))))))

 -- Variable : connman-service-type
     C’est le type de service pour lancer Connman
     (https://01.org/connman), un gestionnaire de connexions réseaux.

     Sa valeur doit être un enregistrement ‘connman-configuration’ comme
     dans cet exemple :

          (service connman-service-type
                   (connman-configuration
                     (disable-vpn? #t)))

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

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

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

     ‘rshepherd-equirement’ (par défaut : ‘'()’)
          This option can be used to provide a list of symbols naming
          Shepherd services that this service will depend on, such as
          ‘'wpa-supplicant’ or ‘'iwd’ if you require authenticated
          access for encrypted WiFi or Ethernet networks.

     ‘disable-vpn?’ (par défaut : ‘#f’)
          Lorsque la valeur est vraie, désactive le greffon vpn de
          connman.

     ‘general-configuration’ (default: ‘(connman-general-configuration)’)
          Configuration serialized to ‘main.conf’ and passed as
          ‘--config’ to ‘connmand’.

 -- Data Type : connman-general-configuration
     Available ‘connman-general-configuration’ fields are:

     ‘input-request-timeout’ (type: maybe-number)
          Set input request timeout. Default is 120 seconds. The request
          for inputs like passphrase will timeout after certain amount
          of time. Use this setting to increase the value in case of
          different user interface designs.

     ‘browser-launch-timeout’ (type: maybe-number)
          Set browser launch timeout. Default is 300 seconds. The
          request for launching a browser for portal pages will timeout
          after certain amount of time. Use this setting to increase the
          value in case of different user interface designs.

     ‘background-scanning?’ (type: maybe-boolean)
          Enable background scanning. Default is true. If wifi is
          disconnected, the background scanning will follow a simple
          back off mechanism from 3s up to 5 minutes. Then, it will stay
          in 5 minutes unless user specifically asks for scanning
          through a D-Bus call. If so, the mechanism will start again
          from 3s. This feature activates also the background scanning
          while being connected, which is required for roaming on wifi.
          When ‘background-scanning?’ is false, ConnMan will not perform
          any scan regardless of wifi is connected or not, unless it is
          requested by the user through a D-Bus call.

     ‘use-gateways-as-timeservers?’ (type: maybe-boolean)
          Assume that service gateways also function as timeservers.
          Default is false.

     ‘fallback-timeservers’ (type: maybe-list)
          List of Fallback timeservers. These timeservers are used for
          NTP sync when there are no timeservers set by the user or by
          the service, and when ‘use-gateways-as-timeservers?’ is ‘#f’.
          These can contain a mixed combination of fully qualified
          domain names, IPv4 and IPv6 addresses.

     ‘fallback-nameservers’ (type: maybe-list)
          List of fallback nameservers appended to the list of
          nameservers given by the service. The nameserver entries must
          be in numeric format, host names are ignored.

     ‘default-auto-connect-technologies’ (type: maybe-list)
          List of technologies that are marked autoconnectable by
          default. The default value for this entry when empty is
          ‘"ethernet"’, ‘"wifi"’, ‘"cellular"’. Services that are
          automatically connected must have been set up and saved to
          storage beforehand.

     ‘default-favourite-technologies’ (type: maybe-list)
          List of technologies that are marked favorite by default. The
          default value for this entry when empty is ‘"ethernet"’.
          Connects to services from this technology even if not setup
          and saved to storage.

     ‘always-connected-technologies’ (type: maybe-list)
          List of technologies which are always connected regardless of
          preferred-technologies setting (‘auto-connect?’ ‘#t’). The
          default value is empty and this feature is disabled unless
          explicitly enabled.

     ‘preferred-technologies’ (type: maybe-list)
          List of preferred technologies from the most preferred one to
          the least preferred one. Services of the listed technology
          type will be tried one by one in the order given, until one of
          them gets connected or they are all tried. A service of a
          preferred technology type in state ’ready’ will get the
          default route when compared to another preferred type further
          down the list with state ’ready’ or with a non-preferred type;
          a service of a preferred technology type in state ’online’
          will get the default route when compared to either a
          non-preferred type or a preferred type further down in the
          list.

     ‘network-interface-blacklist’ (type: maybe-list)
          List of blacklisted network interfaces. Found interfaces will
          be compared to the list and will not be handled by ConnMan, if
          their first characters match any of the list entries. Default
          value is ‘"vmnet"’, ‘"vboxnet"’, ‘"virbr"’, ‘"ifb"’.

     ‘allow-hostname-updates?’ (type: maybe-boolean)
          Allow ConnMan to change the system hostname. This can happen
          for example if we receive DHCP hostname option. Default value
          is ‘#t’.

     ‘allow-domainname-updates?’ (type: maybe-boolean)
          Allow connman to change the system domainname. This can happen
          for example if we receive DHCP domainname option. Default
          value is ‘#t’.

     ‘single-connected-technology?’ (type: maybe-boolean)
          Keep only a single connected technology at any time. When a
          new service is connected by the user or a better one is found
          according to preferred-technologies, the new service is kept
          connected and all the other previously connected services are
          disconnected. With this setting it does not matter whether the
          previously connected services are in ’online’ or ’ready’
          states, the newly connected service is the only one that will
          be kept connected. A service connected by the user will be
          used until going out of network coverage. With this setting
          enabled applications will notice more network breaks than
          normal. Note this options can’t be used with VPNs. Default
          value is ‘#f’.

     ‘tethering-technologies’ (type: maybe-list)
          List of technologies that are allowed to enable tethering. The
          default value is ‘"wifi"’, ‘"bluetooth"’, ‘"gadget"’. Only
          those technologies listed here are used for tethering. If one
          wants to tether ethernet, then add ‘"ethernet"’ in the list.
          Note that if ethernet tethering is enabled, then a DHCP server
          is started on all ethernet interfaces. Tethered ethernet
          should never be connected to corporate or home network as it
          will disrupt normal operation of these networks. Due to this
          ethernet is not tethered by default. Do not activate ethernet
          tethering unless you really know what you are doing.

     ‘persistent-tethering-mode?’ (type: maybe-boolean)
          Restore earlier tethering status when returning from offline
          mode, re-enabling a technology, and after restarts and
          reboots. Default value is ‘#f’.

     ‘enable-6to4?’ (type: maybe-boolean)
          Automatically enable anycast 6to4 if possible. This is not
          recommended, as the use of 6to4 will generally lead to a
          severe degradation of connection quality. See RFC6343. Default
          value is ‘#f’ (as recommended by RFC6343 section 4.1).

     ‘vendor-class-id’ (type: maybe-string)
          Set DHCP option 60 (Vendor Class ID) to the given string. This
          option can be used by DHCP servers to identify specific
          clients without having to rely on MAC address ranges, etc.

     ‘enable-online-check?’ (type: maybe-boolean)
          Enable or disable use of HTTP GET as an online status check.
          When a service is in a READY state, and is selected as
          default, ConnMan will issue an HTTP GET request to verify that
          end-to-end connectivity is successful. Only then the service
          will be transitioned to ONLINE state. If this setting is
          false, the default service will remain in READY state. Default
          value is ‘#t’.

     ‘online-check-ipv4-url’ (type: maybe-string)
          IPv4 URL used during the online status check. Please refer to
          the README for more detailed information. Default value is
          <http://ipv4.connman.net/online/status.html>.

     ‘online-check-ipv6-url’ (type: maybe-string)
          IPv6 URL used during the online status check. Please refer to
          the README for more detailed information. Default value is
          <http://ipv6.connman.net/online/status.html>.

     ‘online-check-initial-interval’ (type: maybe-number)
          Range of intervals between two online check requests. Please
          refer to the README for more detailed information. Default
          value is ‘1’.

     ‘online-check-max-interval’ (type: maybe-number)
          Range of intervals between two online check requests. Please
          refer to the README for more detailed information. Default
          value is ‘1’.

     ‘enable-online-to-ready-transition?’ (type: maybe-boolean)
          WARNING: This is an experimental feature. In addition to
          ‘enable-online-check’ setting, enable or disable use of HTTP
          GET to detect the loss of end-to-end connectivity. If this
          setting is ‘#f’, when the default service transitions to
          ONLINE state, the HTTP GET request is no more called until
          next cycle, initiated by a transition of the default service
          to DISCONNECT state. If this setting is ‘#t’, the HTTP GET
          request keeps being called to guarantee that end-to-end
          connectivity is still successful. If not, the default service
          will transition to READY state, enabling another service to
          become the default one, in replacement. Default value is ‘#f’.

     ‘auto-connect-roaming-services?’ (type: maybe-boolean)
          Automatically connect roaming services. This is not
          recommended unless you know you won’t have any billing
          problem. Default value is ‘#f’.

     ‘address-conflict-detection?’ (type: maybe-boolean)
          Enable or disable the implementation of IPv4 address conflict
          detection according to RFC5227. ConnMan will send probe ARP
          packets to see if an IPv4 address is already in use before
          assigning the address to an interface. If an address conflict
          occurs for a statically configured address, an IPv4LL address
          will be chosen instead (according to RFC3927). If an address
          conflict occurs for an address offered via DHCP, ConnMan sends
          a DHCP DECLINE once and for the second conflict resorts to
          finding an IPv4LL address. Default value is ‘#f’.

     ‘localtime’ (type: maybe-string)
          Path to localtime file. Defaults to ‘/etc/localtime’.

     ‘regulatory-domain-follows-timezone?’ (type: maybe-boolean)
          Enable regulatory domain to be changed along timezone changes.
          With this option set to true each time the timezone changes
          the first present ISO3166 country code is read from
          ‘/usr/share/zoneinfo/zone1970.tab’ and set as regulatory
          domain value. Default value is ‘#f’.

     ‘resolv-conf’ (type: maybe-string)
          Path to resolv.conf file. If the file does not exist, but
          intermediate directories exist, it will be created. If this
          option is not set, it tries to write into
          ‘/var/run/connman/resolv.conf’ if it fails (‘/var/run/connman’
          does not exist or is not writeable). If you do not want to
          update resolv.conf, you can set ‘/dev/null’.

 -- Variable : wpa-supplicant-service-type
     C’est le type du service qui lanceWPA supplicant
     (https://w1.fi/wpa_supplicant/), un démon d’authentification requis
     pour s’authentifier sur des WiFi chiffrés ou des réseaux ethernet.

 -- Type de données : wpa-supplicant-configuration
     Type données qui représente la configuration de WPA Supplicant.

     Il prend les paramètres suivants :

     ‘wpa-supplicant’ (par défaut : ‘wpa-supplicant’)
          Le paquet WPA Supplicant à utiliser.

     ‘shepherd-requirement’ (default: ‘(user-processes loopback syslogd)’
          Liste des services qui doivent être démarrés avant le début de
          WPA Supplicant.

     ‘shepherd-provision’ (default: ‘(wpa-supplicant wireless-daemon)’) (type: list-of-symbols)
          The name(s) of the service.

     ‘dbus?’ (par défaut : ‘#t’)
          Indique s’il faut écouter les requêtes sur D-Bus.

     ‘pid-file’ (par défaut : ‘"/var/run/wpa_supplicant.pid"’)
          Où stocker votre fichier de PID.

     ‘interface’ (par défaut : ‘#f’)
          Si une valeur est indiquée, elle doit spécifier le nom d’une
          interface réseau que WPA supplicant contrôlera.

     ‘config-file’ (par défaut : ‘#f’)
          Fichier de configuration facultatif à utiliser.

     ‘extra-options’ (par défaut : ‘'()’)
          Liste d’arguments de la ligne de commande supplémentaires à
          passer au démon.

 -- Variable : iwd-service-type
     This is the service type to run iwd, the iNet Wireless Daemon
     (https://iwd.wiki.kernel.org/), a daemon required to authenticate
     against encrypted WiFi networks.

     Attention : By default ‘iwd’ removes and re-creates interfaces it
     manages. It doesn’t play nicely with ‘dhcp-client-service-type’
     that enumerates wireless interfaces before starting the Shepherd
     service. Use either ‘dhcpcd-service-type’ or the ‘iwd’’s built-in
     DHCP client (see ‘enable-network-configuration’ option below).

     Attention : ‘iwd-service-type’ conflicts with
     ‘wpa-supplicant-service-type’. Make sure only one is configured.

 -- Data Type : iwd-configuration
     Available ‘iwd-configuration’ fields are:

     ‘iwd’ (default: ‘iwd’) (type: file-like)
          The IWD package to use.

     ‘interfaces’ (default: ‘()’) (type: list-of-strings)
          If this is set, it must specify “glob patterns” matching
          network interfaces that IWD will control.

     ‘ignored-interfaces’ (default: ‘()’) (type: list-of-strings)
          If this is set, it must specify “glob patterns” matching
          network interfaces that IWD will not manage.

     ‘phys’ (default: ‘()’) (type: list-of-strings)
          If this is set, it must specify “glob patterns” matching
          network PHYs names that IWD will control.

     ‘ignored-phys’ (default: ‘()’) (type: list-of-strings)
          If this is set, it must specify “glob patterns” matching
          network PHYs names that IWD will not manage.

     ‘shepherd-requirement’ (default: ‘()’) (type: list-of-symbols)
          Shepherd requirements the service should depend on.

     ‘shepherd-provision’ (default: ‘(iwd wireless-daemon)’) (type: list-of-symbols)
          The name(s) of the service.

     ‘config’ (type: iwd-settings)
          Configuration settings.

 -- Data Type : iwd-settings
     Available ‘iwd-settings’ fields are:

     ‘general’ (type: iwd-general-settings)
          General settings.

     ‘network’ (default: ‘(iwd-network-settings)’) (type: maybe-iwd-network-settings)
          Network settings.

     ‘scan’ (type: maybe-iwd-scan-settings)
          Scan settings.

     ‘extra-config’ (default: ‘()’) (type: list-of-strings)
          Extra configuration values to append to the IWD configuration
          file.

 -- Data Type : iwd-general-settings
     Available ‘iwd-general-settings’ fields are:

     ‘enable-network-configuration?’ (default: ‘#f’) (type: boolean)
          Setting this option to true enables ‘iwd’ to configure the
          network interfaces with the IP addresses.

     ‘extra-options’ (default: ‘()’) (type: alist)
          An association list of option symbols/strings to string values
          to be appended to the General settings group.

 -- Data Type : iwd-network-settings
     Available ‘iwd-network-settings’ fields are:

     ‘enable-ipv6?’ (default: ‘#t’) (type: boolean)
          Sets the global default that tells ‘iwd’ whether it should
          configure IPv6 addresses and routes

     ‘name-resolving-service’ (default: ‘none’) (type: resolving-service)
          Configures a DNS resolution method used by the system.

     ‘extra-options’ (default: ‘()’) (type: alist)
          An association list of option symbols/strings to string values
          to be appended to the Network settings group.

 -- Data Type : iwd-scan-settings
     Available ‘iwd-scan-settings’ fields are:

     ‘disable-periodic-scan?’ (default: ‘#f’) (type: boolean)
          Setting this option to ‘#t’ will prevent ‘iwd’ from issuing
          the periodic scans for the available networks while
          disconnected.

     ‘initial-periodic-scan-interval’ (default: ‘10’) (type: number)
          The initial periodic scan interval upon disconnect (in
          seconds).

     ‘maximum-periodic-scan-interval’ (default: ‘300’) (type: number)
          The maximum periodic scan interval (in seconds).

     ‘disable-roaming-scan?’ (default: ‘#f’) (type: boolean)
          Setting this option to ‘#t’ will prevent ‘iwd’ from trying to
          scan when roaming decisions are activated.

     ‘extra-options’ (default: ‘()’) (type: alist)
          An association list of option symbols/strings to string values
          to be appended to the Scan settings group.

   Certains périphériques réseau comme les modems ont des besoins
spécifiques et c’est ce dont s’occupe les services suivants.

 -- Variable : modem-manager-service-type
     C’est le type de service pour le service ModemManager
     (https://wiki.gnome.org/Projects/ModemManager). La valeur de ce
     type de service est un enregistrement
     ‘modem-manager-configuration’.

     Ce service fait partie de ‘%desktop-services’ (*note Services de
     bureaux::).

 -- Type de données : modem-manager-configuration
     Type de donnée représentant la configuration de ModemManager.

     ‘modem-manager’ (par défaut : ‘modem-manager’)
          Le paquet ModemManager à utiliser.

 -- Variable : usb-modeswitch-service-type
     C’est le type de service pour le service USB_ModeSwitch
     (https://www.draisberghof.de/usb_modeswitch/). La valeur pour ce
     type de service est un enregistrement
     ‘usb-modeswitch-configuration’.

     Lorsqu’ils sont branchés, certains modems USB (et autres
     dispositifs USB) se présentent initialement comme un support de
     stockage en lecture seule et non comme un modem. Ils doivent être
     “modeswitched” avant d’être utilisables. Le service de type
     USB_ModeSwitch installe des règles udev pour commuter
     automatiquement les modes de ces dispositifs lorsqu’ils sont
     branchés.

     Ce service fait partie de ‘%desktop-services’ (*note Services de
     bureaux::).

 -- Type de donnée : openvswitch-configuration
     Type de données représentant la configuration du USB_ModeSwitch.

     ‘usb-modeswitch’ (par défaut : ‘usb-modeswitch’)
          Le paquet USB_ModeSwitch fournit les binaires pour la
          commutation de modes.

     ‘usb-modeswitch-data’ (par défaut : ‘usb-modeswitch-data’)
          Le paquet fournissant les données du dispositif et le fichier
          de règles udev utilisé par USB_ModeSwitch.

     ‘config-file’ (par défaut : ‘#~(string-append #$usb-modeswitch:dispatcher "/etc/usb_modeswitch.conf")’)
          Le fichier de configuration à utiliser pour le répartiteur
          USB_ModeSwitch. Par défaut, le fichier de configuration livré
          avec USB_ModeSwitch est utilisé, ce qui désactive la connexion
          au ‘/var/log’ parmi d’autres paramètres par défaut. S’il est
          défini sur ‘#f’, aucun fichier de configuration n’est utilisé.


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

11.10.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.

 -- Variable : 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 : 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 : 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 : 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 : 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 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 (TCP).
     Pour l’utiliser, il suffit d’écrire :

          (service nftables-service-type)

 -- Type de données : nftables-configuration
     Available ‘nftables-configuration’ fields are:

     ‘package’ (default: ‘nftables’) (type: file-like)
          The ‘nftables’ package to use.

     ‘debug-levels’ (type: maybe-list-of-debug-levels)
          A list of debug levels, for enabling debugging output. Valid
          debug level values are the ‘scanner’, ‘parser’, ‘eval’,
          ‘netlink’, ‘mnl’, ‘proto-ctx’, ‘segtree’ or ‘all’ symbols.

     ‘ruleset’ (type: file-like)
          A file-like object containing the complete nftables ruleset.
          The default ruleset rejects all incoming connections except
          those to TCP port 22, with connections from the loopback
          interface are allowed.

 -- Variable : 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 : %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’.

     ‘address’
          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))))

 -- Variable : 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 : %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 : ‘openntpd’)
          Le paquet 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 : 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 : 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 : tor-service-type
     Type for a service that runs the Tor (https://torproject.org)
     anonymous networking daemon. The service is configured using a
     ‘<tor-configuration>’ record. By default, the Tor daemon runs as
     the ‘tor’ unprivileged user, which is a member of the ‘tor’ group.

     Services of this type can be extended by other services to specify
     “onion services” (in addition to those already specified in
     ‘tor-configuration’) as in this example:

          (simple-service 'my-extra-onion-service tor-service-type
                          (list (tor-onion-service-configuration
                                  (name "extra-onion-service")
                                  (mapping '((80 "127.0.0.1:8080"))))))

 -- 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 : ‘'()’)
          The list of ‘<tor-onion-service-configuration>’ records to
          use. For any onion service you include in this list,
          appropriate configuration to enable the onion service will be
          automatically added to the default configuration file.

     ‘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’.

     ‘transport-plugins’ (default: ‘'()’)
          The list of ‘<tor-transport-plugin>’ records to use. For any
          transport plugin you include in this list, appropriate
          configuration line to enable transport plugin will be
          automatically added to the default configuration file.

     ‘auto-start?’ (par défaut : ‘#t’)
          Whether or not to start the Tor daemon on boot.

 -- Data Type : tor-onion-service-configuration
     Data Type representing a Tor “Onion Service” configuration. See the
     Tor project’s documentation
     (https://community.torproject.org/onion-services/) for more
     information. Available ‘tor-onion-service-configuration’ fields
     are:

     ‘name’ (type : string)
          Name for this Onion Service. This creates a
          ‘/var/lib/tor/hidden-services/NAME’ directory, where the
          ‘hostname’ file contains the ‘.onion’ host name for this Onion
          Service.

     ‘mapping’ (type: alist)
          Association list of port to address mappings. The following
          example:
               '((22 "127.0.0.1:22")
                 (80 "127.0.0.1:8080"))
          maps ports 22 and 80 of the Onion Service to the local ports
          22 and 8080.

 -- Data Type : tor-transport-plugin
     Data type representing a Tor pluggable transport plugin in
     ‘tor-configuration’. Plugguble transports are programs that
     disguise Tor traffic, which can be useful in case Tor is censored.
     See the the Tor project’s documentation
     (https://tb-manual.torproject.org/circumvention/) and specification
     (https://spec.torproject.org/pt-spec/index.html) for more
     information.

     Each transport plugin corresponds either to ‘ClientTransportPlugin
     ...’ or to ‘ServerTransportPlugin ...’ line in the default
     configuration file, see ‘man tor’. Available ‘tor-transport-plugin’
     fields are:

     ‘role’ (default: ‘'client’)
          This must be either ‘'client’ or ‘'server’. Otherwise, an
          error is raised. Set the ‘'server’ value if you want to run a
          bridge to help censored users connect to the Tor network, see
          the Tor project’s bridge guide
          (https://community.torproject.org/relay/setup/bridge/). Set
          the ‘'client’ value if you want to connect to somebody else’s
          bridge, see the Tor project’s “Get Bridges” page
          (https://bridges.torproject.org/). In both cases the required
          additional configuration should be provided via
          ‘#:config-file’ option of ‘tor-configuration’.
     ‘protocol’ (default: ‘"obfs4"’)
          A string that specifies a pluggable transport protocol.
     ‘program’
          This must be a “file-like” object or a string pointing to the
          pluggable transport plugin executable. This option allows the
          Tor daemon run inside the container to access the executable
          and all the references (e.g. package dependencies) attached to
          it.

     Suppose you would like Tor daemon to use obfs4 type obfuscation and
     to connect to Tor network via obfs4 bridge (a nonpublic Tor relay
     with support for obfs4 type obfuscation). Then you may go to
     https://bridges.torproject.org/ (https://bridges.torproject.org/)
     and get there a couple of bridge lines (each starts with ‘obfs4
     ...’) and use these lines in tor-service-type configuration as
     follows:
          (service tor-service-type
          	 (tor-configuration
          	  (config-file (plain-file "torrc"
          				   "\
          UseBridges 1
          Bridge obfs4 ...
          Bridge obfs4 ..."))
          	  (transport-plugins
          	   (list (tor-transport-plugin
          		  (program (file-append lyrebird "/bin/lyrebird")))))))

   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 : 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 : 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")))

          Remarque : This service is also available for Guix Home, where
          it runs directly with your user privileges (*note
          ‘home-syncthing-service-type’: Networking Home Services.).

     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)
          Sets the ‘HOME’ variable for the Syncthing daemon. The default
          is ‘$HOME’ of the specified Syncthing ‘user’.

     ‘config-file’ (default: #F)
          Either a file-like object that resolves to a Syncthing
          configuration XML file, or a ‘syncthing-config-file’ record
          (see below). If set to ‘#f’, Guix will not try to generate a
          config file, and Syncthing will generate a default
          configuration which will not be touched on reconfigure.
          Specifying this in a system service moves Syncthing’s common
          configuration and data directory (‘--home’ in
          <https://docs.syncthing.net/users/syncthing.html>) to
          ‘/var/lib/syncthing-<user>’.

          When used as a home service, syncthing configuration will be
          populated in ‘~/.local/state/syncthing/’. Old Syncthing
          installs may have files in ‘$XDG_CONFIG_HOME/syncthing/’
          (usually ‘~/.config/syncthing/’), which will override
          configuration in ‘~/.local/state/syncthing’ managed by this
          service. In such cases, you should move the contents of
          ‘$XDG_CONFIG_HOME/syncthing/’ into
          ‘~/.local/state/syncthing/’.

   This section documents a subset of the Syncthing configuration
options—specifically those related to Guix or those affecting how your
computer will connect to other computers over the network (such as
Syncthing relays or discovery servers). The configuration is fully
documented in the upstream Syncthing config documentation
(https://docs.syncthing.net/users/config.html); camelCase there is
converted to kebab-case here. If you are migrating from a
Syncthing-managed configuration to one managed by Guix, you can check
what changes were introduced by ‘diff’ing the respective ‘config.xml’
files. Note that you will need to add whitespace with 4-space
indentation to the file generated by Guix, using the ‘xmllint’ program
from the ‘libxml2’ package like so:

     XMLLINT_INDENT="    " xmllint --format /path/to/new/config.xml | diff /path/to/old/config.xml -

   When generating a configuration file through Guix, you can still
temporarily modify Syncthing from the GUI or through ‘introducer’ and
‘autoAcceptFolders’ mechanisms, but such changes will be reset on
reconfigure.

 -- Data Type : syncthing-config-file
     Data type representing the configuration file read by the Syncthing
     daemon.

     ‘folders’ (default: ‘(list (syncthing-folder (id "default") (label "Default Folder") (path "~/Sync")))’
          The default here is the same as Syncthing’s default. The value
          should be a list of ‘syncthing-folder’s.

     ‘devices’ (default: ‘'()’
          This should be a list of ‘syncthing-device’s. Guix will
          automatically add any devices specified in any ‘folders’ to
          this list. There are instances when you want to connect to a
          device despite not (initially) sharing any folders (such as a
          device with autoAcceptFolders). In such instances, you should
          specify those devices here. If multiple versions of the same
          device (as determined by comparing device ID) are discovered,
          the one in this list is prioritized. Otherwise, the first
          instance in the first folder is used.

     ‘gui-enabled?’ (default: ‘#t’)
          By default, any user on the computer can access the GUI and
          make changes to Syncthing. If you leave this enabled, you
          should probably set ‘gui-user’ and ‘gui-password’ (see below).

     ‘gui-tls?’ (default: ‘#f’)
     ‘gui-debugging?’ (default: ‘#f’)
     ‘gui-send-basic-authorization-prompt?’ (default: ‘#f’)
     ‘gui-address’ (default: ‘"127.0.0.1:8384"’)
     ‘gui-user’ (default: ‘#f’)
     ‘gui-password’ (default: ‘#f’)
          A bcrypt hash of the GUI password. Remember that this will be
          globally exposed in ‘/gnu/store’.

     ‘gui-apikey’ (default: ‘#f’)
          You must specify this to use the Syncthing REST interface.
          This key is kept in ‘/gnu/store’ and is accessible to all
          users of the system.

     ‘gui-theme’ (default: ‘"default"’)
     ‘ldap-enabled?’ (default: ‘#f’)
     ‘ldap-address’ (default: ‘""’)
     ‘ldap-bind-dn’ (default: ‘""’)
     ‘ldap-transport’ (default: ‘""’)
     ‘ldap-insecure-skip-verify’ (default: ‘""’)
     ‘ldap-search-base-dn’ (default: ‘""’)
     ‘ldap-search-filter’ (default: ‘""’)
     ‘listen-address’ (default: ‘"default"’)
     ‘global-announce-server’ (default: ‘"default"’)
     ‘global-announce-enabled?’ (default: ‘#t’)
          Global discovery servers can be used to help connect devices
          at unknown IP addresses by storing the last known IP address.

     ‘local-announce-enabled?’ (default: ‘#t’)
          This makes devices find each other very easily on the same
          LAN. Often, this will allow you to just plug an Ethernet
          between two devices, or connect one device to the other’s
          hotspot and start syncing.

     ‘local-announce-port’ (default: ‘21027’)
     ‘local-announce-mac-address’ (default: ‘"[ff12::8384]:21027"’)
     ‘max-send-kbps’ (default: ‘0’)
     ‘max-receive-kbps’ (default: ‘0’)
     ‘reconnection-interval-seconds’ (default: ‘60’)
     ‘relays-enabled?’ (default: ‘#t’)
          This option allows your Syncthing instance to use a global
          network of relays
          (https://docs.syncthing.net/users/relaying.html) to enable
          syncing between devices when all other methods fail. As
          always, Syncthing traffic is encrypted in transport and the
          relays are unable to decrypt it.

     ‘relay-reconnect-interval-minutes’ (default: ‘10’)
     ‘start-browser?’ (default: ‘#t’)
     ‘nat-enabled?’ (default: ‘#t’)
     ‘nat-lease-minutes’ (default: ‘60’)
     ‘nat-renewal-minutes’ (default: ‘30’)
     ‘nat-timeout-seconds’ (default: ‘10’)
     ‘usage-reporting-accepted’ (default: ‘0’)
          Options whose names begin with ‘usage-reporting-’ control
          usage reporting. Set to -1 to disable, or to a positive value
          to enable. The default (0) disables reporting, but causes a
          usage reporting consent prompt to be displayed in the
          Syncthing GUI.

     ‘usage-reporting-seen’ (default: ‘0’)
     ‘usage-reporting-unique-id’ (default: ‘""’)
     ‘usage-reporting-url’ (default: ‘"https://data.syncthing.net/newdata"’)
     ‘usage-reporting-post-insecurely?’ (default: ‘#f’)
     ‘usage-reporting-initial-delay-seconds’ (default: ‘1800’)
     ‘auto-upgrade-interval-hours’ (default: ‘12’)
     ‘upgrade-to-pre-releases?’ (default: ‘#f’)
     ‘keep-temporaries-hours’ (default: ‘24’)
     ‘cache-ignored-files?’ (default: ‘#f’)
     ‘progress-update-interval-seconds’ (default: ‘5’)
     ‘limit-bandwidth-in-lan?’ (default: ‘#f’)
     ‘min-home-disk-free-unit’ (default: ‘"%"’)
     ‘min-home-disk-free’ (default: ‘1’)
     ‘releases-url’ (default: ‘"https://upgrades.syncthing.net/meta.json"’)
     ‘overwrite-remote-device-names-on-connect?’ (default: ‘#f’)
     ‘temp-index-min-blocks’ (default: ‘10’)
     ‘unacked-notification-id’ (default: ‘"authenticationUserAndPassword"’)
     ‘traffic-class’ (default: ‘0’)
     ‘set-low-priority?’ (default: ‘#t’)
     ‘max-folder-concurrency’ (default: ‘0’)
     ‘crash-reporting-url’ (default: ‘"https://crash.syncthing.net/newcrash"’)
     ‘crash-reporting-enabled?’ (default: ‘#t’)
     ‘stun-keepalive-start-seconds’ (default: ‘180’)
     ‘stun-keepalive-min-seconds’ (default: ‘20’)
     ‘stun-server’ (default: ‘"default"’)
     ‘database-tuning’ (default: ‘"auto"’)
     ‘max-concurrent-incoming-request-kib’ (default: ‘0’)
     ‘announce-lan-addresses?’ (default: ‘#t’)
     ‘send-full-index-on-upgrade?’ (default: ‘#f’)
     ‘connection-limit-enough’ (default: ‘0’)
     ‘connection-limit-max’ (default: ‘0’)
     ‘insecure-allow-old-tls-versions?’ (default: ‘#f’)
     ‘connection-priority-tcp-lan’ (default: ‘10’)
     ‘connection-priority-quic-lan’ (default: ‘20’)
     ‘connection-priority-tcp-wan’ (default: ‘30’)
     ‘connection-priority-quic-wan’ (default: ‘40’)
     ‘connection-priority-relay’ (default: ‘50’)
     ‘connection-priority-upgrade-threshold’ (default: ‘0’)
     ‘default-folder’ (default: ‘(syncthing-folder (label ""))’)
     ‘default-device’ (default: ‘(syncthing-device (id ""))’)
     ‘default-ignores’ (default: ‘"")’)
          Options whose names begin with ‘default-’ above do not affect
          folders and devices added through the Guix configuration
          interface. They will, however, affect folders and devices that
          are added through the Syncthing GUI, by an ‘introducer’, or a
          device with ‘auto-accept-folders’.

 -- Data Type : syncthing-folder
     Data type representing a folder to be synchronized.

     ‘id’ (par défaut : ‘#f’)
          This ID cannot match the ID of any other folder on this
          device. If left unspecified, it will default to the label (see
          below).

     ‘label’
          A human readable label for the folder.

     ‘path’
          The path at which to store this folder.

     ‘type’ (default: ‘"sendreceive"’)
     ‘rescan-interval-seconds’ (default: ‘3600’)
     ‘file-system-watcher-enabled?’ (default: ‘#t’)
     ‘file-system-watcher-delay-seconds’ (default: ‘10’)
     ‘file-system-watcher-timeout-seconds’ (default: ‘0’)
     ‘ignore-permissions?’ (default: ‘#f’)
     ‘auto-normalize?’ (default: ‘#t’)
     ‘devices’ (default: ‘'()’)
          This should be a list of other Syncthing devices. You do not
          need to specify the current device. Each device can be listed
          as a a ‘syncthing-device’ record or a
          ‘syncthing-folder-device’ record if you want files to be
          encrypted on disk. See below.

     ‘filesystem-type’ (default: ‘"basic"’)
     ‘min-disk-free-unit’ (default: ‘"%"’)
     ‘min-disk-free’ (default: ‘1’)
     ‘versioning-type’ (default: ‘#f’)
     ‘versioning-file-system-path’ (default: ‘""’)
     ‘versioning-file-system-type’ (default: ‘"basic"’)
     ‘versioning-cleanup-interval-seconds’ (default: ‘3600’)
     ‘versioning-cleanout-days’ (default: ‘#f’)
     ‘versioning-keep’ (default: ‘#f’)
     ‘versioning-max-age’ (default: ‘#f’)
     ‘versioning-command’ (default: ‘#f’)
     ‘copiers’ (default: ‘0’)
     ‘puller-max-pending-kib’ (default: ‘0’)
     ‘hashers’ (default: ‘0’)
     ‘order’ (default: ‘"random"’)
     ‘ignore-delete?’ (default: ‘#f’)
     ‘scan-progress-interval-seconds’ (default: ‘0’)
     ‘puller-pause-seconds’ (default: ‘0’)
     ‘max-conflicts’ (default: ‘10’)
     ‘disable-sparse-files?’ (default: ‘#f’)
     ‘disable-temp-indexes?’ (default: ‘#f’)
     ‘paused?’ (default: ‘#f’)
     ‘weak-hash-threshold-percentage’ (default: ‘25’)
     ‘marker-name’ (default: ‘".stfolder"’)
     ‘copy-ownership-from-parent?’ (default: ‘#f’)
     ‘mod-time-window-seconds’ (default: ‘0’)
     ‘max-concurrent-writes’ (default: ‘2’)
     ‘disable-fsync?’ (default: ‘#f’)
     ‘block-pull-order’ (default: ‘"standard"’)
     ‘copy-range-method’ (default: ‘"standard"’)
     ‘case-sensitive-file-system?’ (default: ‘#f’)
     ‘junctions-as-dirs?’ (default: ‘#f’)
     ‘sync-ownership?’ (default: ‘#f’)
     ‘send-ownership?’ (default: ‘#f’)
     ‘sync-xattrs?’ (default: ‘#f’)
     ‘send-xattrs?’ (default: ‘#f’)
     ‘xattr-filter-max-single-entry-size’ (default: ‘1024’)
     ‘xattr-filter-max-total-size’ (default: ‘4096’)

 -- Data Type : syncthing-device
     Data type representing a device to synchronize folders with.

     ‘id’
          A long hash representing the keys generated by Syncthing on
          the first launch. You can obtain this from the Syncthing GUI
          or by inspecting an existing Syncthing configuration file.

     ‘name’ (default: ‘""’)
          A human readable device name for viewing in the GUI or in
          Scheme.

     ‘compression’ (default: ‘"metadata"’)
     ‘introducer?’ (default: ‘#f’)
     ‘skip-introduction-removals?’ (default: ‘#f’)
     ‘introduced-by’ (default: ‘""’)
     ‘addresses’ (default: ‘'("dynamic")’)
          List of addresses at which to search for this device. When the
          special value “dynamic” is included, Syncthing will search for
          the device locally as well as via the Syncthing project’s
          global discovery
          (https://docs.syncthing.net/users/security.html#global-discovery)
          servers.

     ‘paused?’ (default: ‘#f’)
     ‘auto-accept-folders?’ (default: ‘#f’)
     ‘max-send-kbps’ (default: ‘0’)
     ‘max-receive-kbps’ (default: ‘0’)
     ‘max-request-kib’ (default: ‘0’)
     ‘untrusted?’ (default: ‘#f’)
     ‘remote-gui-port’ (default: ‘0’)
     ‘num-connections’ (default: ‘0’)

 -- Data Type : syncthing-folder-device
     This data type offers two folder-specific device options:
     ‘introduced-by’ and ‘encryption-password’.

     ‘syncthing-folder-device’ corresponds to the ‘device’
     (https://docs.syncthing.net/users/config.html#config-option-folder.device)
     option in the upstream ‘folder’ element.

     If you don’t need to use these options, then you can just use
     ‘syncthing-device’ instead of ‘syncthing-folder-device’ in the
     ‘devices’ field of a ‘syncthing-folder’ instance.

     ‘device’
          The ‘syncthing-device’ for which this configuration applies.

     ‘introduced-by’ (default: ‘""’)
          The name of the device that "introduced" our device to the
          device sharing this folder. This is only used when
          "introduced" devices are removed by the introducer. See
          Syncthing introductions
          (https://docs.syncthing.net/users/introducer.html).

     ‘encryption-password’ (default: ‘""’)
          The password used to encrypt data that is synchronized to
          untrusted devices.

          Beware: specifying this field will include this password as
          plain text (not encrypted) and globally visible in
          ‘/gnu/store/’. If the encryption-password is non-empty, then
          it will be used as a password to encrypt file chunks as they
          are synchronized to untrusted devices. For more information on
          syncing to devices you don’t totally trust, see Syncthing’s
          documentation on Untrusted (Encrypted) Devices
          (https://docs.syncthing.net/users/untrusted.html). Note that
          data transfer is always encrypted while in transport
          ("end-to-end encryption"), regardless of this setting.

   Here is a more complex example configuration for illustrative
purposes:

     (service syncthing-service-type
              (let ((laptop (syncthing-device (id "VHOD2D6-...-7XRMDEN")))
                    (desktop (syncthing-device (id "64SAZ37-...-FZJ5GUA")
                                               (addresses '("tcp://example.com"))))
                    (bob-desktop (syncthing-device (id "KYIMEGO-...-FT77EAO"))))
                (syncthing-configuration
                 (user "alice")
                 (config-file
                  (syncthing-config-file
                    (folders (list (syncthing-folder
                                    (label "some-files")
                                    (path "~/data")
                                    (devices (list desktop laptop)))
                                   (syncthing-folder
                                    (label "critical-files")
                                    (path "~/secrets")
                                    (devices
                                     (list desktop
                                           laptop
                                           (syncthing-folder-device
                                            (device bob-desktop)
                                            (encryption-password "mypassword"))))))))))))

   En plus, ‘(gnu services ssh)’ fournit les services suivant.
 -- Variable : 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"))

 -- Variable : dropbear-service-type
     Type of the service that runs the Dropbear SSH daemon
     (https://matt.ucc.asn.au/dropbear/dropbear.html), whose value is a
     ‘<dropbear-configuration>’ object.

     For example, to specify a Dropbear service listening on port 1234:

          (service dropbear-service-type (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 : 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 : 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 : block-facebook-hosts-service-type
     This service type adds a list of known Facebook hosts to the
     ‘/etc/hosts’ file. (*note (libc)Host Names::) Each line contains an
     entry that maps a known server name of the Facebook on-line
     service—e.g., ‘www.facebook.com’—to unroutable IPv4 and IPv6
     addresses.

     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 : 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 : 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 : 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 : 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
                         ))
          # sample content for /etc/yggdrasil-private.conf
          {
            # Your private key. DO NOT share this with anyone!
            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"’)
          What HJSON file to load sensitive data from. This is where
          private keys should be stored, which are necessary to specify
          if you don’t want a randomized address after each restart. Use
          ‘#f’ to disable. Options defined in this file take precedence
          over ‘json-config’. Use the output of ‘yggdrasil -genconf’ as
          a starting point. To configure a static address, delete
          everything except PrivateKey option.

 -- Variable : 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 : 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

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

Le module ‘(gnu services admin)’ 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 : unattended-upgrade-service-type
     This is the service type for unattended upgrades. It sets up a
     Shepherd Timer (*note Exécution de tâches planifiées::) that runs
     ‘guix system reconfigure’ from the latest version of the specified
     channels.

     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"’)
          This is the schedule of upgrades, expressed as a string in
          traditional cron syntax or as a gexp evaluating to a Shepherd
          calendar event (*note (shepherd)Timers::).

     ‘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’.

     ‘operating-system-expression’ (par défaut : ‘#f’)
          Ce champ spécifie une expression qui s’évalue en un système
          d’exploitation à utiliser pour la mise à jour. Si aucune
          valeur n’est fournie, le champ ‘operating-system-file’ est
          utilisé.

               (unattended-upgrade-configuration
                 (operating-system-expression
                   #~(@ (guix system install) installation-os)))

     ‘reboot?’ (default: ‘#f’)
          This field specifies whether the system should reboot after
          completing an unattended upgrade.

          When ‘reboot?’ is ‘#t’, services are not restarted before
          rebooting. This means that the value for ‘services-to-restart’
          is ignored. The updated services will be started after the
          system reboots.

     ‘services-to-restart’ (default: ‘'(unattended-upgrade)’)
          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 ‘unattended-upgrade’ 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

11.10.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 also supports Wayland: it can itself use Wayland instead of X11
for its user interface, and it can also start Wayland sessions. Wayland
support is enabled by default. To disable it, set ‘wayland?’ to ‘#f’ in
‘gdm-configuration’.

 -- Variable : 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?’ (default: ‘#t’)
          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 : 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 : %default-theme
 -- Variable : %default-theme-name
     Le thème SLiM par défaut et son nom.

 -- Variable : 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.

               Remarque : sddm utilise Qt 6 par défaut. Pour utiliser un
               thème Qt 5, il faut mettre ce champ à ‘sddm-qt5’.

     ‘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 : 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-libinput’ 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 : 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 : 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.

 -- Procedure : xorg-start-command-xinit [config]
     Return a ‘startx’ script in which the modules, fonts, etc.
     specified in CONFIG are available. The result should be used in
     place of ‘startx’ and should be invoked by the user from a tty
     after login. Unlike ‘xorg-start-command’, this script calls xinit.
     Therefore it works well when executed from a tty. This script can
     be set up as ‘startx’ using ‘startx-command-service-type’ or
     ‘home-startx-command-service-type’. If you are using a desktop
     environment, you are unlikely to need this procedure.

 -- Variable : screen-locker-service-type
     Type for a service that adds a package for a screen locker or
     screen saver to the set of privileged programs and/or add a PAM
     entry for it. The value for this service is a
     ‘<screen-locker-configuration>’ object.

     While the default behavior is to setup both a privileged program
     and PAM entry, these two methods are redundant. Screen locker
     programs may not execute when PAM is configured and ‘setuid’ is set
     on their executable. In this case, ‘using-setuid?’ can be set to
     ‘#f’.

     For example, to make XlockMore usable:

          (service screen-locker-service-type
                   (screen-locker-configuration
                     (name "xlock")
                     (program (file-append xlockmore "/bin/xlock"))))

     rend utilisable le bon vieux XlockMore.

     For example, swaylock fails to execute when compiled with PAM
     support and setuid enabled. One can thus disable setuid:

          (service screen-locker-service-type
                   (screen-locker-configuration
                     (name "swaylock")
                     (program (file-append swaylock "/bin/swaylock"))
                     (using-pam? #t)
                     (using-setuid? #f)))

 -- Data Type : screen-locker-configuration
     Available ‘screen-locker-configuration’ fields are:

     ‘name’ (type : string)
          Name of the screen locker.

     ‘program’ (type: file-like)
          Path to the executable for the screen locker as a
          G-Expression.

     ‘allow-empty-password?’ (default: ‘#f’) (type: boolean)
          Indique s’il faut autoriser les mots de passes vides.

     ‘using-pam?’ (default: ‘#t’) (type: boolean)
          Whether to setup PAM entry.

     ‘using-setuid?’ (default: ‘#t’) (type: boolean)
          Whether to setup program as setuid binary.

 -- Variable : startx-command-service-type
     Add ‘startx’ to the system profile putting it onto ‘PATH’.

     The value for this service is a ‘<xorg-configuration>’ object which
     is passed to the ‘xorg-start-command-xinit’ procedure producing the
     ‘startx’ used. Default value is ‘(xorg-configuration)’.


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

11.10.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 : 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
     Specifies a list of DNS-SD sub-types to advertise for each shared
     printer.

     The default ‘(list "_cups" "_print" "_universal")’ tells clients
     that CUPS sharing, IPP Everywhere, AirPrint, and Mopria are
     supported.

 -- 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 : 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 : 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 ‘max-jobs’ 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 ‘max-jobs’ 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’.

 -- cups-configuration parameter : non-negative-integer
          max-subscriptions
     Specifies the maximum number of simultaneous event subscriptions
     that are allowed. Set to ‘0’ to allow an unlimited number of
     subscriptions.

     La valeur par défaut est ‘0’.

 -- cups-configuration parameter : non-negative-integer
          max-subscriptions-per-job
     Specifies the maximum number of simultaneous event subscriptions
     that are allowed per job. A value of ‘0’ allows up to
     ‘max-subscriptions’ per job.

     La valeur par défaut est ‘0’.

 -- cups-configuration parameter : non-negative-integer
          max-subscriptions-per-printer
     Specifies the maximum number of simultaneous event subscriptions
     that are allowed per printer. A value of ‘0’ allows up to
     ‘max-subscriptions’ per printer.

     La valeur par défaut est ‘0’.

 -- cups-configuration parameter : non-negative-integer
          max-subscriptions-per-user
     Specifies the maximum number of simultaneous event subscriptions
     that are allowed per user. A value of ‘0’ allows up to
     ‘max-subscriptions’ per user.

     La valeur par défaut est ‘0’.

 -- 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 : 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’.

 -- cups-configuration parameter : comma-separated-string-list-or-#f
          ready-paper-sizes
     Specifies a list of potential paper sizes that are reported as
     ready, that is: loaded. The actual list will contain only the sizes
     that each printer supports.

     The default value of ‘#f’ is a special case: CUPS will use ‘(list
     \"Letter\" \"Legal\" \"Tabloid\" \"4x6\" \"Env10\")’ if the default
     paper size is \"Letter\", and ‘(list \"A3\" \"A4\" \"A5\" \"A6\"
     \"EnvDL\")’ otherwise.

 -- 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 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

11.10.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 : %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.

     In particular, it adds a graphical login manager (*note
     ‘gdm-service-type’: Système de fenêtrage X.), screen lockers, a
     network management tool (*note ‘network-manager-service-type’:
     Services réseau.) with modem support (*note
     ‘modem-manager-service-type’: Services réseau.), energy and color
     management services, the ‘elogind’ login and seat manager, the
     Polkit privilege service, the GeoClue location service, the
     AccountsService daemon that allows authorized users change system
     passwords, a NTP client (*note Services réseau::) and the Avahi
     daemon.

   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.).

   Additionally, the following procedures add one (or more!) desktop
environments to a system.

   • ‘gnome-desktop-service-type’ adds GNOME,
   • ‘plasma-desktop-service-type’ adds KDE Plasma,
   • ‘enlightenment-desktop-service-type’ adds Enlightenment,
   • ‘lxqt-desktop-service-type’ adds LXQt,
   • ‘mate-desktop-service-type’ adds MATE, and
   • ‘xfce-desktop-service-type’ adds Xfce.

   These service types add “metapackages” such as ‘gnome’ or ‘plasma’ to
the system profile, but most of them also set up other useful services
that mere packages can’t do.

   For example, they may elevate privileges on a limited number of
special-purpose system interfaces and programs. This allows backlight
adjustment helpers, power management utilities, screen lockers, and
other integrated functionality to work as expected.

 -- Variable : 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
     Configuration record for the GNOME desktop environment. Available
     ‘gnome-desktop-configuration’ fields are:

     ‘core-services’ (type: list-of-packages)
          A list of packages that the GNOME Shell and applications may
          rely on.

     ‘shell’ (type: list-of-packages)
          A list of packages that constitute the GNOME Shell, without
          applications.

     ‘utilities’ (type: list-of-packages)
          A list of packages that serve as applications to use on top of
          the GNOME Shell.

     ‘gnome’ (type: maybe-package)
          This field used to be the only configuration point and
          specified a GNOME meta-package to install system-wide. Since
          the meta-package itself provides neither sources nor the
          actual packages and is only used to propagate them, this field
          is deprecated.

     ‘extra-packages’ (type: list-of-packages)
          A list of GNOME-adjacent packages to also include. This field
          is intended for users to add their own packages to their GNOME
          experience. Note, that it already includes some packages that
          are considered essential by some (most?) GNOME users.

     ‘udev-ignorelist’ (default: ‘()’) (type: list-of-strings)
          A list of regular expressions denoting udev rules or hardware
          file names provided by any package that should not be
          installed. By default, every udev rule and hardware file
          specified by any package referenced in the other fields are
          installed.

     ‘polkit-ignorelist’ (default: ‘()’) (type: list-of-strings)
          A list of regular expressions denoting polkit rules provided
          by any package that should not be installed. By default, every
          polkit rule added by any package referenced in the other
          fields are installed.

     ‘keyring’ (type: gnome-keyring-configuration-or-#f)
          A <gnome-keyring-configuration> record used to better
          integrate the GNOME keyring with the system. Refer to the
          documentation of the ‘gnome-keyring-service-type’ for more
          information. If you’d rather avoid integrating the GNOME
          keyring, you can set this to ‘#f’.

 -- Variable : plasma-desktop-service-type
     This is the type of the service that adds the Plasma
     (https://kde.org/plasma-desktop/) desktop environment. Its value is
     a ‘plasma-desktop-configuration’ object (see below).

     This service adds the ‘plasma’ package to the system profile.

 -- Data Type : plasma-desktop-configuration
     Configuration record for the Plasma desktop environment.

     ‘plasma’ (default: ‘plasma’)
          The Plasma package to use.

 -- Variable : 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 : 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 : 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 : sugar-desktop-service-type
     This is the type of the service that runs the Sugar desktop
     environment (https://www.sugarlabs.org). Its value is a
     ‘sugar-desktop-configuration’ object (see below).

     This service adds the ‘sugar’ package to the system profile, as
     well as any selected Sugar activities. By default it only includes
     a minimal set of activities.

 -- Data Type : sugar-desktop-configuration
     Configuration record for the Sugar desktop environment.

     ‘sugar’ (default: ‘sugar’)
          The Sugar package to use.
     ‘gobject-introspection’ (default: ‘gobject-introspection’)
          The ‘gobject-introspection’ package to use. This package is
          used to access libraries installed as dependencies of Sugar
          activities.
     ‘activities’ (default: ‘(list sugar-help-activity)’)
          A list of Sugar activities to install.

   The following example configures the Sugar desktop environment with a
number of useful activities:

     (use-modules (gnu))
     (use-package-modules sugar)
     (use-service-modules desktop)
     (operating-system
       ...
       (services (cons* (service sugar-desktop-service-type
                                 (sugar-desktop-configuration
                                   (activities (list sugar-browse-activity
                                                     sugar-help-activity
                                                     sugar-jukebox-activity
                                                     sugar-typing-turtle-activity))))
                        %desktop-services))
       ...)

 -- Variable : 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-type)
                        %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.

 -- Variable : dbus-root-service-type
     Type for a service that runs the D-Bus “system bus”. (1)

     The value for this service type is a ‘<dbus-configuration>’ record.

 -- Data Type : dbus-configuration
     Data type representing the configuration for
     ‘dbus-root-service-type’.

     ‘dbus’ (default: ‘dbus’) (type: file-like)
          Package object for dbus.

     ‘services’ (default: ‘'()’) (type: list)
          List of packages that provide an ‘etc/dbus-1/system.d’
          directory containing additional D-Bus configuration and policy
          files. For example, to allow avahi-daemon to use the system
          bus, SERVICES must be equal to ‘(list avahi)’.

     ‘verbose?’ (default: ‘#f’) (type: boolean)
          When ‘#t’, D-Bus is launched with environment variable
          ‘DBUS_VERBOSE’ set to ‘1’. A verbose-enabled D-Bus package
          such as ‘dbus-verbose’ should be provided to DBUS in this
          scenario. The verbose output is logged to
          ‘/var/log/dbus-daemon.log’.

Elogind
.......

Elogind (https://github.com/elogind/elogind) is a login and seat
management daemon that also handles most system-level power events for a
computer, for example suspending the system when a lid is closed, or
shutting it down when the power button is pressed.

   It also provides a D-Bus interface that can be used to know which
users are logged in, know what kind of sessions they have open, suspend
the system, inhibit system suspend, reboot the system, and other tasks.

 -- Variable : elogind-service-type
     Type of the service that runs ‘elogind’, a login and seat
     management daemon. The value for this service is a
     ‘<elogind-configuration>’ object.

 -- Data Type : elogind-configuration
     Available ‘elogind-configuration’ fields are:

     ‘elogind’ (default: ‘elogind’) (type: file-like)
          The elogind package to use.

     ‘system-sleep-hook-files’ (default: ‘()’) (type: list-of-file-likes)
          A list of executables (file-like objects) that will be
          installed into the ‘/etc/elogind/system-sleep’ hook directory.
          See ‘Hook directories’ in the ‘loginctl(1)’ man page for more
          information.

     ‘system-shutdown-hook-files’ (default: ‘()’) (type: list-of-file-likes)
          A list of executables (file-like objects) that will be
          installed into the ‘/etc/elogind/system-shutdown/’ hook
          directory.

     ‘allow-power-off-interrupts?’ (default: ‘#f’) (type: maybe-boolean)
          Whether the executables in elogind’s hook directories (see
          above) can cause a power-off action to be cancelled
          (interrupted) by printing an appropriate error message to
          stdout.

     ‘allow-suspend-interrupts?’ (default: ‘#f’) (type: maybe-boolean)
          Likewise as the ‘allow-power-off-interrupts?’ option, but for
          the suspend action.

     ‘broadcast-power-off-interrupts?’ (default: ‘#f’) (type: maybe-boolean)
          Whether an interrupt of a power-off action is broadcasted.

     ‘broadcast-suspend-interrupts?’ (default: ‘#f’) (type: maybe-boolean)
          Whether an interrupt of a suspend action is broadcasted.

     ‘kill-user-processes?’ (default: ‘#f’) (type: maybe-boolean)
          Whether the processes of a user should be killed when the user
          logs out.

     ‘kill-only-users’ (type: maybe-list-of-user-names)
          Usernames whose processes should be killed, regardless the
          value of ‘kill-user-processes?’.

     ‘kill-exclude-users’ (default: ‘("root")’) (type: maybe-list-of-user-names)
          Usernames whose processes should _not_ be killed, regardless
          the value of ‘kill-user-processes?’.

     ‘inhibit-delay-max-seconds’ (default: ‘5’) (type: maybe-non-negative-integer)
          The maximum time a system shutdown or sleep request is delayed
          due to an inhibitor lock of type delay being active before the
          inhibitor is ignored and the operation executes anyway.

     ‘handle-power-key’ (default: ‘poweroff’) (type: maybe-action)
          The action done when the power key is pressed. The compiled
          default is ‘'poweroff’.

     ‘handle-suspend-key’ (default: ‘suspend’) (type: maybe-action)
          The action done when the suspend key is pressed. The

     ‘handle-hibernate-key’ (default: ‘hibernate’) (type: maybe-action)
          The action done when the hibernate key is pressed.

     ‘handle-lid-switch’ (default: ‘suspend’) (type: maybe-action)
          The action done when the lid is closed.

     ‘handle-lid-switch-docked’ (default: ‘ignore’) (type: maybe-action)
          The action done when the lid is closed and the device docked.

     ‘handle-lid-switch-external-power’ (default: ‘suspend’) (type: maybe-action)
          The action done when the lid is closed and the device is
          externally powered.

     ‘power-key-ignore-inhibited?’ (default: ‘#f’) (type: maybe-boolean)
          Whether to ignore high-level inhibitor locks (shutdown,
          reboot, sleep or idle) when the power key is pressed.

     ‘suspend-key-ignore-inhibited?’ (default: ‘#f’) (type: maybe-boolean)
          Whether to ignore high-level inhibitor locks (shutdown,
          reboot, sleep or idle) when the suspend key is pressed.

     ‘hibernate-key-ignore-inhibited?’ (default: ‘#f’) (type: maybe-boolean)
          Whether to ignore high-level inhibitor locks (shutdown,
          reboot, sleep or idle) when the hibernate key is pressed.

     ‘lid-switch-ignore-inhibited?’ (default: ‘#f’) (type: maybe-boolean)
          Whether to ignore high-level inhibitor locks (shutdown,
          reboot, sleep or idle) when the lid is closed.

     ‘holdoff-timeout-seconds’ (default: ‘30’) (type: maybe-non-negative-integer)
          Specifies the number of seconds after system startup or system
          resume during which elogind will hold off on reacting to lid
          events.

     ‘idle-action’ (default: ‘ignore’) (type: maybe-action)
          Action to take when the system is idle.

     ‘idle-action-seconds’ (type: maybe-non-negative-integer)
          The delay after which the action configured in ‘idle-action’
          is taken after the system is idle.

     ‘runtime-directory-size-percent’ (type: maybe-percent)
          Set the size limit, in percent, on the ‘XDG_RUNTIME_DIR’
          runtime directory for each user who logs in. This specifies
          the per-user size limit relative to the amount of physical RAM
          (read access memory). This value takes precedence over that
          specified via ‘runtime-directory-size’.

     ‘runtime-directory-size’ (type: maybe-non-negative-integer)
          Set the size limit, in bytes, on the ‘XDG_RUNTIME_DIR’ runtime
          directory for each user who logs in.

     ‘remove-ipc?’ (default: ‘#t’) (type: maybe-boolean)
          Whether IPC (inter-process communication) objects belonging to
          the user shall be removed when the user fully logs out.

     ‘suspend-state’ (default: ‘(mem standby freeze)’) (type: maybe-list-of-suspend-states)
          The suspend state values to be write to ‘/sys/power/state’ by
          elogind when suspending the system. They will be tried in
          turn, until one is written without error.

     ‘suspend-mode’ (type: maybe-list-of-suspend-modes)
          The suspend mode values to write to ‘/sys/power/mem_sleep’ by
          elogind when suspending the system.

     ‘suspend-estimation-seconds’ (default: ‘3600’) (type: maybe-non-negative-integer)
          Cause the RTC alarm to wake the system after the specified
          time span to measure the system battery capacity level and
          estimate the battery discharging rate, which is used for
          estimating the time span until the system battery charge level
          goes down to 5%. This option is only used by elogind when
          using the ‘'suspend-then-hibernate’ action.

     ‘hibernate-mode’ (default: ‘(platform shutdown)’) (type: maybe-list-of-hibernation-modes)
          The hibernation mode values to write to ‘/sys/power/disk’ by
          elogind when hibernating the system.

     ‘hibernate-delay-seconds’ (type: maybe-non-negative-integer)
          The amount of time the system spends in suspend mode before
          the system is automatically put into hibernate mode.

     ‘hibernate-state’ (type: maybe-list-of-strings)
          Deprecated option.

     ‘hybrid-sleep-state’ (type: maybe-list-of-strings)
          Deprecated option.

     ‘hybrid-sleep-mode’ (type: maybe-list-of-strings)
          Deprecated option.

 -- Variable : accountsservice-service-type
     Type for the service that runs AccountsService, a system service
     that can list available accounts, change their passwords, and so
     on. AccountsService integrates with PolicyKit to enable
     unprivileged users to acquire the capability to modify their system
     configuration. See AccountsService
     (https://www.freedesktop.org/wiki/Software/AccountsService/) for
     more information.

     The value for this service is a file-like object, by default it is
     set to ‘accountsservice’ (the package object for AccountsService).

 -- Variable : polkit-service-type
     Type for the service that runs the Polkit privilege management
     service (https://www.freedesktop.org/wiki/Software/polkit/), which
     allows system administrators to grant access to privileged
     operations in a structured way. By querying the Polkit service, a
     privileged system component can know when it should grant
     additional capabilities to ordinary users. For example, an ordinary
     user can be granted the capability to suspend the system if the
     user is logged in locally.

     The value for this service is a ‘<polkit-configuration>’ object.

 -- Variable : 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 : 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’.

 -- Variable : udisks-service-type
     Type for the service that runs UDisks
     (https://udisks.freedesktop.org/docs/latest/), a “disk management”
     daemon that provides user interfaces with notifications and ways to
     mount/unmount disks. Programs that talk to UDisks include the
     ‘udisksctl’ command, part of UDisks, and GNOME Disks. Note that
     Udisks relies on the ‘mount’ command, so it will only be able to
     use the file-system utilities installed in the system profile. For
     example if you want to be able to mount NTFS file-systems in read
     and write fashion, you’ll need to have ‘ntfs-3g’ installed
     system-wide.

     The value for this service is a ‘<udisks-configuration>’ object.

 -- Data Type : udisks-configuration
     Data type representing the configuration for ‘udisks-service-type’.

     ‘udisks’ (default: ‘udisks’) (type: file-like)
          Package object for UDisks.

 -- Variable : gvfs-service-type
     Type for the service that provides virtual file systems for GIO
     applications, which enables support for ‘trash://’, ‘ftp://’,
     ‘sftp://’ and many other location schemas in file managers like
     Nautilus (GNOME Files) and Thunar.

     The value for this service is a ‘<gvfs-configuration>’ object.

 -- Data Type : gvfs-configuration
     Data type representing the configuration for ‘gvfs-service-type’.

     ‘gvfs’ (default: ‘gvfs’) (type: file-like)
          Package object for GVfs.

 -- Variable : 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 : sane-service-type
     This service provides access to scanners via SANE
     (http://www.sane-project.org) by installing the necessary udev
     rules and pluggable backends. It is included in ‘%desktop-services’
     (*note Services de bureaux::) and relies by default on
     ‘sane-backends’ package (see below) for hardware support.

 -- Data Type : sane-configuration
     Data type representing the configuration for SANE.

     ‘sane’ (default: ‘sane’)
          Package containing SANE library.

     ‘backends’ (default: ‘(sane-backends)’)
          List of packages with pluggable SANE backends:

             • ‘sane-backends’: The default backend collection which
               supports many recent scanners,

             • ‘sane-airscan’: A backend that enables network scanners
               supporting eSCL (Apple) or WSD, (Microsoft) protocols

             • ‘hplip’: A backend containing drivers for older
               Hewlett-Packard scanners,

             • ‘utsushi’: A backend containing drivers for older Epson
               devices.

   In order to use additional backends on a system which relies on
‘%desktop-services’, you may use ‘modify-services’ (*note
‘modify-services’: Référence de service.) as illustrated below:

     (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-configuration
             (backends (list sane-backends sane-airscan))))))

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

 -- Procédure : 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 : %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.

 -- Variable : geoclue-service-type
     Type for the service that runs the GeoClue
     (https://wiki.freedesktop.org/www/Software/GeoClue/) location
     service. This service provides a D-Bus interface to allow
     applications to request access to a user’s physical location, and
     optionally to add information to online location databases.

     The value for this service is a ‘<geoclue-configuration>’ object.

 -- Variable : iio-sensor-proxy-service-type
     Type for the service that runs IIO sensor proxy
     (https://gitlab.freedesktop.org/hadess/iio-sensor-proxy), a daemon
     that proxies low-level sensor data from Industrial I/O (IIO)
     devices into a D-Bus interface. It enables user-space applications,
     such as desktop environments like GNOME and KDE, and services like
     GeoClue, to access data from various sensors commonly found in
     devices like ultrabooks and 2-in-1s. This allows for:

        • Automatic screen rotation based on accelerometer data.
        • Ambient brightness adjustment using light sensor data.
        • Compass/direction information for location services (via
          GeoClue).

     The value for this service is a ‘<iio-sensor-proxy-configuration>’
     object.

 -- Data Type : iio-sensor-proxy-configuration
     Data type representing the configuration for
     ‘iio-sensor-proxy-service-type’.

     ‘iio-sensor-proxy’ (default: ‘iio-sensor-proxy’) (type: file-like)
          Package object of iio-sensor-proxy.

 -- Variable : 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 : gnome-keyring-service-type
     This is the type of the service that adds the GNOME Keyring
     (https://wiki.gnome.org/Projects/GnomeKeyring). Its value is a
     ‘gnome-keyring-configuration’ object (see below). Note that there
     is no need to use this service when using
     ‘gnome-desktop-service-type’, which includes it.

     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 : kwallet-service-type
     This is the type of the service that adds the KWallet keyring
     (https://invent.kde.org/plasma/kwallet-pam). Its value is a
     ‘kwallet-configuration’ object (see below). Note that, contrary to
     ‘gnome-desktop-service-type’, which includes the respective keyring
     for that service, ‘gnome-keyring-service-type’,
     ‘plasma-desktop-service-type’ does not include
     ‘kwallet-service-type’.

     This service adds the ‘kwallet-pam’ package to the system profile
     and extends PAM with entries using ‘pam_kwallet5.so’. It can unlock
     the user’s login keyring or set their password with ‘passwd’ at the
     time they log in.

 -- Data Type : kwallet-configuration
     Configuration record for the KWallet Keyring service.

     ‘keyring’ (default: ‘kwallet-pam’)
          The KWallet keyring package to use.

     ‘pam-services’
          A list of ‘(SERVICE . KIND)’ pairs denoting PAM services to
          extend, where SERVICE is the name of an existing service to
          extend and KIND is one of ‘login’ or ‘passwd’ symbols.

          If ‘login’ is given, it adds an optional ‘pam_kwallet5.so’ to
          the auth block without arguments and to the session block with
          ‘auto_start’. If ‘passwd’ is given, it adds an optional
          ‘pam_kwallet5.so’ to the password block without arguments.

          By default, it takes for value an alist associating the
          ‘"sddm"’ key with the ‘'login’ value, and the ‘"passwd"’ key
          with the ‘'passwd’ value.

 -- Variable : 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"’.

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

   (1) D-Bus (https://dbus.freedesktop.org/) is an inter-process
communication facility. Its system bus is used to allow system services
to communicate and to be notified of system-wide events.

