From 70c8b1ec300f3fe9144837988cabd83f91287cab Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Mar 2019 08:23:42 +0100 Subject: [PATCH 001/111] gnu: acpica: Update to 20190215. * gnu/packages/admin.scm (acpica): Update to 20190215. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 36a76186f6..0c3f8b486e 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1284,7 +1284,7 @@ (define-public dmidecode (define-public acpica (package (name "acpica") - (version "20180810") + (version "20190215") (source (origin (method url-fetch) (uri (string-append @@ -1292,7 +1292,7 @@ (define-public acpica version ".tar.gz")) (sha256 (base32 - "01drf32h0v1s8yd414rgc9bavb52yffrwpnbzfxd9sk1lwssr6v7")))) + "1iy2zwi8aicq0b5a0phfacvk1f9z1d89cx43adcf0qh82gb9m4wg")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) ("bison" ,bison))) From abfc114ae53ad059546ffe95a8c919c2d675af11 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Fri, 1 Mar 2019 16:25:59 +0100 Subject: [PATCH 002/111] gnu: sdl2: Add KMSDRM video backend. * gnu/packages/sdl.scm (sdl2): Add KMSDRM video backend. --- gnu/packages/sdl.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 2e125c9d23..d548db89cf 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015, 2017 Sou Bunnbu ;;; Copyright © 2015 Alex Kost ;;; Copyright © 2016, 2017 Efraim Flashner -;;; Copyright © 2017, 2018 Rutger Helling +;;; Copyright © 2017, 2018, 2019 Rutger Helling ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2019 Kei Kebreau @@ -115,7 +115,8 @@ (define-public sdl2 (arguments (substitute-keyword-arguments (package-arguments sdl) ((#:configure-flags flags) - `(append '("--disable-wayland-shared") + `(append '("--disable-wayland-shared" "--enable-video-kmsdrm" + "--disable-kmsdrm-shared") ,flags)))) (inputs ;; SDL2 needs to be built with ibus support otherwise some systems From 15f1bff4b6f3a89cb0c9cd10f8cbefdc6d9ac350 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 17 Feb 2019 20:45:44 +0100 Subject: [PATCH 003/111] nls: Update 'fr' translation of the manual. --- doc/contributing.fr.texi | 539 ++- doc/guix.fr.texi | 8326 ++++++++++++++++++++------------------ po/doc/guix-manual.fr.po | 1886 +++++---- 3 files changed, 5892 insertions(+), 4859 deletions(-) diff --git a/doc/contributing.fr.texi b/doc/contributing.fr.texi index 502de9f7f0..8900c7c704 100644 --- a/doc/contributing.fr.texi +++ b/doc/contributing.fr.texi @@ -25,6 +25,7 @@ quel nom ou pseudonyme de leur choix. * Construire depuis Git:: toujours le plus récent. * Lancer Guix avant qu'il ne soit installé:: Astuces pour les hackers. * La configuration parfaite:: Les bons outils. +* Consignes d'empaquetage:: Faire grandir la distribution. * Style de code:: Hygiène du contributeur. * Envoyer des correctifs:: Partager votre travail. @end menu @@ -99,7 +100,7 @@ valeur @code{localstatedir} utilisée par votre installation actuelle Finalement, vous devez invoquer @code{make check} pour lancer les tests (@pxref{Lancer la suite de tests}). Si quelque chose échoue, jetez un œil aux instructions d'installation (@pxref{Installation}) ou envoyez un message -à la list @email{guix-devel@@gnu.org}. +à la liste @email{guix-devel@@gnu.org}. @node Lancer Guix avant qu'il ne soit installé @@ -169,12 +170,15 @@ arborescence des source locale. @node La configuration parfaite @section La configuration parfaite -La configuration parfaite pour travailler sur Guix est simplement la -configuration parfaite pour travailler en Guile (@pxref{Using Guile in -Emacs,,, guile, Guile Reference Manual}). Tout d'abord, vous avez besoin de -mieux qu'un éditeur de texte, vous avez besoin de -@url{http://www.gnu.org/software/emacs, Emacs}, amélioré par le superbe -@url{http://nongnu.org/geiser/, Geiser}. +The Perfect Setup to hack on Guix is basically the perfect setup used for +Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference +Manual}). First, you need more than an editor, you need +@url{http://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful +@url{http://nongnu.org/geiser/, Geiser}. To set that up, run: + +@example +guix package -i emacs guile emacs-geiser +@end example Geiser permet le développement interactif et incrémental depuis Emacs : la compilation du code et son évaluation depuis les buffers, l'accès à la @@ -229,6 +233,461 @@ déclenchement @code{origin…}, qui peut aussi être étendue. L'extrait finissent sur @code{…}, qui peuvent aussi être étendues. +@node Consignes d'empaquetage +@section Consignes d'empaquetage + +@cindex paquets, création +The GNU distribution is nascent and may well lack some of your favorite +packages. This section describes how you can help make the distribution +grow. + +Les paquets de logiciels libres sont habituellement distribués sous forme +@dfn{d'archives de sources} — typiquement des fichiers @file{.tar.gz} +contenant tous les fichiers sources. Ajouter un paquet à la distribution +signifie essentiellement deux choses : ajouter une @dfn{recette} qui décrit +comment construire le paquet, avec une liste d'autres paquets requis pour le +construire, et ajouter des @dfn{métadonnées de paquet} avec la recette, +comme une description et une licence. + +Dans Guix, toutes ces informations sont incorporées dans les +@dfn{définitions de paquets}. Les définitions de paquets fournissent une +vue de haut-niveau du paquet. Elles sont écrites avec la syntaxe du langage +de programmation Scheme ; en fait, pour chaque paquet nous définissons une +variable liée à la définition et exportons cette variable à partir d'un +module (@pxref{Modules de paquets}). Cependant, il n'est @emph{pas} nécessaire +d'avoir une connaissance approfondie du Scheme pour créer des paquets. Pour +plus d'informations sur les définitions des paquets, @pxref{Définition des paquets}. + +Une fois une définition de paquet en place, stocké dans un fichier de +l'arborescence des sources de Guix, il peut être testé avec la commande +@command{guix build} (@pxref{Invoquer guix build}). Par exemple, en +supposant que le nouveau paquet s'appelle @code{gnew}, vous pouvez lancer +cette commande depuis l'arborescence de construction de Guix (@pxref{Lancer Guix avant qu'il ne soit installé}) : + +@example +./pre-inst-env guix build gnew --keep-failed +@end example + +Utiliser @code{--keep-failed} rend facile le débogage des échecs car il +fournit l'accès à l'arborescence de construction qui a échouée. Une autre +sous-commande utile pour le débogage est @code{--log-file}, pour accéder au +journal de construction. + +Si le paquet n'est pas connu de la commande @command{guix}, il se peut que +le fichier source ait une erreur de syntaxe, ou qu'il manque une clause +@code{define-public} pour exporter la variable du paquet. Pour comprendre +cela, vous pouvez charger le module depuis Guile pour avoir plus +d'informations sur la véritable erreur : + +@example +./pre-inst-env guile -c '(use-modules (gnu packages gnew))' +@end example + +Once your package builds correctly, please send us a patch +(@pxref{Envoyer des correctifs}). Well, if you need help, we will be happy to +help you too. Once the patch is committed in the Guix repository, the new +package automatically gets built on the supported platforms by +@url{http://hydra.gnu.org/jobset/gnu/master, our continuous integration +system}. + +@cindex substitution +Users can obtain the new package definition simply by running @command{guix +pull} (@pxref{Invoquer guix pull}). When @code{@value{SUBSTITUTE-SERVER}} +is done building the package, installing the package automatically downloads +binaries from there (@pxref{Substituts}). The only place where human +intervention is needed is to review and apply the patch. + + +@menu +* Liberté logiciel:: Ce que la distribution peut contenir. +* Conventions de nommage:: Qu'est-ce qu'un bon nom ? +* Numéros de version:: Lorsque le nom n'est pas suffisant. +* Synopsis et descriptions:: Aider les utilisateurs à trouver le bon + paquet. +* Modules python:: Un peu de comédie anglaise. +* Modules perl:: Petites perles. +* Paquets java:: Pause café. +* Polices de caractères:: À fond les fontes. +@end menu + +@node Liberté logiciel +@subsection Liberté logiciel + +@c =========================================================================== +@c +@c This file was generated with po4a. Translate the source file. +@c +@c =========================================================================== +@c Adapted from http://www.gnu.org/philosophy/philosophy.html. +@cindex logiciel libre +Le système d'exploitation GNU a été développé pour que les utilisateurs +puissent utiliser leur ordinateur en toute liberté. GNU est un +@dfn{logiciel libre}, ce qui signifie que les utilisateur ont les +@url{http://www.gnu.org/philosophy/free-sw.fr.html,quatre libertés +essentielles} : exécuter le programmer, étudier et modifier le programme +sous sa forme source, redistribuer des copies exactes et distribuer les +versions modifiées. Les paquets qui se trouvent dans la distribution GNU ne +fournissent que des logiciels qui respectent ces quatre libertés. + +En plus, la distribution GNU suit les +@url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,recommandations +pour les distributions systèmes libres}. Entre autres choses, ces +recommandations rejettent les microgiciels non libres, les recommandations +de logiciels non libres et discute des façon de gérer les marques et les +brevets. + +Certaines sources amont autrement parfaitement libres contiennent une petite +partie facultative qui viole les recommandations ci-dessus, par exemple car +cette partie est du code non-libre. Lorsque cela arrive, les éléments en +question sont supprimés avec des correctifs ou des bouts de codes appropriés +dans la forme @code{origin} du paquet (@pxref{Définition des paquets}). De cette +manière, @code{guix build --source} renvoie la source « libérée » plutôt que +la source amont sans modification. + + +@node Conventions de nommage +@subsection Conventions de nommage + +@cindex nom du paquet +Un paquet a en fait deux noms qui lui sont associés : d'abord il y a le nom +de la @emph{variable Scheme}, celui qui suit @code{define-public}. Par ce +nom, le paquet peut se faire connaître par le code Scheme, par exemple comme +entrée d'un autre paquet. Deuxièmement, il y a la chaîne dans le champ +@code{name} d'une définition de paquet. Ce nom est utilisé par les +commandes de gestion des paquets comme @command{guix package} et +@command{guix build}. + +Les deux sont habituellement les mêmes et correspondent à la conversion en +minuscule du nom du projet choisi en amont, où les underscores sont +remplacés par des tirets. Par exemple, GNUnet est disponible en tant que +@code{gnunet} et SDL_net en tant que @code{sdl-net}. + +Nous n'ajoutons pas de préfixe @code{lib} au bibliothèques de paquets, à +moins qu'il ne fasse partie du nom officiel du projet. Mais @pxref{Modules python} et @ref{Modules perl} pour des règles spéciales concernant les +modules pour les langages Python et Perl. + +Les noms de paquets de polices sont gérés différemment, @pxref{Polices de caractères}. + + +@node Numéros de version +@subsection Numéros de version + +@cindex version du paquet +Nous n'incluons en général que la dernière version d'un projet de logiciel +libre donné. Mais parfois, par exemple pour des versions incompatibles de +bibliothèques, deux (ou plus) versions du même paquet sont requises. Elles +ont besoin d'un nom de variable Scheme différent. Nous utilisons le nom +défini dans @ref{Conventions de nommage} pour la version la plus récente ; les +versions précédentes utilisent le même nom, suffixé par @code{-} et le plus +petit préfixe du numéro de version qui permet de distinguer deux versions. + +Le nom dans la définition du paquet est le même pour toutes les versions +d'un paquet et ne contient pas de numéro de version. + +Par exemple, les version 2.24.20 et 3.9.12 de GTK+ peuvent être inclus de +cette manière : + +@example +(define-public gtk+ + (package + (name "gtk+") + (version "3.9.12") + ...)) +(define-public gtk+-2 + (package + (name "gtk+") + (version "2.24.20") + ...)) +@end example +Si nous voulons aussi GTK+ 3.8.2, cela serait inclus de cette manière : +@example +(define-public gtk+-3.8 + (package + (name "gtk+") + (version "3.8.2") + ...)) +@end example + +@c See , +@c for a discussion of what follows. +@cindex numéro de version, pour les instantanés des systèmes de contrôle de version +Parfois, nous incluons des paquets provenant d'instantanés de systèmes de +contrôle de version (VCS) au lieu de versions publiées formellement. Cela +devrait rester exceptionnel, car c'est le rôle des développeurs amont de +spécifier quel est la version stable. Cependant, c'est parfois nécessaire. +Donc, que faut-il mettre dans le champ @code{version} ? + +Clairement, nous devons rendre l'identifiant de commit de l'instantané du +VCS visible dans la version, mais nous devons aussi nous assurer que la +version augmente de manière monotone pour que @command{guix package +--upgrade} puisse déterminer quelle version est la plus récente. Comme les +identifiants de commits, notamment avec Git, n'augmentent pas, nous ajoutons +un numéro de révision qui nous augmentons à chaque fois que nous mettons à +jour vers un nouvel instantané. La chaîne qui en résulte ressemble à cela : + +@example +2.0.11-3.cabba9e + ^ ^ ^ + | | `-- ID du commit en amont + | | + | `--- révision du paquet Guix + | +dernière version en amont +@end example + +C'est une bonne idée de tronquer les identifiants dans le champ +@code{version} à disons 7 caractères. Cela évite un problème esthétique (en +supposant que l'esthétique ait un rôle à jouer ici) et des problèmes avec +les limites de l'OS comme la longueur maximale d'un shebang (127 octets pour +le noyau Linux). Il vaut mieux utilise l'identifiant de commit complet dans +@code{origin} cependant, pour éviter les ambiguïtés. Une définition de +paquet peut ressembler à ceci : + +@example +(define my-package + (let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7") + (revision "1")) ;révision du paquet Guix + (package + (version (git-version "0.9" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://example.org/my-package.git") + (commit commit))) + (sha256 (base32 "1mbikn@dots{}")) + (file-name (git-file-name name version)))) + ;; @dots{} + ))) +@end example + +@node Synopsis et descriptions +@subsection Synopsis et descriptions + +@cindex description du paquet +@cindex résumé du paquet +Comme nous l'avons vu avant, chaque paquet dans GNU@tie{}Guix contient un +résumé et une description (@pxref{Définition des paquets}). Les résumés et les +descriptions sont importants : ce sont eux que recherche @command{guix +package --search}, et c'est une source d'informations cruciale pour aider +les utilisateurs à déterminer si un paquet donner correspond à leurs +besoins. En conséquence, les mainteneurs doivent prêter attention à leur +contenu. + +Les résumés doivent commencer par une lettre capitale et ne doit pas finir +par un point. Ils ne doivent pas commencer par « a » ou « the » (« un » ou +« le/la »), ce qui n'apporte généralement rien ; par exemple, préférez « +File-frobbing tool » (« Outil de frobage de fichier ») à « A tool that frobs +file » (« Un outil qui frobe les fichiers »). Le résumé devrait dire ce que +le paquet est — p.@: ex.@: « Utilitaire du cœur de GNU (fichier, text, +shell) » — ou ce à quoi il sert — p.@: ex.@: le résumé de grep est « Affiche +des lignes correspondant à un motif ». + +Gardez à l'esprit que le résumé doit avoir un sens pour une large audience. +Par exemple « Manipulation d'alignements au format SAM » peut avoir du sens +pour un bioinformaticien chevronné, mais n'aidera pas ou pourra perdre une +audience de non-spécialistes. C'est une bonne idée de créer un résumé qui +donne une idée du domaine d'application du paquet. Dans cet exemple, cela +donnerait « Manipulation d'alignements de séquences de nucléotides », ce qui +devrait donner une meilleure idée à l'utilisateur pour savoir si c'est ce +qu'il recherche. + +Les descriptions devraient faire entre cinq et dix lignes. Utilisez des +phrases complètes, et évitez d'utiliser des acronymes sans les introduire +d'abord. Évitez les phrases marketings comme « world-leading », « +industrial-strength » et « next-generation » et évitez les superlatifs comme +« the most advanced » — ils ne sont pas utiles pour les utilisateurs qui +cherchent un paquet et semblent même un peu suspects. À la place, essayez +d'être factuels, en mentionnant les cas d'utilisation et les +fonctionnalités. + +@cindex balisage texinfo, dans les descriptions de paquets +Les descriptions peuvent inclure du balisage Texinfo, ce qui est utile pour +introduire des ornements comme @code{@@code} ou @code{@@dfn}, des listes à +points ou des hyperliens (@pxref{Overview,,, texinfo, GNU Texinfo}). +Cependant soyez prudents lorsque vous utilisez certains symboles, par +exemple @samp{@@} et les accolades qui sont les caractères spéciaux de base +en Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}). Les +interfaces utilisateurs comme @command{guix package --show} prennent en +charge le rendu. + +Les résumés et les descriptions sont traduits par des volontaires +@uref{http://translationproject.org/domain/guix-packages.html, sur le projet +de traduction} pour que le plus d'utilisateurs possible puissent les lire +dans leur langue natale. Les interfaces utilisateurs les recherchent et les +affichent dans la langue spécifiée par le paramètre de régionalisation +actuel. + +Pour permettre à @command{xgettext} de les extraire comme des chaînes +traduisibles, les résumés et les descriptions @emph{doivent être des chaînes +litérales}. Cela signifie que vous ne pouvez pas utiliser +@code{string-append} ou @code{format} pour construire ces chaînes : + +@lisp +(package + ;; @dots{} + (synopsis "Ceci est traduisible") + (description (string-append "Ceci n'est " "*pas*" " traduisible."))) +@end lisp + +La traduction demande beaucoup de travail, donc en tant que packageur, +faîtes encore plus attention à vos résumés et descriptions car chaque +changement peut demander d'autant plus de travail de la part des +traducteurs. Pour les aider, il est possible de donner des recommandations +ou des instructions qu'ils pourront voir en insérant des commentaires +spéciaux comme ceci (@pxref{xgettext Invocation,,, gettext, GNU Gettext}) : + +@example +;; TRANSLATORS: "X11 resize-and-rotate" should not be translated. +(description "ARandR is designed to provide a simple visual front end +for the X11 resize-and-rotate (RandR) extension. @dots{}") +@end example + + +@node Modules python +@subsection Modules python + +@cindex python +Nous incluons actuellement Python 2 et Python 3, sous les noms de variables +Scheme @code{python-2} et @code{python} comme expliqué dans @ref{Numéros de version}. Pour éviter la confusion et les problèmes de noms avec d'autres +langages de programmation, il semble désirable que le nom d'un paquet pour +un module Python contienne le mot @code{python}. + +Certains modules ne sont compatibles qu'avec une version de Python, d'autres +avec les deux. Si le paquet Foo ne compile qu'avec Ptyhon 3, on le nomme +@code{python-foo} ; s'il ne compile qu'avec Python 2, on le nome +@code{python2-foo}. S'il est compatible avec les deux versions, nous créons +deux paquets avec les noms correspondant. + +If a project already contains the word @code{python}, we drop this; for +instance, the module python-dateutil is packaged under the names +@code{python-dateutil} and @code{python2-dateutil}. If the project name +starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as +described above. + +@subsubsection Spécifier les dépendances +@cindex entrées, pour les paquets Python + +Les informations de dépendances pour les paquets Python se trouvent +généralement dans l'arborescence des source du paquet, avec plus ou moins de +précision : dans le fichier @file{setup.py}, dans @file{requirements.txt} ou +dans @file{tox.ini}. + +Votre mission, lorsque vous écrivez une recette pour un paquet Python, est +de faire correspondre ces dépendances au bon type « d'entrée » +(@pxref{Référence de paquet, inputs}). Bien que l'importeur @code{pypi} fasse +du bon boulot (@pxref{Invoquer guix import}), vous devriez vérifier la liste +suivant pour déterminer où va telle dépendance. + +@itemize + +@item +Nous empaquetons Python 2 avec @code{setuptools} et @code{pip} installé +comme Python 3.4 par défaut. Ainsi, vous n'avez pas à spécifié ces +entrées. @command{guix lint} vous avertira si vous faîtes cela. + +@item +Les dépendances Python requises à l'exécutions vont dans +@code{propagated-inputs}. Elles sont typiquement définies dans le mot-clef +@code{install_requires} dans @file{setup.py} ou dans le fichier +@file{requirements.txt}. + +@item +Les paquets Python requis uniquement à la construction — p.@: ex.@: ceux +listés dans le mot-clef @code{setup_requires} de @file{setup.py} — ou +seulement pour les tests — p.@: ex.@: ceux dans @code{tests_require} — vont +dans @code{native-inputs}. La raison est qu'ils n'ont pas besoin d'être +propagés car ils ne sont pas requis à l'exécution et dans le cas d'une +compilation croisée, c'est l'entrée « native » qu'il nous faut. + +Les cadriciels de tests @code{pytest}, @code{mock} et @code{nose} sont des +exemples. Bien sûr si l'un de ces paquets est aussi requis à l'exécution, +il doit aller dans @code{propagated-inputs}. + +@item +Tout ce qui ne tombe pas dans les catégories précédentes va dans +@code{inputs}, par exemple des programmes pour des bibliothèques C requises +pour construire des paquets Python avec des extensions C. + +@item +Si un paquet Python a des dépendances facultatives (@code{extras_require}), +c'est à vous de décider de les ajouter ou non, en fonction du ratio entre +utilité et complexité (@pxref{Envoyer des correctifs, @command{guix size}}). + +@end itemize + + +@node Modules perl +@subsection Modules perl + +@cindex perl +Les programmes Perl utiles en soit sont nommés comme les autres paquets, +avec le nom amont en minuscule. Pour les paquets Perl contenant une seule +classe, nous utilisons le nom de la classe en minuscule, en remplaçant les +occurrences de @code{::} par des tirets et en préfixant le tout par +@code{perl-}. Donc la classe @code{XML::Parser} devient +@code{perl-xml-parser}. Les modules contenant plusieurs classes gardent +leur nom amont en minuscule et sont aussi préfixés par @code{perl-}. Ces +modules tendent à avoir le mot @code{perl} quelque part dans leur nom, que +nous supprimons en faveur du préfixe. Par exemple, @code{libwww-perl} +devient @code{perl-libwww}. + + +@node Paquets java +@subsection Paquets java + +@cindex java +Le programmes Java utiles en soit sont nommés comme les autres paquets, avec +le nom amont en minuscule. + +Pour éviter les confusions et les problèmes de nom avec d'autres langages de +programmation, il est désirable que le nom d'un paquet Java soit préfixé par +@code{java-}. Si un projet contient déjà le mot @code{java}, nous le +supprimons, par exemple le paquet @code{ngsjava} est empaqueté sous le nom +@code{java-ngs}. + +Pour les paquets java contenant une seul classe ou une petite hiérarchie de +classes, nous utilisons le nom de la classe en minuscule, en remplaçant les +occurrences de @code{.} par des tirets et en préfixant le tout par +@code{java-}. Donc la classe @code{apache.commons.cli} devient +@code{java-apache-commons-cli}. + + +@node Polices de caractères +@subsection Polices de caractères + +@cindex polices +Pour les polices qui n esont en général par installées par un utilisateurs +pour du traitement de texte, ou qui sont distribuées en tant que partie d'un +paquet logiciel plus gros, nous nous appuyons sur les règles générales pour +les logiciels ; par exemple, cela s'applique aux polices livrées avec le +système X.Org ou les polices qui font partie de TeX Live. + +Pour rendre plus facile la recherche par l'utilisateur, les noms des autres +paquets contenant seulement des polices sont construits ainsi, +indépendamment du nom du paquet en amont. + +Le nom d'un paquet contenant une unique famille de polices commence par +@code{font-} ; il est suivi du nom du fondeur et d'un tiret @code{-} si le +fondeur est connu, et du nom de la police, dont les espaces sont remplacés +par des tirets (et comme d'habitude, toutes les lettres majuscules sont +transformées en minuscules). Par exemple, la famille de polices Gentium de +SIL est empaqueté sous le nom @code{font-sil-gentium}. + +Pour un paquet contenant plusieurs familles de polices, le nom de la +collection est utilisée à la place du nom de la famille. Par exemple les +polices Liberation consistent en trois familles, Liberation Sans, Liberation +Serif et Liberation Mono. Elles pourraient être empaquetées séparément sous +les noms @code{font-liberation-sans} etc, mais comme elles sont distribuées +ensemble sous un nom commun, nous préférons les empaqueter ensemble en tant +que @code{font-liberation}. + +Dans le cas où plusieurs formats de la même famille ou collection sont +empaquetés séparément, une forme courte du format, préfixé d'un tiret est +ajouté au nom du paquet. Nous utilisont @code{-ttf} pour les polices +TrueType, @code{-otf} pour les polices OpenType et @code{-type1} pour les +polices Type 1 de PostScript. + + @node Style de code @section Style de code @@ -323,9 +782,8 @@ vous l'entrez. En plus, @code{paredit.vim}} peut vous aider à gérer toutes ces parenthèses. Nous demandons que toutes les procédure de premier niveau contiennent une -chaîne de documentation. Ce pré-requis peut être relâché pour les -procédures privées simples dans l'espace de nom @code{(guix build @dots{})} -cependant. +chaîne de documentation. Ce prérequis peut être relâché pour les procédures +privées simples dans l'espace de nom @code{(guix build @dots{})} cependant. Les procédures ne devraient pas avoir plus de quatre paramètres positionnés. Utilisez des paramètres par mot-clefs pour les procédures qui @@ -375,6 +833,33 @@ paquet ou du paquet modifié, et corrigez les erreurs qu'il rapporte Assurez-vous que le paquet se construise sur votre plate-forme avec @code{guix build @var{paquet}}. +@item +We recommend you also try building the package on other supported +platforms. As you may not have access to actual hardware platforms, we +recommend using the @code{qemu-binfmt-service-type} to emulate them. In +order to enable it, add the following service to the list of services in +your @code{operating-system} configuration: + +@example +(service qemu-binfmt-service-type + (qemu-binfmt-configuration + (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc" "mips64el")) + (guix-support? #t))) +@end example + +Then reconfigure your system. + +You can then build packages for different platforms by specifying the +@code{--system} option. For example, to build the "hello" package for the +armhf, aarch64, powerpc, or mips64 architectures, you would run the +following commands, respectively: +@example +guix build --system=armhf-linux --rounds=2 hello +guix build --system=aarch64-linux --rounds=2 hello +guix build --system=powerpc-linux --rounds=2 hello +guix build --system=mips64el-linux --rounds=2 hello +@end example + @item @cindex construction groupée Assurez-vous que le paquet n'utilise pas de copie groupée d'un logiciel déjà @@ -391,21 +876,18 @@ depuis un unique emplacement et qu'ils affectent tout le système, ce qu'empêchent les copies groupées. @item -Regardez le profile rapporté par @command{guix size} (@pxref{Invoquer guix size}). Cela vous permettra de remarquer des références à d'autres paquets -qui ont été retenus. Il peut aussi aider à déterminer s'il faut découper le -paquet (@pxref{Des paquets avec plusieurs résultats}) et quelle dépendance -facultative utiliser. +Take a look at the profile reported by @command{guix size} (@pxref{Invoquer guix size}). This will allow you to notice references to other packages +unwillingly retained. It may also help determine whether to split the +package (@pxref{Des paquets avec plusieurs résultats}), and which optional +dependencies should be used. In particular, avoid adding @code{texlive} as +a dependency: because of its extreme size, use @code{texlive-tiny} or +@code{texlive-union} instead. @item Pour les changements important, vérifiez que les paquets qui en dépendent (s'ils existent) ne sont pas affectés par le changement ; @code{guix refresh --list-dependant @var{paquet}} vous aidera (@pxref{Invoquer guix refresh}). -@c =========================================================================== -@c -@c This file was generated with po4a. Translate the source file. -@c -@c =========================================================================== @c See . @cindex stratégie de branche @cindex stratégie de planification des reconstructions @@ -418,7 +900,7 @@ principes : branche @code{master} (changements non-disruptifs). @item entre 300 et 1 200 paquets dépendants -branche @code{staging} (changemets non-disruptifs). Cette branche devrait +branche @code{staging} (changements non-disruptifs). Cette branche devrait être fusionnées dans @code{master} tous les 3 semaines. Les changements par thèmes (par exemple une mise à jour de la pile GNOME) peuvent aller dans une branche spécifique (disons, @code{gnome-updates}). @@ -460,15 +942,14 @@ Cela est suffisant pour trouver une classe de non-déterminisme commune, comme l'horodatage ou des sorties générées aléatoirement dans le résultat de la construction. -Une autre option consiste à utiliser @command{guix challenge} -(@pxref{Invoquer guix challenge}). Vous pouvez lancer la commande une fois -que les paquets ont été commités et construits par @code{hydra.gnu.org} pour -vérifier s'il obtient le même résultat que vous. Mieux encore : trouvez une -autre machine qui peut le construire et lancez @command{guix publish}. Puis -la machine distante est sûrement différente de la vôtre, cela peut trouver -des problèmes de non-déterminisme liés au matériel — par exemple utiliser -une extension du jeu d'instruction — ou du noyau du système d'exploitation — -par exemple se reposer sur @code{uname} ou les fichiers de @file{/proc}. +Another option is to use @command{guix challenge} (@pxref{Invoquer guix challenge}). You may run it once the package has been committed and built +by @code{@value{SUBSTITUTE-SERVER}} to check whether it obtains the same +result as you did. Better yet: Find another machine that can build it and +run @command{guix publish}. Since the remote build machine is likely +different from yours, this can catch non-determinism issues related to the +hardware---e.g., use of different instruction set extensions---or to the +operating system kernel---e.g., reliance on @code{uname} or @file{/proc} +files. @item Lorsque vous écrivez de la documentation, utilisez une formulation au genre diff --git a/doc/guix.fr.texi b/doc/guix.fr.texi index c8a01f18c6..4ef3c1a0ff 100644 --- a/doc/guix.fr.texi +++ b/doc/guix.fr.texi @@ -20,21 +20,25 @@ @set OPENPGP-SIGNING-KEY-ID 3CE464558A84FDC69DB40CFB090B11993D9AEBB5 @set KEY-SERVER pool.sks-keyservers.net +@c The official substitute server used by default. +@set SUBSTITUTE-SERVER ci.guix.fr.info + @copying -Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic -Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright -@copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, -2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* +Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 +Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* +Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, +2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 -Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018 Ricardo +Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nils Gillmann@* Copyright @copyright{} 2016, 2017, -2018 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* -Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2017, -2018 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* +2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* +Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, +2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018 +Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 @@ -62,7 +66,7 @@ Documentation License ». @direntry * Guix: (guix.fr). Gérer les logiciels installés et la configuration du système. -* guix package : (guix.fr)Invoquer guix package. Intaller, supprimer et +* 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 @@ -119,10 +123,19 @@ traduc@@traduc.org}. @menu * Introduction:: Qu'est-ce que Guix ? * Installation:: Installer Guix. +* Installation du système:: Installer le système d'exploitation complet. * Gestion de paquets:: Installation des paquets, mises à jour, etc. +* Development:: Guix-aided software development. * Interface de programmation:: Utiliser Guix en Scheme. * Utilitaires:: Commandes de gestion de paquets. -* Distribution GNU:: Des logiciels pour un système GNU convivial. +* Configuration système:: Configurer le système d'exploitation. +* Documentation:: Visualiser les manuels d'utilisateur des + logiciels. +* Installer les fichiers de débogage:: Nourrir le débogueur. +* Mises à jour de sécurité:: Déployer des correctifs de sécurité + rapidement. +* Bootstrapping:: GNU/Linux depuis zéro. +* Porter:: Cibler une autre plateforme ou un autre noyau. * Contribuer:: Nous avons besoin de votre aide ! * Remerciements:: Merci ! @@ -135,6 +148,13 @@ traduc@@traduc.org}. +Introduction + + + +* Managing Software the Guix Way:: What's special. +* Distribution GNU:: The packages and tools. + Installation @@ -159,6 +179,19 @@ Paramétrer le démon machines distantes. * Support de SELinux:: Utiliser une politique SELinux pour le démon. +Installation du système + + + +* Limitations:: Ce à quoi vous attendre. +* Considérations matérielles:: Matériel supporté. +* Installation depuis une clef USB ou un DVD:: Préparer le média + d'installation. +* Préparer l'installation:: Réseau, partitionnement, etc. +* Effectuer l'installation:: Pour de vrai. +* Installing Guix in a VM:: Guix System playground. +* Construire l'image d'installation:: D'où vient tout cela. + Gestion de paquets @@ -175,7 +208,6 @@ Gestion de paquets * Inférieurs:: Interagir avec une autre révision de Guix. * Invoquer guix describe:: Affiche des informations sur la révision Guix actuelle. -* Invoquer guix pack:: Créer des lots de logiciels. * Invoquer guix archive:: Exporter et importer des fichiers du dépôt. Substituts @@ -185,23 +217,32 @@ Substituts * Serveur de substituts officiel:: Une source particulière de substituts. * Autoriser un serveur de substituts:: Comment activer ou désactiver les substituts. -* Authentification des substituts:: Coment Guix vérifie les substituts. +* Authentification des substituts:: Comment Guix vérifie les substituts. * Paramètres de serveur mandataire:: Comment récupérer des substituts à travers un serveur mandataire. * Échec de substitution:: Qu'arrive-t-il quand la substitution échoue. * De la confiance en des binaires:: Comment pouvez-vous avoir confiance en un paquet binaire ? +Development + + + +* Invoquer guix environment:: Mettre en place des environnements de + développement. +* Invoquer guix pack:: Créer des lots de logiciels. + Interface de programmation +* Modules de paquets:: Les paquets du point de vu du programmeur. * Définition des paquets:: Définir de nouveaux paquets. * Systèmes de construction:: Spécifier comment construire les paquets. * Le dépôt:: Manipuler le dépôt de paquets. * Dérivations:: Interface de bas-niveau avec les dérivations de paquets. -* La monad du dépôt:: Interface purement fonctionnelle avec le +* La monade du dépôt:: Interface purement fonctionnelle avec le dépôt. * G-Expressions:: Manipuler les expressions de construction. * Invoquer guix repl:: S'amuser avec Guix de manière interactive. @@ -228,8 +269,6 @@ Utilitaires paquets. * Invoquer guix size:: Profiler l'utilisation du disque. * Invoquer guix graph:: Visualiser le graphe des paquets. -* Invoquer guix environment:: Mettre en place des environnements de - développement. * Invoquer guix publish:: Partager des substituts. * Invoquer guix challenge:: Défier les serveurs de substituts. * Invoquer guix copy:: Copier vers et depuis un dépôt distant. @@ -248,35 +287,6 @@ Invoquer @command{guix build} guix build ». * Débogage des échecs de construction:: La vie d'un empaqueteur. -Distribution GNU - - - -* Installation du système:: Installer le système d'exploitation complet. -* Configuration système:: Configurer le système d'exploitation. -* Documentation:: Visualiser les manuels d'utilisateur des - logiciels. -* Installer les fichiers de débogage:: Nourrir le débogueur. -* Mises à jour de sécurité:: Déployer des correctifs de sécurité - rapidement. -* Modules de paquets:: Les paquets du point de vu du programmeur. -* Consignes d'empaquetage:: Faire grandir la distribution. -* Bootstrapping:: GNU/Linux depuis zéro. -* Porter:: Cibler une autre plateforme ou un autre noyau. - -Installation du système - - - -* Limitations:: Ce à quoi vous attendre. -* Considérations matérielles:: Matériel supporté. -* Installation depuis une clef USB ou un DVD:: Préparer le média - d'installation. -* Préparer l'installation:: Réseau, partitionnement, etc. -* Effectuer l'installation:: Pour de vrai. -* Installer GuixSD dans une VM:: Jouer avec GuixSD@. -* Construire l'image d'installation:: D'où vient tout cela. - Configuration système @@ -300,8 +310,7 @@ Configuration système * Configuration du chargeur d'amorçage:: Configurer le chargeur d'amorçage. * Invoquer guix system:: Instantier une configuration du système. -* Lancer GuixSD dans une VM:: Comment lancer GuixSD dans une machine - virtuelle. +* Running Guix in a VM:: How to run Guix System in a virtual machine. * Définir des services:: Ajouter de nouvelles définitions de services. Services @@ -311,7 +320,7 @@ Services * Services de base:: Services systèmes essentiels. * Exécution de tâches planifiées:: Le service mcron. * Rotation des journaux:: Le service rottlog. -* Services réseau:: Paramétres réseau, démon SSH, etc. +* Services réseau:: Paramètres réseau, démon SSH, etc. * Système de fenêtrage X:: Affichage graphique. * Services d'impression:: Support pour les imprimantes locales et distantes. @@ -347,40 +356,6 @@ Définir des services * Référence de service:: Référence de l'API@. * Services Shepherd:: Un type de service particulier. -Consignes d'empaquetage - - - -* Liberté logiciel:: Ce que la distribution peut contenir. -* Conventions de nommage:: Qu'est-ce qu'un bon nom ? -* Numéros de version:: Lorsque le nom n'est pas suffisant. -* Synopsis et descriptions:: Aider les utilisateurs à trouver le bon - paquet. -* Modules python:: Un peu de comédie anglaise. -* Modules perl:: Petites perles. -* Paquets java:: Pause café. -* Polices de caractères:: À fond les fontes. - -Contribuer - - - -* Construire depuis Git:: toujours le plus récent. -* Lancer Guix avant qu'il ne soit installé:: Astuces pour les hackers. -* La configuration parfaite:: Les bons outils. -* Style de code:: Hygiène du contributeur. -* Envoyer des correctifs:: Partager votre travail. - -Style de code - - - -* Paradigme de programmation:: Comment composer vos éléments. -* Modules:: Où stocker votre code ? -* Types de données et reconnaissance de motif:: Implémenter des - structures de données. -* Formatage du code:: Conventions d'écriture. - @end detailmenu @end menu @@ -389,19 +364,37 @@ Style de code @chapter Introduction @cindex but -GNU Guix@footnote{« Guix » se prononce comme « geeks » (en prononçant le -« s »), ou « ɡiːks » dans l'alphabet phonétique international (API).} est un -outil de gestion de paquets pour le système GNU@. Guix facilite pour les -utilisateurs non privilégiés l'installation, la mise à jour et la -suppression de paquets, la restauration à un ensemble de paquets précédent, -la construction de paquets depuis les sources et plus généralement aide à la -création et à la maintenance d'environnements logiciels. +GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using +the international phonetic alphabet (IPA).} is a package management tool for +and distribution of the GNU system. Guix makes it easy for unprivileged +users to install, upgrade, or remove software packages, to roll back to a +previous package set, to build packages from source, and generally assists +with the creation and maintenance of software environments. + +@cindex Guix System +@cindex GuixSD, now Guix System +@cindex Guix System Distribution, now Guix System +You can install GNU@tie{}Guix on top of an existing GNU/Linux system where +it complements the available tools without interference +(@pxref{Installation}), or you can use it as a standalone operating system +distribution, @dfn{Guix@tie{}System}@footnote{We used to refer to Guix +System as ``Guix System Distribution'' or ``GuixSD''. We now consider it +makes more sense to group everything under the ``Guix'' banner since, after +all, Guix System is readily available through the @command{guix system} +command, even if you're using a different distro underneath!}. @xref{Distribution GNU}. + +@menu +* Managing Software the Guix Way:: What's special. +* Distribution GNU:: The packages and tools. +@end menu + +@node Managing Software the Guix Way +@section Managing Software the Guix Way @cindex interfaces utilisateurs -Guix fournit une interface de gestion des paquets par la ligne de commande -(@pxref{Invoquer guix package}), un ensemble d'utilitaires en ligne de -commande (@pxref{Utilitaires}) ainsi que des interfaces de programmation -Scheme (@pxref{Interface de programmation}). +Guix provides a command-line package management interface (@pxref{Gestion de paquets}), tools to help with software development (@pxref{Development}), +command-line utilities for more advanced usage, (@pxref{Utilitaires}), as well +as Scheme programming interfaces (@pxref{Interface de programmation}). @cindex démon de construction Son @dfn{démon de construction} est responsable de la construction des paquets pour les utilisateurs (@pxref{Paramétrer le démon}) et du @@ -419,17 +412,6 @@ indépendants (@pxref{Modules de paquets}). Il est aussi définitions de paquets spécialisées à partir de définitions existantes, même depuis la ligne de commande (@pxref{Options de transformation de paquets}). -@cindex Distribution Système Guix -@cindex GuixSD -Vous pouvez installer GNU@tie{}Guix sur un système GNU/Linux existant pour -compléter les outils disponibles sans interférence (@pxref{Installation}) ou -vous pouvez l'utiliser à travers la @dfn{Distribution Système Guix} ou -GuixSD (@pxref{Distribution GNU}) distincte. Avec GNU@tie{}GuixSD, vous -@emph{déclarez} tous les aspects de la configuration du système -d'exploitation et Guix s'occupe de créer la configuration d'une manière -transactionnelle, reproductible et sans état (@pxref{Configuration -système}). - @cindex gestion de paquet fonctionnelle @cindex isolation Sous le capot, Guix implémente la discipline de @dfn{gestion de paquet @@ -463,34 +445,112 @@ transactionnels, l'installation différenciée par utilisateur et le ramassage de miettes pour les paquets (@pxref{Fonctionnalités}). +@node Distribution GNU +@section Distribution GNU + +@cindex Guix System +Guix comes with a distribution of the GNU system consisting entirely of free +software@footnote{The term ``free'' here refers to the +@url{http://www.gnu.org/philosophy/free-sw.html,freedom provided to users of +that software}.}. The distribution can be installed on its own +(@pxref{Installation du système}), but it is also possible to install Guix as a +package manager on top of an installed GNU/Linux system +(@pxref{Installation}). When we need to distinguish between the two, we +refer to the standalone distribution as Guix@tie{}System. + +la distribution fournit les paquets cœur de GNU comme la GNU libc, GCC et +Binutils, ainsi que de nombreuses applications GNU et non-GNU. La liste +complète des paquets disponibles se trouve +@url{http://www.gnu.org/software/guix/packages,en ligne} ou en lançant +@command{guix package} (@pxref{Invoquer guix package}) : + +@example +guix package --list-available +@end example + +Notre but est de fournir une distribution logicielle entièrement libre de +GNU/Linux et d'autres variantes de GNU, en se concentrant sur la promotion +et l'intégration étroite des composants GNU en insistant sur les programmes +et les outils qui aident l'utilisateur à exercer ses libertés. + +Les paquets sont actuellement disponibles pour les plateformes suivantes : + +@table @code + +@item x86_64-linux +l'architecture Intel et AMD @code{x86_64} avec le noyau Linux-libre ; + +@item i686-linux +l'architecture Intel 32-bits (IA32) avec le noyau Linux-libre ; + +@item armhf-linux +l'architecture ARMv7-A avec gestion des flottants matérielle, Thumb-2 et +NEON, avec l'interface binaire applicative (ABI) EABI hard-float et le noyau +Linux-libre ; + +@item aarch64-linux +les processeurs ARMv8-A 64-bits en little-endian avec le noyau Linux-libre. +Le support est actuellement expérimental et limité. @xref{Contribuer}, +pour savoir comment aider ! + +@item mips64el-linux +les processeurs MIPS 64-bits little-endian, spécifiquement la série +Loongson, ABI n32, avec le noyau Linux-libre. + +@end table + +With Guix@tie{}System, you @emph{declare} all aspects of the operating +system configuration and Guix takes care of instantiating the configuration +in a transactional, reproducible, and stateless fashion (@pxref{Configuration système}). Guix System uses the Linux-libre kernel, the Shepherd +initialization system (@pxref{Introduction,,, shepherd, The GNU Shepherd +Manual}), the well-known GNU utilities and tool chain, as well as the +graphical environment or system services of your choice. + +Guix System is available on all the above platforms except +@code{mips64el-linux}. + +@noindent +Pour des informations sur comment porter vers d'autres architectures et +d'autres noyau, @pxref{Porter}. + +La construction de cette distribution est un effort collaboratif et nous +vous invitons à nous rejoindre ! @xref{Contribuer}, pour des informations +sur la manière de nous aider. + + @c ********************************************************************* @node Installation @chapter Installation @cindex installer Guix -@cindex site officiel -GNU Guix est disponible au téléchargement depuis son site web sur -@url{http://www.gnu.org/software/guix/}. Cette section décrit les -pré-requis logiciels de Guix ainsi que la manière de l'installer et de se -préparer à l'utiliser. -Remarquez que cette section concerne l'installation du gestionnaire de -paquet, ce qui se fait sur un système GNU/Linux en cours d'exécution. Si -vous souhaitez plutôt installer le système d'exploitation GNU complet, -@pxref{Installation du système}. +@quotation Remarque +We recommend the use of this +@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, +shell installer script} to install Guix on top of a running GNU/Linux +system, thereafter called a @dfn{foreign distro}.@footnote{This section is +concerned with the installation of the package manager, which can be done on +top of a running GNU/Linux system. If, instead, you want to install the +complete GNU operating system, @pxref{Installation du système}.} The script +automates the download, installation, and initial configuration of Guix. It +should be run as the root user. +@end quotation @cindex distro extérieure @cindex répertoires liés aux distro extérieures - -Lorsqu'il est installé sur un système GNU/Linux existant — ci-après nommé -@dfn{distro extérieure} — GNU@tie{}Guix complète les outils disponibles sans -interférence. Ses données se trouvent exclusivement dans deux répertoires, -typiquement @file{/gnu/store} et @file{/var/guix} ; les autres fichiers de -votre système comme @file{/etc} sont laissés intacts. +When installed on a foreign distro, GNU@tie{}Guix complements the available +tools without interference. Its data lives exclusively in two directories, +usually @file{/gnu/store} and @file{/var/guix}; other files on your system, +such as @file{/etc}, are left untouched. Une fois installé, Guix peut être mis à jour en lançant @command{guix pull} (@pxref{Invoquer guix pull}). +If you prefer to perform the installation steps manually or want to tweak +them, you may find the following subsections useful. They describe the +software requirements of Guix, as well as how to install it manually and get +ready to use it. + @menu * Installation binaire:: Commencer à utiliser Guix en un rien de temps ! @@ -508,18 +568,12 @@ Une fois installé, Guix peut être mis à jour en lançant @command{guix pull} @cindex installer Guix depuis les binaires @cindex script d'installation -Cette section décrit comment intaller Guix sur un système quelconque depuis +Cette section décrit comment installer Guix sur un système quelconque depuis un archive autonome qui fournit les binaires pour Guix et toutes ses dépendances. C'est souvent plus rapide que d'installer depuis les sources, -ce qui est décrit dans les sections suivantes. Le seul pré-requis est +ce qui est décrit dans les sections suivantes. Le seul prérequis est d'avoir GNU@tie{}tar et Xz. -Nous fournissons un script -@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, -script d'intallation shell} qui automatise le téléchargement, l'installation -et la configuration initiale de Guix. Il devrait être lancé en tant -qu'utilisateur root. - L'installation se comme ceci : @enumerate @@ -564,7 +618,7 @@ tant que @code{root}, lancez : @end example Cela crée @file{/gnu/store} (@pxref{Le dépôt}) and @file{/var/guix}. Ce -deuxième dossier contient un profil pret à être utilisé pour @code{root} +deuxième dossier contient un profil prêt à être utilisé pour @code{root} (voir les étapes suivantes). Ne décompressez @emph{pas} l'archive sur un système Guix lancé car cela @@ -664,12 +718,12 @@ changer le chemin de recherche de Info). @item @cindex substituts, autorisations -Pour utiliser les substituts de @code{hydra.gnu.org} ou l'un de ses mirroirs -(@pxref{Substituts}), autorisez-les : +To use substitutes from @code{@value{SUBSTITUTE-SERVER}} or one of its +mirrors (@pxref{Substituts}), authorize them: @example # guix archive --authorize < \ - ~root/.config/guix/current/share/guix/hydra.gnu.org.pub + ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub @end example @item @@ -694,7 +748,7 @@ retrouveriez gravement handicapé par l'absence de la commande @code{guix package -r guix}. L'archive d'installation binaire peut être (re)produite et vérifiée -simplement en lançaint la commande suivante dans l'arborescence des sources +simplement en lançant la commande suivante dans l'arborescence des sources de Guix : @example @@ -714,17 +768,20 @@ guix pack -s @var{system} --localstatedir \ @node Prérequis @section Prérequis -Cette section dresse la liste des pré-requis pour la construction de Guix +Cette section dresse la liste des prérequis pour la construction de Guix depuis les sources. La procédure de construction pour Guix est la même que pour les autres logiciels GNU, et n'est pas expliquée ici. Regardez les fichiers @file{README} et @file{INSTALL} dans l'arborescence des sources de Guix pour plus de détails. +@cindex site officiel +GNU Guix is available for download from its website at +@url{https://www.gnu.org/software/guix/}. + GNU Guix dépend des paquets suivants : @itemize -@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 ou -supérieure, dont 2.2.x, +@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.2.x; @item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version 0.1.0 ou supérieure, @item @@ -738,6 +795,7 @@ version 0.1.0 ou supérieure, @c FIXME: Specify a version number once a release has been made. @uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, d'août 2017 ou ultérieur, +@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}; @item @url{http://zlib.net, zlib}, @item @url{http://www.gnu.org/software/make/, GNU Make}. @end itemize @@ -745,18 +803,12 @@ ultérieur, Les dépendances suivantes sont facultatives : @itemize -@item -Installer @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} -vous permettra d'utiliser la commande @command{guix import pypi} -(@pxref{Invoquer guix import}). Il est surtout utile pour les développeurs -et pas pour les utilisateurs occasionnels. - @item @c Note: We need at least 0.10.2 for 'channel-send-eof'. Le support pour la décharge de construction (@pxref{Réglages du délestage du démon}) et @command{guix copy} (@pxref{Invoquer guix copy}) dépend de @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version -0.10.2 ou ulltérieure. +0.10.2 ou ultérieure. @item Lorsque @url{http://www.bzip.org, libbz2} est disponible, @@ -828,7 +880,7 @@ make check TESTS="tests/store.scm tests/cpio.scm" Par défaut, les résultats des tests sont affichés au niveau du fichier. Pour voir les détails de chaque cas de test individuel, il est possible de -définire la variable makefile @code{SCM_LOG_DRIVER_FLAGS} comme dans cet +définir la variable makefile @code{SCM_LOG_DRIVER_FLAGS} comme dans cet exemple : @example @@ -840,9 +892,9 @@ le fichier @file{test-suite.log}. Précisez la version de Guix utilisée ainsi que les numéros de version de ses dépendances (@pxref{Prérequis}) dans votre message. -Guix possède aussi une suite de tests de systèmes complets qui test des -instances complètes du système d'exploitation GuixSD@. Elle ne peut être -lancée qui sur un système où Guix est déjà installé, avec : +Guix also comes with a whole-system test suite that tests complete Guix +System instances. It can only run on systems where Guix is already +installed, using: @example make check-system @@ -1156,13 +1208,11 @@ les machines de construction correspondantes. @end table @end deftp -La commande @code{guile} doit être dans le chemin de recherche des machines -de construction. En plus, les modules Guix doivent se trouver dans -@code{$GUILE_LOAD_PATH} sur la machine de construction. Vous pouvez -vérifier si c'est le cas en lançant : +The @command{guix} command must be in the search path on the build +machines. You can check whether this is the case by running: @example -ssh build-machine guile -c "'(use-modules (guix config))'" +ssh build-machine guix repl --version @end example Il reste une dernière chose à faire maintenant que @file{machines.scm} est @@ -1238,11 +1288,11 @@ cette commande sur le nœud principal : @cindex SELinux, politique du démon @cindex contrôle d'accès obligatoire, SELinux @cindex sécurité, guix-daemon -Guix inclus un fichier de politique SELniux dans @file{etc/guix-daemon.cil} -qui peut être installé sur un système où SELinux est activé pour que les -fichiers Guix soient étiquetés et pour spécifier le comportement attendu du -démon. Comme GuixSD ne fournit pas de politique SELniux de base, la -politique du démon ne peut pas être utilisée sur GuixSD@. +Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that can +be installed on a system where SELinux is enabled, in order to label Guix +files and to specify the expected behavior of the daemon. Since Guix System +does not provide an SELinux base policy, the daemon policy cannot be used on +Guix System. @subsubsection Installer la politique SELinux @cindex SELinux, installation de la politique @@ -1270,7 +1320,7 @@ permet toutes les opérations nécessaires. @subsubsection Limitations @cindex SELinux, limites -La politique n'et pas parfaite. Voici une liste de limitations et de +La politique n'est pas parfaite. Voici une liste de limitations et de bizarreries qui vous devriez prendre en compte avant de déployer la politique SELinux fournie pour le démon Guix. @@ -1389,10 +1439,9 @@ distante @code{set-build-options} (@pxref{Le dépôt}). @item --substitute-urls=@var{urls} @anchor{daemon-substitute-urls} -Considèrer @var{urls} comme la liste séparée par des espaces des URL des -sources de substituts par défaut. Lorsque cette option est omise, -@indicateurl{https://mirror.hydra.gnu.org https://hydra.gnu.org} est utilisé -(@code{mirror.hydra.gnu.org} est un mirroire de @code{hydra.gnu.org}). +Consider @var{urls} the default whitespace-separated list of substitute +source URLs. When this option is omitted, +@indicateurl{https://@value{SUBSTITUTE-SERVER}} is used. Cela signifie que les substituts sont téléchargés depuis les @var{urls}, tant qu'ils sont signés par une signature de confiance (@pxref{Substituts}). @@ -1458,7 +1507,7 @@ si les résultats de construction consécutifs ne sont pas identiques bit-à-bit. Remarquez que ce paramètre peut être modifié par les clients comme @command{guix build} (@pxref{Invoquer guix build}). -Lorsqu'utilisé avec @option{--keep-failed}, la sourtie différente est gardée +Lorsqu'utilisé avec @option{--keep-failed}, la sortie différente est gardée dans le dépôt sous @file{/gnu/store/@dots{}-check}. Cela rend plus facile l'étude des différences entre les deux résultats. @@ -1603,15 +1652,14 @@ connexions sur le socket Unix-domain situé à @section Réglages applicatifs @cindex distro extérieure -Lorsque vous utilisez Guix par dessus une distribution GNU/Linux différente -de GuixSD — ce qu'on appelle une @dfn{distro externe} — quelques étapes -supplémentaires sont requises pour que tout soit en place. En voici -certaines. +When using Guix on top of GNU/Linux distribution other than Guix System---a +so-called @dfn{foreign distro}---a few additional steps are needed to get +everything in place. Here are some of them. @subsection Régionalisation @anchor{locales-and-locpath} -@cindex régionalisation, en dehors de GuixSD +@cindex locales, when not on Guix System @vindex LOCPATH @vindex GUIX_LOCPATH Les paquets installés @i{via} Guix n'utiliseront pas les données de @@ -1686,12 +1734,13 @@ GNU C Reference Manual}) Lorsqu'ils essayent d'effectuer une résolution de nom — par exemple en appelant la fonction @code{getaddrinfo} en C — les applications essayent d'abord de se connecter au nscd ; en cas de réussite, nscd effectue la -résolution de nom pour eux. Si le nscd ne tourne pas, alors ils effectue la -résolution eux-même, en changeant les service de résolution dans leur propre -espace d'adressage et en le lançant. Ce services de résolution de noms — -les fichiers @file{libnns_*.so} — sont @code{dlopen}és mais ils peuvent -provenir de la bibliothèque C du système, plutôt que de la bibliothèque C à -laquelle l'application est liée (la bibliothèque C de Guix). +résolution de nom pour eux. Si le nscd ne tourne pas, alors ils effectuent +la résolution eux-mêmes, en changeant les service de résolution dans leur +propre espace d'adressage et en le lançant. Ce services de résolution de +noms — les fichiers @file{libnns_*.so} — sont @code{dlopen}és mais ils +peuvent provenir de la bibliothèque C du système, plutôt que de la +bibliothèque C à laquelle l'application est liée (la bibliothèque C de +Guix). Et c'est là que se trouve le problème : si votre application est liée à la bibliothèque C de Guix (disons, glibc-2.24) et essaye de charger les @@ -1728,7 +1777,7 @@ guix package -i font-adobe-source-han-sans:cn @cindex @code{xterm} Les vieux programmes comme @command{xterm} n'utilisent pas fontconfig et s'appuient sur le rendu du côté du serveur. Ces programmes ont besoin de -spécifier le nom complet de la police en utlisant XLFD (X Logical Font +spécifier le nom complet de la police en utilisant XLFD (X Logical Font Description), comme ceci : @example @@ -1786,7 +1835,7 @@ The GNU Emacs Manual}). Par défaut, Emacs (installé avec Guix) « sait » où ces paquets ce trouvent, donc vous n'avez pas besoin de le configurer. Si, pour quelque raison que ce soit, vous souhaitez éviter de charger automatiquement les paquets Emacs -installés avec Guix, vous pouvez le faire en lançaint Emacs avec l'option +installés avec Guix, vous pouvez le faire en lançant Emacs avec l'option @code{--no-site-file} (@pxref{Init File,,, emacs, The GNU Emacs Manual}). @subsection La chaîne d'outils GCC @@ -1802,20 +1851,693 @@ lui-même, la bibliothèque C de GNU (les en-têtes et les binaires, plus les symboles de débogage dans la sortie @code{debug}), Binutils et une enveloppe pour l'éditeur de liens. -@cindex tentative d'utiliser une bibliothèque impure, message d'erreur - -Le rôle de l'enveloppe est d'inspecter les paramètres @code{-L} et @code{-l} -passés à l'éditeur de liens, d'ajouter des arguments @code{-rpath} -correspondants et d'invoquer le véritable éditeur de liens avec ce nouvel -ensemble d'arguments. Par défaut, l'enveloppe refuse de lier des -bibliothèques en dehors du dépôt pour assure la « pureté ». Cela peut être -embêtant lorsque vous utilisez la chaîne d'outils pour lier des -bibliothèques locales. Pour permettre des références à des bibliothèques en -dehors du dépôt, vous devrez définir la variable d'environnement -@code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES}. +The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches +passed to the linker, add corresponding @code{-rpath} arguments, and invoke +the actual linker with this new set of arguments. You can instruct the +wrapper to refuse to link against libraries not in the store by setting the +@code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}. @c TODO What else? +@c ********************************************************************* +@node Installation du système +@chapter Installation du système + +@cindex installing Guix System +@cindex Guix System, installation +This section explains how to install Guix System on a machine. Guix, as a +package manager, can also be installed on top of a running GNU/Linux system, +@pxref{Installation}. + +@ifinfo +@quotation Remarque +@c This paragraph is for people reading this from tty2 of the +@c installation image. +Vous lisez cette documentation avec un lecteur Info. Pour des détails sur +son utilisation, appuyez sur la touche @key{ENTRÉE} (« Entrée » ou « à la +ligne ») sur le lien suivant : @pxref{Top, Info reader,, info-stnd, +Stand-alone GNU Info}. Appuyez ensuite sur @kbd{l} pour revenir ici. + +Autrement, lancez @command{info info} dans un autre tty pour garder ce +manuel ouvert. +@end quotation +@end ifinfo + +@menu +* Limitations:: Ce à quoi vous attendre. +* Considérations matérielles:: Matériel supporté. +* Installation depuis une clef USB ou un DVD:: Préparer le média + d'installation. +* Préparer l'installation:: Réseau, partitionnement, etc. +* Effectuer l'installation:: Pour de vrai. +* Installing Guix in a VM:: Guix System playground. +* Construire l'image d'installation:: D'où vient tout cela. +@end menu + +@node Limitations +@section Limitations + +As of version @value{VERSION}, Guix System is not production-ready. It may +contain bugs and lack important features. Thus, if you are looking for a +stable production system that respects your freedom as a computer user, a +good solution at this point is to consider +@url{http://www.gnu.org/distros/free-distros.html, one of the more +established GNU/Linux distributions}. We hope you can soon switch to the +Guix System without fear, of course. In the meantime, you can also keep +using your distribution and try out the package manager on top of it +(@pxref{Installation}). + +Avant de procéder à l'installation, soyez conscient de ces limitations les +plus importantes qui s'appliquent à la version @value{VERSION} : + +@itemize +@item +Le procédé d'installation n'a pas d'interface utilisateur graphique et +requiert une certaine familiarité avec GNU/Linux (voir les sous-sections +suivantes pour avoir un aperçu de ce que cela signifie). + +@item +LVM (gestionnaire de volumes logiques) n'est pas supporté. + +@item +De plus en plus de services systèmes sont fournis (@pxref{Services}) mais +certains manquent toujours cruellement. + +@item +More than 8,500 packages are available, but you might occasionally find that +a useful package is missing. + +@item +GNOME, Xfce, LXDE et Enlightenment sont disponibles (@pxref{Services de bureaux}), ainsi qu'un certain nombre de gestionnaires de fenêtres X11. +cependant, certaines applications graphiques peuvent manquer, ainsi que KDE. +@end itemize + +Vous êtes avertis ! Mais plus qu'un avertissement, c'est une invitation à +rapporter les problèmes (et vos succès !) et à nous rejoindre pour améliorer +la distribution. @xref{Contribuer}, pour plus d'info. + + +@node Considérations matérielles +@section Considérations matérielles + +@cindex hardware support on Guix System +GNU@tie{}Guix focuses on respecting the user's computing freedom. It builds +around the kernel Linux-libre, which means that only hardware for which free +software drivers and firmware exist is supported. Nowadays, a wide range of +off-the-shelf hardware is supported on GNU/Linux-libre---from keyboards to +graphics cards to scanners and Ethernet controllers. Unfortunately, there +are still areas where hardware vendors deny users control over their own +computing, and such hardware is not supported on Guix System. + +@cindex WiFi, support matériel +One of the main areas where free drivers or firmware are lacking is WiFi +devices. WiFi devices known to work include those using Atheros chips +(AR9271 and AR7010), which corresponds to the @code{ath9k} Linux-libre +driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core +Revision 5), which corresponds to the @code{b43-open} Linux-libre driver. +Free firmware exists for both and is available out-of-the-box on Guix +System, as part of @var{%base-firmware} (@pxref{Référence de système d'exploitation, +@code{firmware}}). + +@cindex RYF, Respects Your Freedom +La @uref{https://www.fsf.org/, Free Software Foundation} a un programme de +certification nommé @uref{https://www.fsf.org/ryf, @dfn{Respects Your +Freedom}} (RYF), pour les produits matériels qui respectent votre liberté et +votre vie privée en s'assurant que vous avez le contrôle sur l'appareil. +Nous vous encourageons à vérifier la liste des appareils certifiés par RYF. + +Une autre ressource utile est le site web @uref{https://www.h-node.org/, +H-Node}. Il contient un catalogue d'appareils avec des informations sur +leur support dans GNU/Linux. + + +@node Installation depuis une clef USB ou un DVD +@section Installation depuis une clef USB ou un DVD + +Une image d'installation ISO-9660 téléchargeable depuis +@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{système}.iso.xz} +peut être écrite sur une clef USB ou gravée sur un DVD, où @var{système} est +l'une de ces valeurs : + +@table @code +@item x86_64-linux +pour un système GNU/Linux sur un CPU compatible Intel/AMD 64-bits ; + +@item i686-linux +pour un système GNU/Linux sur un CPU compatible Intel 32-bits ; +@end table + +@c start duplication of authentication part from ``Binary Installation'' +Assurez-vous de télécharger les fichiers @file{.sig} associés et de vérifier +l'authenticité de l'image avec, de cette manière : + +@example +$ wget https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig +$ gpg --verify guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig +@end example + +Si cette commande échoue parce que vous n'avez pas la clef publique requise, +lancez cette commande pour l'importer : + +@example +$ gpg --keyserver @value{KEY-SERVER} \ + --recv-keys @value{OPENPGP-SIGNING-KEY-ID} +@end example + +@noindent +@c end duplication +et relancez la commande @code{gpg --verify}. + +Cette image contient les outils nécessaires à l'installation. Elle est +faite pour être copiée @emph{telle quelle} sur une clef USB assez grosse ou +un DVD. + +@unnumberedsubsec Copie sur une clef USB + +Pour copier l'image sur une clef USB, suivez ces étapes : + +@enumerate +@item +Décompressez l'image avec la commande @command{xz} : + +@example +xz -d guixsd-install-@value{VERSION}.@var{système}.iso.xz +@end example + +@item +Insérez la clef USB de 1@tie{}Gio ou plus dans votre machine et déterminez +son nom d'appareil. En supposant que la clef usb est connue sous le nom de +@file{/dev/sdX}, copiez l'image avec : + +@example +dd if=guixsd-install-@value{VERSION}.@var{system}.iso of=/dev/sdX +sync +@end example + +Accéder à @file{/dev/sdX} requiert généralement les privilèges +super-utilisateur. +@end enumerate + +@unnumberedsubsec Graver sur un DVD + +Pour copier l'image sur un DVD, suivez ces étapes : + +@enumerate +@item +Décompressez l'image avec la commande @command{xz} : + +@example +xz -d guixsd-install-@value{VERSION}.@var{système}.iso.xz +@end example + +@item +Insérez un DVD vierge dans votre machine et déterminez son nom d'appareil. +En supposant que le DVD soit connu sont le nom de @file{/dev/srX}, copiez +l'image avec : + +@example +growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.@var{system}.iso +@end example + +Accéder à @file{/dev/srX} requiert généralement les privilèges +super-utilisateur. +@end enumerate + +@unnumberedsubsec Démarrage + +Une fois que c'est fait, vous devriez pouvoir redémarrer le système et +démarrer depuis la clef USB ou le DVD. Pour cela, vous devrez généralement +entrer dans le menu de démarrage BIOS ou UEFI, où vous pourrez choisir de +démarrer sur la clef USB. + +@xref{Installing Guix in a VM}, if, instead, you would like to install Guix +System in a virtual machine (VM). + + +@node Préparer l'installation +@section Préparer l'installation + +Once you have successfully booted your computer using the installation +medium, you should end up with the welcome page of the graphical installer. +The graphical installer is a text-based user interface built upon the newt +library. It shall guide you through all the different steps needed to +install GNU@tie{}Guix System. However, as the graphical installer is still +under heavy development, you might want to fallback to the original, shell +based install process, by switching to TTYs 3 to 6 with the shortcuts +CTRL-ALT-F[3-6]. The following sections describe the installation procedure +assuming you're using one of those TTYs. They are configured and can be used +to run commands as root. + +TTY2 shows this documentation, browsable using the Info reader commands +(@pxref{Top,,, info-stnd, Stand-alone GNU Info}). The installation system +runs the GPM mouse daemon, which allows you to select text with the left +mouse button and to paste it with the middle button. + +@quotation Remarque +L'installation nécessite un accès au réseau pour que les dépendances +manquantes de votre configuration système puissent être téléchargées. Voyez +la section « réseau » plus bas. +@end quotation + +The installation system includes many common tools needed for this task. +But it is also a full-blown Guix System, which means that you can install +additional packages, should you need it, using @command{guix package} +(@pxref{Invoquer guix package}). + +@subsection Disposition du clavier + +@cindex disposition du clavier +L'image d'installation utilise la disposition clavier qwerty (US). Si vous +voulez la changer, vous pouvez utiliser la commande @command{loadkeys}. Par +exemple, la commande suivante sélectionne la disposition Dvorak : + +@example +loadkeys dvorak +@end example + +Consultez les fichiers dans @file{/run/current-system/profile/share/keymaps} +pour trouver une liste des dispositions disponibles. Lancez @command{man +loadkey} pour plus d'informations. + +@subsection Réseau + +Lancez la commande suivante pour voir comment vos interfaces réseau sont +appelées : + +@example +ifconfig -a +@end example + +@noindent +@dots{} ou, avec la commande spécifique à GNU/Linux @command{ip} : + +@example +ip a +@end example + +@c http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20 +Les interfaces filaires ont un nom qui commence par @samp{e} ; par exemple, +l'interface qui correspond au premier contrôleur Ethernet sur la carte mère +est appelé @samp{eno1}. Les interfaces sans-fil ont un nom qui commence par +@samp{w}, comme @samp{w1p2s0}. + +@table @asis +@item Connexion filaire +Pour configure une connexion filaire, lancez la commande suivante, en +remplaçant @var{interface} par le nom de l'interface filaire que vous voulez +utiliser. + +@example +ifconfig @var{interface} up +@end example + +@item Connexion sans-fil +@cindex sans-fil +@cindex WiFi +Pour configurer le réseau sans-fil, vous pouvez créer un fichier de +configuration pour l'outil de configuration @command{wpa_supplicant} (son +emplacement importe peu) avec l'un des éditeurs de texte disponibles comme +@command{nano} : + +@example +nano wpa_supplicant.conf +@end example + +Par exemple, la déclaration qui suit peut aller dans ce fichier et +fonctionnera pour plusieurs réseaux sans-fil, si vous donnez le vrai SSID et +la phrase de passe pour le réseau auquel vous vous connectez : + +@example +network=@{ + ssid="@var{mon-ssid}" + key_mgmt=WPA-PSK + psk="la phrase de passe secrète du réseau" +@} +@end example + +Démarrez le service sans-fil et lancez-le en tache de fond avec la commande +suivante (en remplaçant @var{interface} par le nom de l'interface réseau que +vous voulez utiliser) : + +@example +wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B +@end example + +Lancez @command{man wpa_supplicant} pour plus d'informations. +@end table + +@cindex DHCP +À partir de ce moment, vous avez besoin d'une adresse IP. Sur les réseaux +où les IP sont automatiquement attribuée par DHCP, vous pouvez lancer : + +@example +dhclient -v @var{interface} +@end example + +Essayez de pinger un serveur pour voir si le réseau fonctionne : + +@example +ping -c 3 gnu.org +@end example + +Mettre en place un accès réseau est presque toujours une nécessité parce que +l'image ne contient pas tous les logiciels et les outils dont vous pourriez +avoir besoin. + +@cindex installer par SSH +Si vous le souhaitez, vous pouvez continuer l'installation à distance en +démarrant un serveur SSH : + +@example +herd start ssh-daemon +@end example + +Assurez-vous soit de définir un mot de passe avec @command{passwd}, soit de +configurer l'authentification par clef OpenSSH avant de vous connecter. + +@subsection Partitionnement + +À moins que vous ne l'ayez déjà fait, l'étape suivante consiste à +partitionner le disque puis à formater les partitions cibles. + +L'image d'installation inclus plusieurs outils de partitionnement, dont +Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), +@command{fdisk}, et @command{cfdisk}. Lancez-en un et paramétrez votre +disque avec le partitionnement qui vous convient : + +@example +cfdisk +@end example + +Si votre disque utilise le format des tables de partitions GUID (GPT) et que +vous souhaitez installer un GRUB pour système BIOS (c'est le cas par +défaut), assurez-vous de créer qu'une partition de démarrage BIOS soit bien +disponible (@pxref{BIOS installation,,, grub, GNU GRUB manual}). + +@cindex EFI, installation +@cindex UEFI, installation +@cindex ESP, partition système EFI +If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System +Partition} (ESP) is required. This partition can be mounted at +@file{/boot/efi} for instance and must have the @code{esp} flag set. E.g., +for @command{parted}: + +@example +parted /dev/sda set 1 esp on +@end example + +@quotation Remarque +@vindex grub-bootloader +@vindex grub-efi-bootloader +Vous n'êtes pas sûr de savoir si vous devez utiliser un GRUB EFI ou BIOS ? +Si le répertoire @file{/sys/firmware/efi} existe sur l'image d'installation, +vous devriez probablement effectuer une installation EFI, avec +@code{grub-efi-bootloader}. Sinon, vous devriez utiliser le GRUB en BIOS, +@code{grub-bootloader}. @xref{Configuration du chargeur d'amorçage} pour plus +d'information sur le chargeur d'amorçage. +@end quotation + +Once you are done partitioning the target hard disk drive, you have to +create a file system on the relevant partition(s)@footnote{Currently Guix +System only supports ext4 and btrfs file systems. In particular, code that +reads file system UUIDs and labels only works for these file system +types.}. For the ESP, if you have one and assuming it is @file{/dev/sda1}, +run: + +@example +mkfs.fat -F32 /dev/sda1 +@end example + +Préférez assigner une étiquette au système de fichier pour que vous puissiez +vous y référer de manière fiable dans la déclaration @code{file-system} +(@pxref{Systèmes de fichiers}). On le fait habituellement avec l'option @code{-L} +de @command{mkfs.ext4} et des commandes liées. Donc, en supposant que la +partition racine soit sur @file{/dev/sda2}, on peut créer un système de +fichier avec pour étiquette @code{my-root} avec : + +@example +mkfs.ext4 -L my-root /dev/sda2 +@end example + +@cindex chiffrement du disque +Si vous voulez plutôt chiffrer la partition racine, vous pouvez utiliser les +utilitaires Cryptsetup et LUKS pour cela (voir @inlinefmtifelse{html, +@uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, +@code{man cryptsetup}} pour plus d'informations). En supposant que vous +voulez stocker la partition racine sur @file{/dev/sda2}, la séquence de +commandes suivante vous mènerait à ce résultat : + +@example +cryptsetup luksFormat /dev/sda2 +cryptsetup open --type luks /dev/sda2 my-partition +mkfs.ext4 -L my-root /dev/mapper/my-partition +@end example + +Une fois cela effectué, montez le système de fichier cible dans @file{/mnt} +avec une commande comme (de nouveau, en supposant que @code{my-root} est +l'étiquette du système de fichiers racine) : + +@example +mount LABEL=my-root /mnt +@end example + +Also mount any other file systems you would like to use on the target system +relative to this path. If you have opted for @file{/boot/efi} as an EFI +mount point for example, mount it at @file{/mnt/boot/efi} now so it is found +by @code{guix system init} afterwards. + +Enfin, si vous souhaitez utiliser une ou plusieurs partitions de swap +(@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference +Manual}), assurez-vous de les initialiser avec @command{mkswap}. En +supposant que vous avez une partition de swap sur @file{/dev/sda3}, vous +pouvez lancer : + +@example +mkswap /dev/sda3 +swapon /dev/sda3 +@end example + +Autrement, vous pouvez utiliser un fichier de swap. Par exemple, en +supposant que dans le nouveau système vous voulez utiliser le fichier +@file{/swapfile} comme fichier de swap, vous lanceriez@footnote{Cet exemple +fonctionnera sur plusieurs types de systèmes de fichiers (p.@: ex.@: ext4). +Cependant, pour les systèmes de fichiers qui utilisent la copie sur écriture +(COW) comme btrfs, les étapes requises peuvent varier. Pour plus de +détails, regardez les pages de manuel de @command{mkswap} et +@command{swapon}.} : + +@example +# Cela représente 10 Gio d'espace d'échange. Ajustez « count » pour changer la taille. +dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240 +# Par sécurité, laissez le fichier en lecture et en écriture uniquement pour root. +chmod 600 /mnt/swapfile +mkswap /mnt/swapfile +swapon /mnt/swapfile +@end example + +Remarquez que si vous avez chiffré la partition racine et créé un fichier +d'échange dans son système de fichier comme décrit ci-dessus, alors le +chiffrement protégera aussi le fichier d'échange, comme n'importe quel +fichier de ce système de fichiers. + +@node Effectuer l'installation +@section Effectuer l'installation + +Lorsque la partition cible est prête et que les autres partitions sont +montées, on est prêt à commencer l'installation. Commencez par : + +@example +herd start cow-store /mnt +@end example + +Cela rend @file{/gnu/store} capable de faire de la copie sur écriture, de +sorte que les paquets ajoutés pendant l'installation sont écrits sur le +disque cible sur @file{/mnt} plutôt que gardés en mémoire. Cela est +nécessaire parce que la première phase de la commande @command{guix system +init} (voir plus bas) implique de télécharger ou de construire des éléments +de @file{/gnu/store} qui est initialement un système de fichiers en mémoire. + +Ensuite, vous devrez modifier un fichier et fournir la déclaration du +système à installer. Pour cela, le système d'installation propose trois +éditeurs de texte. Nous recommandons GNU nano (@pxref{Top,,, nano, GNU nano +Manual}), qui supporte la coloration syntaxique la correspondance de +parenthèses ; les autres éditeurs sont GNU Zile (un clone d'Emacs) et nvi +(un clone de l'éditeur @command{vi} original de BSD). Nous recommandons +vivement de stocker ce fichier sur le système de fichier racine cible, +disons en tant que @file{/mnt/etc/config.scm}. Sinon, vous perdrez votre +fichier de configuration une fois que vous aurez redémarré sur votre nouveau +système. + +@xref{Utiliser le système de configuration}, pour un aperçu de comment créer votre +fichier de configuration. Les exemples de configuration dont on parle dans +cette section sont disponibles dans @file{/etc/configuration} sur l'image +d'installation. Ainsi, pour commencer avec une configuration du système qui +fournit un serveur d'affichage graphique (un système de « bureau »), vous +pouvez lancer ce qui suit : + +@example +# mkdir /mnt/etc +# cp /etc/configuration/desktop.scm /mnt/etc/config.scm +# nano /mnt/etc/config.scm +@end example + +Vous devriez faire attention à ce que contient votre fichier de +configuration, en particulier : + +@itemize +@item +Make sure the @code{bootloader-configuration} form refers to the target you +want to install GRUB on. It should mention @code{grub-bootloader} if you +are installing GRUB in the legacy way, or @code{grub-efi-bootloader} for +newer UEFI systems. For legacy systems, the @code{target} field names a +device, like @code{/dev/sda}; for UEFI systems it names a path to a mounted +EFI partition, like @code{/boot/efi}; do make sure the path is currently +mounted and a @code{file-sytem} entry is specified in your configuration. + +@item +Assurez-vous que les étiquettes de vos systèmes de fichiers correspondent +aux valeurs de leur champs @code{device} dans votre configuration +@code{file-system}, en supposant que la configuration @code{file-system} +utilise la procédure @code{file-system-label} dans son champ @code{device}. + +@item +Si vous avez des partitions RAID ou chiffrées, assurez-vous d'ajouter un +champ @code{mapped-device} pour les décrire (@pxref{Périphériques mappés}). +@end itemize + +Une fois que vous avez fini les préparatifs sur le fichier de configuration, +le nouveau système peut être initialisé (rappelez-vous que le système de +fichiers racine cible est dans @file{/mnt}) : + +@example +guix system init /mnt/etc/config.scm /mnt +@end example + +@noindent +Cela copie tous les fichiers nécessaires et installe GRUB sur +@file{/dev/sdX} à moins que vous ne passiez l'option +@option{--no-bootloader}. Pour plus d'informations, @pxref{Invoquer guix system}. Cette commande peut engendrer des téléchargements ou des +constructions pour les paquets manquants, ce qui peut prendre du temps. + +Une fois que cette commande a terminée — et on l'espère réussi ! — vous +pouvez lancer @command{reboot} et démarrer sur votre nouveau système. Le +mot de passe @code{root} est d'abord vide ; les mots de passe des autres +utilisateurs doivent être initialisés avec la commande @command{passwd} en +tant que @code{root}, à mois que votre configuration ne spécifie autre chose +(@pxref{user-account-password, mot de passe des comptes utilisateurs}). + +@cindex upgrading Guix System +From then on, you can update the system whenever you want by running, say: + +@example +guix pull +sudo guix system reconfigure /etc/config.scm +@end example + +@noindent +This builds a new system generation with the latest packages and services +(@pxref{Invoquer guix system}). We recommend doing that regularly so that +your system includes the latest security updates (@pxref{Mises à jour de sécurité}). + +@c See . +@quotation Remarque +@cindex sudo vs. @command{guix pull} +Note that @command{sudo guix} runs your user's @command{guix} command and +@emph{not} root's, because @command{sudo} leaves @code{PATH} unchanged. To +explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}. +@end quotation + +Join us on @code{#guix} on the Freenode IRC network or on +@email{guix-devel@@gnu.org} to share your experience---good or not so good. + +@node Installing Guix in a VM +@section Installing Guix in a Virtual Machine + +@cindex virtual machine, Guix System installation +@cindex serveur privé virtuel (VPS) +@cindex VPS (serveur privé virtuel) +If you'd like to install Guix System in a virtual machine (VM) or on a +virtual private server (VPS) rather than on your beloved machine, this +section is for you. + +To boot a @uref{http://qemu.org/,QEMU} VM for installing Guix System in a +disk image, follow these steps: + +@enumerate +@item +First, retrieve and decompress the Guix system installation image as +described previously (@pxref{Installation depuis une clef USB ou un DVD}). + +@item +Créez une image disque qui contiendra le système installé. Pour créer une +image qcow2, utilise la commande @command{qemu-img} : + +@example +qemu-img create -f qcow2 guixsd.img 50G +@end example + +Le fichier qui en résulte sera bien plus petit que les 50 Go (habituellement +moins de 1 Mo) mais il grossira au fur et à mesure que le stockage virtuel +grossira. + +@item +Démarrez l'image d'installation USB dans une VM : + +@example +qemu-system-x86_64 -m 1024 -smp 1 \ + -net user -net nic,model=virtio -boot menu=on \ + -drive file=guixsd-install-@value{VERSION}.@var{system}.iso \ + -drive file=guixsd.img +@end example + +L'ordre des périphérique est important + +Dans la console de la VM, appuyez rapidement sur @kbd{F12} pour entrer dans +le menu de démarrage. Ensuite appuyez sur @kbd{2} et la touche @kbd{Entrée} +pour valider votre choix. + +@item +Vous êtes maintenant root dans la VM, continuez en suivant la procédure +d'installation. @xref{Préparer l'installation}, et suivez les +instructions. +@end enumerate + +Once installation is complete, you can boot the system that's on your +@file{guixsd.img} image. @xref{Running Guix in a VM}, for how to do that. + +@node Construire l'image d'installation +@section Construire l'image d'installation + +@cindex image d'installation +L'image d'installation décrite plus haut a été construite avec la commande +@command{guix system}, plus précisément : + +@example +guix system disk-image --file-system-type=iso9660 \ + gnu/system/install.scm +@end example + +Regardez le fichier @file{gnu/system/install.scm} dans l'arborescence des +sources et regardez aussi @ref{Invoquer guix system} pour plus +d'informations sur l'image d'installation. + +@section Construire l'image d'installation pour les cartes ARM + +De nombreuses cartes ARM requièrent une variante spécifique du chargeur +d'amorçage @uref{http://www.denx.de/wiki/U-Boot/, U-Boot}. + +Si vous construisez une image disque et que le chargeur d'amorçage n'est pas +disponible autrement (sur un autre périphérique d'amorçage etc), il est +recommandé de construire une image qui inclus le chargeur d'amorçage, plus +précisément : + +@example +guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) "A20-OLinuXino-Lime2")' +@end example + +@code{A20-OLinuXino-Lime2} est le nom de la carte. Si vous spécifiez une +carte invalide, une liste de cartes possibles sera affichée. + @c ********************************************************************* @node Gestion de paquets @chapter Gestion de paquets @@ -1851,7 +2573,6 @@ guix package -i emacs-guix * Inférieurs:: Interagir avec une autre révision de Guix. * Invoquer guix describe:: Affiche des informations sur la révision Guix actuelle. -* Invoquer guix pack:: Créer des lots de logiciels. * Invoquer guix archive:: Exporter et importer des fichiers du dépôt. @end menu @@ -1870,7 +2591,7 @@ utilisateur dans @code{$HOME/.guix-profile}. Par exemple, @code{alice} installe GCC 4.7.2. Il en résulte que @file{/home/alice/.guix-profile/bin/gcc} pointe vers @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}. Maintenant, sur la même -machine, @code{bob} a déjà intallé GCC 4.8.0. Le profil de @code{bob} +machine, @code{bob} a déjà installé GCC 4.8.0. Le profil de @code{bob} continue simplement de pointer vers @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc} — c.-à-d.@: les deux versions de GCC coexistent surs le même système sans aucune interférence. @@ -1888,12 +2609,11 @@ processus @command{guix package} est terminé pendant la transaction ou si une panne de courant arrive pendant la transaction, le profil de l'utilisateur reste dans son état précédent et reste utilisable. -En plus, il est possible @emph{d'annuler} toute transaction sur les -paquets. Donc si par exemple un mise à jour installe une nouvelle version -d'un paquet qui révèle un bogue sérieux, les utilisateurs peuvent revenir en -arrière à l'instance précédente de leur profil qui est connu pour bien -fonctionner. De manière similaire, la configuration globale du système dans -GuixSD est sujette aux mises à jour transactionnelles et aux annulations +In addition, any package transaction may be @emph{rolled back}. So, if, for +example, an upgrade installs a new version of a package that turns out to +have a serious bug, users may roll back to the previous instance of their +profile, which was known to work well. Similarly, the global system +configuration on Guix is subject to transactional upgrades and roll-back (@pxref{Utiliser le système de configuration}). Tous les paquets du dépôt des paquets peut être @emph{glané}. Guix peut @@ -2222,7 +2942,7 @@ $ guix package -p foo -p bar --search-paths La dernière commande ci-dessus montre la variable @code{GUILE_LOAD_PATH} bien que, pris individuellement, ni @file{foo} ni @file{bar} n'auraient -donné cette recommendation. +donné cette recommandation. @item --profile=@var{profil} @@ -2240,13 +2960,9 @@ Par défaut, @command{guix package} rapporte les @dfn{collisions} dans le profil comme des erreurs. Les collisions ont lieu quand deux version ou variantes d'un paquet donné se retrouvent dans le profil. -@item --verbose -Produire une sortie verbeuse. En particulier, fournir les journaux de -construction de l'environnement sur le port d'erreur standard. - @item --bootstrap Utiliser le programme d'amorçage Guile pour compiler le profil. Cette -option n'est utile que pour les développeurs de la distriibution. +option n'est utile que pour les développeurs de la distribution. @end table @@ -2259,10 +2975,10 @@ paquets : @item --search=@var{regexp} @itemx -s @var{regexp} @cindex chercher des paquets -Lister les paquets disponibles dont le nom, le synopsis ou la description -correspondent à la @var{regexp}, triés par pertinence. Afficher toutes les -métadonnées des paquets correspondants au format @code{recutils} -(@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual}). +List the available packages whose name, synopsis, or description matches +@var{regexp} (in a case-insensitive fashion), sorted by relevance. Print +all the metadata of matching packages in @code{recutils} format (@pxref{Top, +GNU recutils databases,, recutils, GNU recutils manual}). Cela permet à des champs spécifiques d'être extraits avec la commande @command{recsel}, par exemple : @@ -2390,9 +3106,9 @@ la première. Et @code{--list-generations=1,8,2} renvoie les trois générations dans l'ordre spécifié. Aucune espace ni virgule surnuméraire n'est permise. -@item @emph{Des interval}. @code{--list-generations=2..9} affiche les +@item @emph{Des intervalles}. @code{--list-generations=2..9} affiche les générations demandées et tout ce qui se trouvent entre elles. Remarquez que -le début d'un interval doit être plus petit que sa fin. +le début d'un intervalle doit être plus petit que sa fin. Il est aussi possible d'omettre le numéro final. Par exemple, @code{--list-generations=2..} renvoie toutes les générations à partir de la @@ -2401,7 +3117,7 @@ deuxième. @item @emph{Des durées}. Vous pouvez aussi récupérer les derniers @emph{N}@tie{}jours, semaines, ou moins en passant un entier avec la première lettre de la durée (en anglais : d, w ou m). Par exemple @code{--list-generations=20d} liste les -générations qui sont agées d'au plus 20 jours. +générations qui sont âgées d'au plus 20 jours. @end itemize @item --delete-generations[=@var{motif}] @@ -2455,7 +3171,7 @@ exemple résultent aussi de la construction d'une dérivation qui peut aussi * Serveur de substituts officiel:: Une source particulière de substituts. * Autoriser un serveur de substituts:: Comment activer ou désactiver les substituts. -* Authentification des substituts:: Coment Guix vérifie les substituts. +* Authentification des substituts:: Comment Guix vérifie les substituts. * Paramètres de serveur mandataire:: Comment récupérer des substituts à travers un serveur mandataire. * Échec de substitution:: Qu'arrive-t-il quand la substitution échoue. @@ -2468,13 +3184,13 @@ exemple résultent aussi de la construction d'une dérivation qui peut aussi @cindex hydra @cindex ferme de construction -Le serveur @code{mirror.hydra.gnu.org} est une interface à la ferme de -construction officielle qui construit des paquets pour Guix continuellement -pour certaines architectures et les rend disponibles en tant que -substituts. C'est la source par défaut des substituts ; elle peut être -modifiée en passant l'option @option{--substitute-urls} soit à -@command{guix-daemon} (@pxref{daemon-substitute-urls,, @code{guix-daemon ---substitute-urls}}) soit aux outils clients comme @command{guix package} +The @code{@value{SUBSTITUTE-SERVER}} server is a front-end to an official +build farm that builds packages from Guix continuously for some +architectures, and makes them available as substitutes. This is the default +source of substitutes; it can be overridden by passing the +@option{--substitute-urls} option either to @command{guix-daemon} +(@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}}) or +to client tools such as @command{guix package} (@pxref{client-substitute-urls,, client @option{--substitute-urls} option}). Les URL des substituts peuvent être soit en HTTP soit en HTTPS. Le HTTPS @@ -2499,33 +3215,28 @@ activer les substituts de n'importe quel autre serveur de substituts. @cindex substituts, autorisations @cindex liste de contrôle d'accès (ACL), pour les substituts @cindex ACL (liste de contrôle d'accès), pour les substituts -Pour permettre à Guix de télécharger les substituts depuis -@code{hydra.gnu.org} ou un mirroir, vous devez ajouter sa clef publique à la -liste de contrôle d'accès (ACL) des imports d'archives, avec la commande -@command{guix archive} (@pxref{Invoquer guix archive}). Cela implique que -vous faîtes confiance à @code{hydra.gnu.org} pour ne pas être compromis et -vous servir des substituts authentiques. +To allow Guix to download substitutes from @code{@value{SUBSTITUTE-SERVER}} +or a mirror thereof, you must add its public key to the access control list +(ACL) of archive imports, using the @command{guix archive} command +(@pxref{Invoquer guix archive}). Doing so implies that you trust +@code{@value{SUBSTITUTE-SERVER}} to not be compromised and to serve genuine +substitutes. -La clef publique pour @code{hydra.gnu.org} est installée avec Guix, dans -@code{@var{préfixe}/share/guix/hydra.gnu.org.pub}, où @var{préfixe} est le -préfixe d'installation de Guix. Si vous avez installé Guix depuis les -sources, assurez-vous d'avoir vérifié la signature GPG de -@file{guix-@value{VERSION}.tar.gz} qui contient ce fichier de clef -publique. Ensuite vous pouvez lancer quelque chose comme ceci : +The public key for @code{@value{SUBSTITUTE-SERVER}} is installed along with +Guix, in @code{@var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, where +@var{prefix} is the installation prefix of Guix. If you installed Guix from +source, make sure you checked the GPG signature of +@file{guix-@value{VERSION}.tar.gz}, which contains this public key file. +Then, you can run something like this: @example -# guix archive --authorize < @var{préfixe}/share/guix/hydra.gnu.org.pub +# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub @end example @quotation Remarque -De même, le fichier @file{berlin.guixsd.org.pub} contient la clef publique -de la nouvelle ferme de construction du projet, disponible depuis -@indicateurl{https://berlin.guixsd.org}. - -Au moment où ces lignes sont écrites, @code{berlin.guixsd.org} est mis à -niveau pour mieux passer à l'échelle, mais vous pourriez vouloir le tester. -Il est associé à 20 nœuds de construction x86_64/i686 et pourrait fournir -des substituts plus rapidement que @code{mirror.hydra.gnu.org} +Similarly, the @file{hydra.gnu.org.pub} file contains the public key of an +independent build farm also run by the project, reachable at +@indicateurl{https://mirror.hydra.gnu.org}. @end quotation Une fois que cela est en place, la sortie d'une commande comme @code{guix @@ -2555,8 +3266,8 @@ $ guix build emacs --dry-run @end example @noindent -Cela indique que les substituts de @code{hydra.gnu.org} sont utilisables et -seront téléchargés, si possible, pour les futures constructions. +This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are +usable and will be downloaded, when possible, for future builds. @cindex substituts, comment les désactiver Le mécanisme de substitution peut être désactivé globalement en lançant @@ -2587,7 +3298,7 @@ substituts avec cette option : Si l'ACL contient uniquement la clef de @code{b.example.org}, et si @code{a.example.org} sert @emph{exactement les mêmes} substituts, alors Guix téléchargera les substituts de @code{a.example.org} parce qu'il vient en -premier dans la liste et peut être considéré comme un mirroir de +premier dans la liste et peut être considéré comme un miroir de @code{b.example.org}. En pratique, des machines de constructions produisent souvent les mêmes binaires grâce à des construction reproductibles au bit près (voir plus bas). @@ -2596,7 +3307,7 @@ Lorsque vous utilisez HTTPS, le certificat X.509 du serveur n'est @emph{pas} validé (en d'autre termes, le serveur n'est pas authentifié), contrairement à ce que des clients HTTPS comme des navigateurs web font habituellement. Cela est dû au fait que Guix authentifie les informations sur les substituts -eux-même, comme expliqué plus haut, ce dont on se soucie réellement (alors +eux-mêmes, comme expliqué plus haut, ce dont on se soucie réellement (alors que les certificats X.509 authentifie la relation entre nom de domaine et clef publique). @@ -2641,16 +3352,15 @@ fournis par un serveur. @subsection De la confiance en des binaires @cindex confiance, en des binaires pré-construits -De nos jours, le contrôle individuel sur son utilisation propre de -l'informatique est à la merci d'institutions, de sociétés et de groupes avec -assez de pouvoir et de détermination pour contourner les infrastructures -informatiques et exploiter leurs faiblesses. Bien qu'utiliser les -substituts de @code{hydra.gnu.org} soit pratique, nous encourageons les -utilisateurs à construire aussi par eux-même, voir à faire tourner leur -propre ferme de construction, pour que @code{hydra.gnu.org} devienne une -cible moins intéressante. Une façon d'aider est de publier les logiciels -que vous construisez avec @command{guix publish} pour que les autres aient -plus de choix de serveurs où télécharger les substituts (@pxref{Invoquer guix publish}). +Today, each individual's control over their own computing is at the mercy of +institutions, corporations, and groups with enough power and determination +to subvert the computing infrastructure and exploit its weaknesses. While +using @code{@value{SUBSTITUTE-SERVER}} substitutes can be convenient, we +encourage users to also build on their own, or even run their own build +farm, such that @code{@value{SUBSTITUTE-SERVER}} is less of an interesting +target. One way to help is by publishing the software you build using +@command{guix publish} so that others have one more choice of server to +download substitutes from (@pxref{Invoquer guix publish}). Guix possède les fondations pour maximiser la reproductibilité logicielle (@pxref{Fonctionnalités}). Dans la plupart des cas, des constructions @@ -2752,7 +3462,7 @@ Avant de lancer @code{guix gc --collect-garbage} pour faire de la place, c'est souvent utile de supprimer les anciennes génération des profils utilisateurs ; de cette façon les anciennes constructions de paquets référencées par ces générations peuvent être glanées. Cela se fait en -lançaint @code{guix package --delete-generations} (@pxref{Invoquer guix package}). +lançant @code{guix package --delete-generations} (@pxref{Invoquer guix package}). Nous recommandons de lancer le ramasse-miettes régulièrement ou lorsque vous avez besoin d'espace disque. Par exemple pour garantir qu'au moins @@ -2762,13 +3472,12 @@ avez besoin d'espace disque. Par exemple pour garantir qu'au moins guix gc -F 5G @end example -Il est parfaitement possible de le lancer comme une tâche périodique -non-interactive (@pxref{Exécution de tâches planifiées} pour apprendre comment -paramétrer une telle tâche sur GuixSD). Lancer @command{guix gc} sans -argument ramassera autant de miettes que possible mais ça n'est pas le plus -pratique : vous pourriez vous retrouver à reconstruire ou re-télécharger des -logiciels « inutilisés » du point de vu du GC mais qui sont nécessaires pour -construire d'autres logiciels — p.@: ex.@: la chaîne de compilation. +It is perfectly safe to run as a non-interactive periodic job +(@pxref{Exécution de tâches planifiées}, for how to set up such a job). Running +@command{guix gc} with no arguments will collect as much garbage as it can, +but that is often inconvenient: you may find yourself having to rebuild or +re-download software that is ``dead'' from the GC viewpoint but that is +necessary to build other pieces of software---e.g., the compiler tool chain. La command @command{guix gc} a trois modes d'opération : il peut être utilisé pour glaner des fichiers inutilisés (par défaut), pour supprimer des @@ -3046,6 +3755,11 @@ Utiliser le @var{profil} à la place de @file{~/.config/guix/current}. Montrer quels commits des canaux seraient utilisés et ce qui serait construit ou substitué mais ne pas le faire vraiment. +@item --system=@var{système} +@itemx -s @var{système} +Tenter de construire pour le @var{système} — p.@: ex.@: @code{i686-linux} — +plutôt que pour le type de système de l'hôte de construction. + @item --verbose Produire une sortie verbeuse, en écrivant les journaux de construction sur la sortie d'erreur standard. @@ -3152,14 +3866,13 @@ Vous avez été prévenus ! Maintenant, nous pensons que des canaux externes sont une manière pratique d'exercer votre liberté pour augmenter la collection de paquets de Guix et de partager vos améliorations, qui sont les principes de bases du @uref{https://www.gnu.org/philosophy/free-sw.html, -logiciel libe}. Contactez-nous par courriel sur @email{guix-devel@@gnu.org} -si vous souhaitez discuter à ce propos. +logiciel libre}. Contactez-nous par courriel sur +@email{guix-devel@@gnu.org} si vous souhaitez discuter à ce propos. @end quotation -Une fois que vous avez un dépôt Git contenant vos propres modules de -paquets, vous pouvez écrire @code{~/.config/guix/channels.scm} pour dire à -@command{guix pull} de récupérer votre canal personnel @emph{en plus} des -canaux Guix par défaut : +To use a channel, write @code{~/.config/guix/channels.scm} to instruct +@command{guix pull} to pull from it @emph{in addition} to the default Guix +channel(s): @vindex %default-channels @lisp @@ -3204,6 +3917,50 @@ contient aussi bien Guix que les paquets du canal @code{my-personal-packages}, tandis que d'autres viennent du canal par défaut de Guix. +To create a channel, create a Git repository containing your own package +modules and make it available. The repository can contain anything, but a +useful channel will contain Guile modules that export packages. Once you +start using a channel, Guix will behave as if the root directory of that +channel's Git repository has been added to the Guile load path (@pxref{Load +Paths,,, guile, GNU Guile Reference Manual}). For example, if your channel +contains a file at @file{my-packages/my-tools.scm} that defines a Guile +module, then the module will be available under the name @code{(my-packages +my-tools)}, and you will be able to use it like any other module +(@pxref{Modules,,, guile, GNU Guile Reference Manual}). + +@cindex dependencies, channels +@cindex meta-data, channels +@subsection Declaring Channel Dependencies + +Channel authors may decide to augment a package collection provided by other +channels. They can declare their channel to be dependent on other channels +in a meta-data file @file{.guix-channel}, which is to be placed in the root +of the channel repository. + +The meta-data file should contain a simple S-expression like this: + +@lisp +(channel + (version 0) + (dependencies + (channel + (name some-collection) + (url "https://example.org/first-collection.git")) + (channel + (name some-other-collection) + (url "https://example.org/second-collection.git") + (branch "testing")))) +@end lisp + +In the above example this channel is declared to depend on two other +channels, which will both be fetched automatically. The modules provided by +the channel will be compiled in an environment where the modules of all +these declared channels are available. + +For the sake of reliability and maintainability, you should avoid +dependencies on channels that you don't control, and you should aim to keep +the number of dependencies to a minimum. + @subsection Répliquer Guix @cindex épinglage, canaux @@ -3462,6 +4219,531 @@ produire une liste de spécifications de canaux dans le format Recutils. Afficher les informations sur le @var{profil}. @end table +@node Invoquer guix archive +@section Invoquer @command{guix archive} + +@cindex @command{guix archive} +@cindex archive +La commande @command{guix archive} permet aux utilisateurs d'@dfn{exporter} +des fichiers du dépôt dans une simple archive puis ensuite de les +@dfn{importer} sur une machine qui fait tourner Guix. En particulier, elle +permet de transférer des fichiers du dépôt d'une machine vers le dépôt d'une +autre machine. + +@quotation Remarque +Si vous chercher une manière de produire des archives dans un format adapté +pour des outils autres que Guix, @pxref{Invoquer guix pack}. +@end quotation + +@cindex exporter des éléments du dépôt +Pour exporter des fichiers du dépôt comme une archive sur la sortie +standard, lancez : + +@example +guix archive --export @var{options} @var{spécifications}... +@end example + +@var{spécifications} peut être soit des noms de fichiers soit des +spécifications de paquets, comme pour @command{guix package} +(@pxref{Invoquer guix package}). Par exemple, la commande suivante crée une +archive contenant la sortie @code{gui} du paquet @code{git} et la sortie +principale de @code{emacs} : + +@example +guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar +@end example + +Si les paquets spécifiés ne sont pas déjà construits, @command{guix archive} +les construit automatiquement. Le processus de construction peut être +contrôlé avec les options de construction communes (@pxref{Options de construction communes}). + +Pour transférer le paquet @code{emacs} vers une machine connectée en SSH, on +pourrait lancer : + +@example +guix archive --export -r emacs | ssh la-machine guix archive --import +@end example + +@noindent +De même, on peut transférer un profil utilisateur complet d'une machine à +une autre comme cela : + +@example +guix archive --export -r $(readlink -f ~/.guix-profile) | \ + ssh la-machine guix-archive --import +@end example + +@noindent +Cependant, remarquez que, dans les deux exemples, le paquet @code{emacs}, le +profil ainsi que toutes leurs dépendances sont transférées (à cause de +@code{-r}), indépendamment du fait qu'ils soient disponibles dans le dépôt +de la machine cible. L'option @code{--missing} peut vous aider à comprendre +les éléments qui manquent dans le dépôt de la machine cible. La commande +@command{guix copy} simplifie et optimise ce processus, c'est donc ce que +vous devriez utiliser dans ce cas (@pxref{Invoquer guix copy}). + +@cindex nar, format d'archive +@cindex archive normalisée (nar) +Les archives sont stockées au format « archive normalisé » ou « nar », qui +est comparable dans l'esprit à « tar » mais avec des différences qui le +rendent utilisable pour ce qu'on veut faire. Tout d'abord, au lieu de +stocker toutes les métadonnées Unix de chaque fichier, le format nar ne +mentionne que le type de fichier (normal, répertoire ou lien symbolique) ; +les permissions Unix, le groupe et l'utilisateur ne sont pas mentionnés. +Ensuite, l'ordre dans lequel les entrées de répertoires sont stockés suit +toujours l'ordre des noms de fichier dans l'environnement linguistique C. +Cela rend la production des archives entièrement déterministe. + +@c FIXME: Add xref to daemon doc about signatures. +Lors de l'export, le démon signe numériquement le contenu de l'archive et +cette signature est ajoutée à la fin du fichier. Lors de l'import, le démon +vérifie la signature et rejette l'import en cas de signature invalide ou si +la clef de signature n'est pas autorisée. + +Les principales options sont : + +@table @code +@item --export +Exporter les fichiers ou les paquets du dépôt (voir plus bas). Écrire +l'archive résultante sur la sortie standard. + +Les dépendances ne sont @emph{pas} incluses dans la sortie à moins que +@code{--recursive} ne soit passé. + +@item -r +@itemx --recursive +En combinaison avec @code{--export}, cette option demande à @command{guix +archive} d'inclure les dépendances des éléments donnés dans l'archive. +Ainsi, l'archive résultante est autonome : elle contient la closure des +éléments du dépôt exportés. + +@item --import +Lire une archive depuis l'entrée standard et importer les fichiers inclus +dans le dépôt. Annuler si l'archive a une signature invalide ou si elle est +signée par une clef publique qui ne se trouve pas dans le clefs autorisées +(voir @code{--authorize} plus bas.) + +@item --missing +Liste une liste de noms de fichiers du dépôt sur l'entrée standard, un par +ligne, et écrit sur l'entrée standard le sous-ensemble de ces fichiers qui +manquent dans le dépôt. + +@item --generate-key[=@var{paramètres}] +@cindex signature, archives +Générer une nouvelle paire de clefs pour le démon. Cela est un prérequis +avant que les archives ne puissent être exportées avec @code{--export}. +Remarquez que cette opération prend généralement du temps parce qu'elle doit +récupère suffisamment d'entropie pour générer la paire de clefs. + +La paire de clefs générée est typiquement stockée dans @file{/etc/guix}, +dans @file{signing-key.pub} (clef publique) et @file{signing-key.sec} (clef +privée, qui doit rester secrète). Lorsque @var{paramètres} est omis, une +clef ECDSA utilisant la courbe Ed25519 est générée ou pour les version de +libgcrypt avant 1.6.0, une clef RSA de 4096 bits. Autrement, +@var{paramètres} peut spécifier les paramètres @code{genkey} adaptés pour +libgcrypt (@pxref{General public-key related Functions, +@code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual}). + +@item --authorize +@cindex autorisation, archives +Autoriser les imports signés par la clef publique passée sur l'entrée +standard. La clef publique doit être au « format avancé s-expression » — +c.-à-d.@: le même format que le fichier @file{signing-key.pub}. + +La liste des clefs autorisées est gardée dans un fichier modifiable par des +humains dans @file{/etc/guix/acl}. Le fichier contient des +@url{http://people.csail.mit.edu/rivest/Sexp.txt, « s-expressions au format +avancé »} et est structuré comme une liste de contrôle d'accès dans +l'@url{http://theworld.com/~cme/spki.txt, infrastructure à clefs publiques +simple (SPKI)}. + +@item --extract=@var{répertoire} +@itemx -x @var{répertoire} +Lit une archive à un seul élément telle que servie par un serveur de +substituts (@pxref{Substituts}) et l'extrait dans @var{répertoire}. C'est +une opération de bas niveau requise seulement dans de rares cas d'usage ; +voir plus loin. + +For example, the following command extracts the substitute for Emacs served +by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}: + +@example +$ wget -O - \ + https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \ + | bunzip2 | guix archive -x /tmp/emacs +@end example + +Les archives à un seul élément sont différentes des archives à plusieurs +éléments produites par @command{guix archive --export} ; elles contiennent +un seul élément du dépôt et elles n'embarquent @emph{pas} de signature. +Ainsi cette opération ne vérifie @emph{pas} de signature et sa sortie +devrait être considérée comme non sûre. + +Le but principal de cette opération est de faciliter l'inspection du contenu +des archives venant de serveurs auxquels on ne fait potentiellement pas +confiance. + +@end table + + +@c ********************************************************************* +@node Development +@chapter Development + +@cindex software development +If you are a software developer, Guix provides tools that you should find +helpful---independently of the language you're developing in. This is what +this chapter is about. + +The @command{guix environment} command provides a convenient way to set up +@dfn{development environments} containing all the dependencies and tools +necessary to work on the software package of your choice. The @command{guix +pack} command allows you to create @dfn{application bundles} that can be +easily distributed to users who do not run Guix. + +@menu +* Invoquer guix environment:: Mettre en place des environnements de + développement. +* Invoquer guix pack:: Créer des lots de logiciels. +@end menu + +@node Invoquer guix environment +@section Invoquer @command{guix environment} + +@cindex environnements de construction reproductibles +@cindex environnement de développement +@cindex @command{guix environment} +@cindex environnement de construction de paquets +Le but de @command{guix environment} est d'assister les hackers dans la +création d'environnements de développement reproductibles sans polluer leur +profil de paquets. L'outil @command{guix environment} prend un ou plusieurs +paquets, construit leurs entrées et crée un environnement shell pour pouvoir +les utiliser. + +La syntaxe générale est : + +@example +guix environment @var{options} @var{paquet}@dots{} +@end example + +L'exemple suivant crée un nouveau shell préparé pour le développement de +GNU@tie{}Guile : + +@example +guix environment guile +@end example + +Si les dépendances requises ne sont pas déjà construites, @command{guix +environment} les construit automatiquement. L'environnement du nouveau +shell est une version améliorée de l'environnement dans lequel @command{guix +environment} a été lancé. Il contient les chemins de recherche nécessaires +à la construction du paquet donné en plus des variables d'environnement +existantes. Pour créer un environnement « pur », dans lequel les variables +d'environnement de départ ont été nettoyées, utilisez l'option +@code{--pure}@footnote{Les utilisateurs ajoutent parfois à tord des valeurs +supplémentaires dans les variables comme @code{PATH} dans leur +@file{~/.bashrc}. En conséquence, lorsque @code{guix environment} le lance, +Bash peut lire @file{~/.bashrc}, ce qui produit des « impuretés » dans ces +variables d'environnement. C'est une erreur de définir ces variables +d'environnement dans @file{.bashrc} ; à la place, elles devraient être +définie dans @file{.bash_profile}, qui est sourcé uniquement par les shells +de connexion. @xref{Bash Startup Files,,, bash, The GNU Bash Reference +Manual}, pour des détails sur les fichiers de démarrage de Bash.}. + +@vindex GUIX_ENVIRONMENT +@command{guix environment} définie la variable @code{GUIX_ENVIRONMENT} dans +le shell qu'il crée ; sa valeur est le nom de fichier du profil de cet +environnement. Cela permet aux utilisateur, disons, de définir un prompt +spécifique pour les environnement de développement dans leur @file{.bashrc} +(@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) : + +@example +if [ -n "$GUIX_ENVIRONMENT" ] +then + export PS1="\u@@\h \w [dev]\$ " +fi +@end example + +@noindent +...@: or to browse the profile: + +@example +$ ls "$GUIX_ENVIRONMENT/bin" +@end example + +En plus, plus d'un paquet peut être spécifié, auquel cas l'union des entrées +des paquets données est utilisée. Par exemple, la commande ci-dessous crée +un shell où toutes les dépendances de Guile et Emacs sont disponibles : + +@example +guix environment guile emacs +@end example + +Parfois, une session shell interactive est inutile. On peut invoquer une +commande arbitraire en plaçant le jeton @code{--} pour séparer la commande +du reste des arguments : + +@example +guix environment guile -- make -j4 +@end example + +Dans d'autres situations, il est plus pratique de spécifier la liste des +paquets requis dans l'environnement. Par exemple, la commande suivante +lance @command{python} dans un environnement contenant Python@tie{}2.7 et +NumPy : + +@example +guix environment --ad-hoc python2-numpy python-2.7 -- python +@end example + +En plus, on peut vouloir les dépendance d'un paquet et aussi des paquets +supplémentaires qui ne sont pas des dépendances à l'exécution ou à la +construction, mais qui sont utiles au développement tout de même. À cause +de cela, le drapeau @code{--ad-hoc} est positionnel. Les paquets qui +apparaissent avant @code{--ad-hoc} sont interprétés comme les paquets dont +les dépendances seront ajoutées à l'environnement. Les paquets qui +apparaissent après @code{--ad-hoc} sont interprétés comme les paquets à +ajouter à l'environnement directement. Par exemple, la commande suivante +crée un environnement de développement pour Guix avec les paquets Git et +strace en plus : + +@example +guix environment guix --ad-hoc git strace +@end example + +Sometimes it is desirable to isolate the environment as much as possible, +for maximal purity and reproducibility. In particular, when using Guix on a +host distro that is not Guix System, it is desirable to prevent access to +@file{/usr/bin} and other system-wide resources from the development +environment. For example, the following command spawns a Guile REPL in a +``container'' where only the store and the current working directory are +mounted: + +@example +guix environment --ad-hoc --container guile -- guile +@end example + +@quotation Remarque +L'option @code{--container} requiert Linux-libre 3.19 ou supérieur. +@end quotation + +Les options disponibles sont résumées ci-dessous. + +@table @code +@item --root=@var{fichier} +@itemx -r @var{fichier} +@cindex environnement persistent +@cindex racine du ramasse-miettes, pour les environnements +Fait de @var{fichier} un lien symbolique vers le profil de cet +environnement, et l'enregistre comme une racine du ramasse-miettes. + +C'est utile si vous souhaitez protéger votre environnement du +ramasse-miettes, pour le rendre « persistent ». + +Lorsque cette option est omise, l'environnement n'est protégé du +ramasse-miettes que le temps de la session @command{guix environment}. Cela +signifie que la prochaine fois que vous créerez le même environnement, vous +pourriez avoir à reconstruire ou télécharger des paquets. @xref{Invoquer guix gc}, pour plus d'informations sur les racines du GC. + +@item --expression=@var{expr} +@itemx -e @var{expr} +Crée un environnement pour le paquet ou la liste de paquets en lesquels +s'évalue @var{expr}. + +Par exemple, lancer : + +@example +guix environment -e '(@@ (gnu packages maths) petsc-openmpi)' +@end example + +démarre un shell avec l'environnement pour cette variante spécifique du +paquet PETSc. + +Lancer : + +@example +guix environment --ad-hoc -e '(@@ (gnu) %base-packages)' +@end example + +starts a shell with all the base system packages available. + +Les commande au-dessus n'utilisent que les sorties par défaut des paquets +donnés. Pour choisir d'autres sorties, on peut spécifier des pairs : + +@example +guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) "include")' +@end example + +@item --load=@var{fichier} +@itemx -l @var{fichier} +Crée un environnement pour le paquet ou la liste de paquets en lesquels +@var{fichier} s'évalue. + +Par exemple, @var{fichier} peut contenir une définition comme celle-ci +(@pxref{Définition des paquets}) : + +@example +@verbatiminclude environment-gdb.scm +@end example + +@item --manifest=@var{fichier} +@itemx -m @var{fichier} +Crée un environnement pour les paquets contenus dans l'objet manifeste +renvoyé par le code Scheme dans @var{fichier}. + +C'est similaire à l'option de même nom de @command{guix package} +(@pxref{profile-manifest, @option{--manifest}}) et utilise les même fichiers +manifestes. + +@item --ad-hoc +Inclut tous les paquets spécifiés dans l'environnement qui en résulte, comme +si un paquet @i{ad hoc} était spécifié, avec ces paquets comme entrées. +Cette option est utile pour créer un environnement rapidement sans avoir à +écrire une expression de paquet contenant les entrées désirées. + +Par exemple la commande : + +@example +guix environment --ad-hoc guile guile-sdl -- guile +@end example + +lance @command{guile} dans un environnement où Guile et Guile-SDDL sont +disponibles. + +Remarquez que cet exemple demande implicitement la sortie par défaut de +@code{guile} et @code{guile-sdl}, mais il est possible de demander une +sortie spécifique — p.@: ex.@: @code{glib:bin} demande la sortie @code{bin} +de @code{glib} (@pxref{Des paquets avec plusieurs résultats}). + +Cette option peut être composée avec le comportement par défaut de +@command{guix environment}. Les paquets qui apparaissent avant +@code{--ad-hoc} sont interprétés comme les paquets dont les dépendances +seront ajoutées à l'environnement, le comportement par défaut. Les paquets +qui apparaissent après @code{--ad-hoc} sont interprétés comme les paquets à +ajouter à l'environnement directement. + +@item --pure +Unset existing environment variables when building the new environment, +except those specified with @option{--inherit} (see below.) This has the +effect of creating an environment in which search paths only contain package +inputs. + +@item --inherit=@var{regexp} +When used alongside @option{--pure}, inherit all the environment variables +matching @var{regexp}---in other words, put them on a ``white list'' of +environment variables that must be preserved. This option can be repeated +several times. + +@example +guix environment --pure --inherit=^SLURM --ad-hoc openmpi @dots{} \ + -- mpirun @dots{} +@end example + +This example runs @command{mpirun} in a context where the only environment +variables defined are @code{PATH}, environment variables whose name starts +with @code{SLURM}, as well as the usual ``precious'' variables (@code{HOME}, +@code{USER}, etc.) + +@item --search-paths +Affiche les définitions des variables d'environnement qui composent +l'environnement. + +@item --system=@var{système} +@itemx -s @var{système} +Essaye de construire pour @var{système} — p.@: ex.@: @code{i686-linux}. + +@item --container +@itemx -C +@cindex conteneur +Lance @var{commande} dans un conteneur isolé. Le répertoire de travail +actuel en dehors du conteneur est monté dans le conteneur. En plus, à moins +de le changer avec @code{--user}, un répertoire personnel fictif est créé +pour correspondre à celui de l'utilisateur actuel et @file{/etc/passwd} est +configuré en conséquence. Le processus est lancé en tant que l'utilisateur +actuel en dehors du conteneur, mais a les privilèges root dans le contexte +du conteneur. + +@item --network +@itemx -N +Pour les conteneurs, partage l'espace de nom du réseau avec le système +hôte. Les conteneurs créés sans cette option n'ont accès qu'à l'interface +de boucle locale. + +@item --link-profile +@itemx -P +Pour les conteneurs, lie le profil de l'environnement à +@file{~/.guix-profile} dans le conteneur. C'est équivalent à lance la +commande @command{ln -s $GUIX_ENVIRONMENT ~/.guix-profile} dans le +conteneur. La liaison échouera et annulera l'environnement si le répertoire +existe déjà, ce qui sera sans doute le cas si @command{guix environment} est +invoqué dans le répertoire personnel de l'utilisateur. + +Certains paquets sont configurés pour chercher des fichiers de configuration +et des données dans @code{~/.guix-profile}@footnote{Par exemple, le paquet +@code{fontconfig} inspecte @file{~/.guix-profile/share/fonts} pour trouver +des polices supplémentaires.} ; @code{--link-profile} permet à ces +programmes de se comporter comme attendu dans l'environnement. + +@item --user=@var{utilisateur} +@itemx -u @var{utilisateur} +Pour les conteneurs, utilise le nom d'utilisateur @var{utilisateur} à la +place de l'utilisateur actuel. L'entrée générée dans @file{/etc/passwd} +dans le conteneur contiendra le nom @var{utilisateur} ; le répertoire +personnel sera @file{/home/UTILISATEUR} ; et aucune donnée GECOS ne sera +copiée. @var{utilisateur} n'a pas besoin d'exister sur le système. + +En plus, tous les chemins partagés ou exposés (voir @code{--share} et +@code{--expose} respectivement) dont la cible est dans le répertoire +personnel de l'utilisateur seront remontés relativement à +@file{/home/UTILISATEUR} ; cela comprend le montage automatique du +répertoire de travail actuel. + +@example +# exposera les chemins comme /home/foo/wd, /home/foo/test et /home/foo/target +cd $HOME/wd +guix environment --container --user=foo \ + --expose=$HOME/test \ + --expose=/tmp/target=$HOME/target +@end example + +Bien que cela limite la fuite de l'identité de l'utilisateur à travers le +chemin du répertoire personnel et des champs de l'utilisateur, ce n'est +qu'un composant utile pour une solution d'anonymisation ou de préservation +de la vie privée — pas une solution en elle-même. + +@item --expose=@var{source}[=@var{cible}] +Pour les conteneurs, expose le système de fichiers @var{source} du système +hôte comme un système de fichiers en lecture seule @var{cible} dans le +conteneur. Si @var{cible} n'est pas spécifiée, @var{source} est utilisé +comme point de montage dans le conteneur. + +L'exemple ci-dessous crée un REPL Guile dans un conteneur dans lequel le +répertoire personnel de l'utilisateur est accessible en lecture-seule via le +répertoire @file{/exchange} : + +@example +guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile +@end example + +@item --share=@var{source}[=@var{cible}] +Pour les conteneurs, partage le système de fichiers @var{source} du système +hôte comme un système de fichiers en lecture-écriture @var{cible} dans le +conteneur. Si @var{cible} n'est pas spécifiée, @var{source} est utilisée +comme point de montage dans le conteneur. + +L'exemple ci-dessous crée un REPL Guile dans un conteneur dans lequel le +répertoire personnel de l'utilisateur est accessible en lecture-écriture via +le répertoire @file{/exchange} : + +@example +guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile +@end example +@end table + +@command{guix environment} also supports all of the common build options +that @command{guix build} supports (@pxref{Options de construction communes}) as well as +package transformation options (@pxref{Options de transformation de paquets}). + @node Invoquer guix pack @section Invoquer @command{guix pack} @@ -3481,7 +4763,7 @@ et @ref{Invoquer guix archive}. @cindex lot d'applications @cindex lot de logiciels La commande @command{guix pack} crée un @dfn{pack} ou @dfn{lot de logiciels} -: elle crée une archive tar ou un autre type d'archive contenunt les +: elle crée une archive tar ou un autre type d'archive contenant les binaires pour le logiciel qui vous intéresse ainsi que ses dépendances. L'archive qui en résulte peut être utilisée sur toutes les machines qui n'ont pas Guix et les gens peuvent lancer exactement les mêmes binaires que @@ -3693,172 +4975,6 @@ communes (@pxref{Options de construction communes}) et toutes les options de transformation de paquets (@pxref{Options de transformation de paquets}). -@node Invoquer guix archive -@section Invoquer @command{guix archive} - -@cindex @command{guix archive} -@cindex archive -La commande @command{guix archive} permet aux utilisateurs d'@dfn{exporter} -des fichiers du dépôt dans une simple archive puis ensuite de les -@dfn{importer} sur une machine qui fait tourner Guix. En particulier, elle -permet de transférer des fichiers du dépôt d'une machine vers le dépôt d'une -autre machine. - -@quotation Remarque -Si vous chercher une manière de produire des archives dans un format adapté -pour des outils autres que Guix, @pxref{Invoquer guix pack}. -@end quotation - -@cindex exporter des éléments du dépôt -Pour exporter des fichiers du dépôt comme une archive sur la sortie -standard, lancez : - -@example -guix archive --export @var{options} @var{spécifications}... -@end example - -@var{spécifications} peut être soit des noms de fichiers soit des -spécifications de paquets, comme pour @command{guix package} -(@pxref{Invoquer guix package}). Par exemple, la commande suivante crée une -archive contenant la sortie @code{gui} du paquet @code{git} et la sortie -principale de @code{emacs} : - -@example -guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar -@end example - -Si les paquets spécifiés ne sont pas déjà construits, @command{guix archive} -les construit automatiquement. Le processus de construction peut être -contrôlé avec les options de construction communes (@pxref{Options de construction communes}). - -Pour transférer le paquet @code{emacs} vers une machine connectée en SSH, on -pourrait lancer : - -@example -guix archive --export -r emacs | ssh la-machine guix archive --import -@end example - -@noindent -De même, on peut transférer un profil utilisateur complet d'une machine à -une autre comme cela : - -@example -guix archive --export -r $(readlink -f ~/.guix-profile) | \ - ssh la-machine guix-archive --import -@end example - -@noindent -Cependant, remarquez que, dans les deux exemples, le paquet @code{emacs}, le -profil ainsi que toutes leurs dépendances sont transférées (à cause de -@code{-r}), indépendamment du fait qu'ils soient disponibles dans le dépôt -de la machine cible. L'option @code{--missing} peut vous aider à comprendre -les éléments qui manquent dans le dépôt de la machine cible. La commande -@command{guix copy} simplifie et optimise ce processus, c'est donc ce que -vous devriez utiliser dans ce cas (@pxref{Invoquer guix copy}). - -@cindex nar, format d'archive -@cindex archive normalisée (nar) -Les archives sont stockées au format « archive normalisé » ou « nar », qui -est comparable dans l'esprit à « tar » mais avec des différences qui le -rendent utilisable pour ce qu'on veut faire. Tout d'abord, au lieu de -stocker toutes les métadonnées Unix de chaque fichier, le format nar ne -mentionne que le type de fichier (normal, répertoire ou lien symbolique) ; -les permissions Unix, le groupe et l'utilisateur ne sont pas mentionnés. -Ensuite, l'ordre dans lequel les entrées de répertoires sont stockés suit -toujours l'ordre des noms de fichier dans l'environnement linguistique C. -Cela rend la production des archives entièrement déterministe. - -@c FIXME: Add xref to daemon doc about signatures. -Lors de l'export, le démon signe numériquement le contenu de l'archive et -cette signature est ajoutée à la fin du fichier. Lors de l'import, le démon -vérifie la signature et rejette l'import en cas de signature invalide ou si -la clef de signature n'est pas autorisée. - -Les principales options sont : - -@table @code -@item --export -Exporter les fichiers ou les paquets du dépôt (voir plus bas). Écrire -l'archive résultante sur la sortie standard. - -Les dépendances ne sont @emph{pas} incluses dans la sortie à moins que -@code{--recursive} ne soit passé. - -@item -r -@itemx --recursive -En combinaison avec @code{--export}, cette option demande à @command{guix -archive} d'inclure les dépendances des éléments donnés dans l'archive. -Ainsi, l'archive résultante est autonome : elle contient la closure des -éléments du dépôt exportés. - -@item --import -Lire une archive depuis l'entrée standard et importer les fichiers inclus -dans le dépôt. Annuler si l'archive a une signature invalide ou si elle est -signée par une clef publique qui ne se trouve pas dans le clefs autorisées -(voir @code{--authorize} plus bas.) - -@item --missing -Liste une liste de noms de fichiers du dépôt sur l'entrée standard, un par -ligne, et écrit sur l'entrée standard le sous-ensemble de ces fichiers qui -manquent dans le dépôt. - -@item --generate-key[=@var{paramètres}] -@cindex signature, archives -Générer une nouvelle paire de clefs pour le démon. Cela est un prérequis -avant que les archives ne puissent être exportées avec @code{--export}. -Remarquez que cette opération prend généralement du temps parce qu'elle doit -récupère suffisamment d'entropie pour générer la paire de clefs. - -La paire de clefs générée est typiquement stockée dans @file{/etc/guix}, -dans @file{signing-key.pub} (clef publique) et @file{signing-key.sec} (clef -privée, qui doit rester secrète). Lorsque @var{paramètres} est omis, une -clef ECDSA utilisant la courbe Ed25519 est générée ou pour les version de -libgcrypt avant 1.6.0, une clef RSA de 4096 bits. Autrement, -@var{paramètres} peut spécifier les paramètres @code{genkey} adaptés pour -libgcrypt (@pxref{General public-key related Functions, -@code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual}). - -@item --authorize -@cindex autorisation, archives -Autoriser les imports signés par la clef publique passée sur l'entrée -standard. La clef publique doit être au « format avancé s-expression » — -c.-à-d.@: le même format que le fichier @file{signing-key.pub}. - -La liste des clefs autorisées est gardée dans un fichier modifiable par des -humains dans @file{/etc/guix/acl}. Le fichier contient des -@url{http://people.csail.mit.edu/rivest/Sexp.txt, « s-expressions au format -avancé »} et est structuré comme une liste de contrôle d'accès dans -l'@url{http://theworld.com/~cme/spki.txt, infrastructure à clefs publiques -simple (SPKI)}. - -@item --extract=@var{répertoire} -@itemx -x @var{répertoire} -Lit une archive à un seul élément telle que servie par un serveur de -substituts (@pxref{Substituts}) et l'extrait dans @var{répertoire}. C'est -une opération de bas niveau requise seulement dans de rares cas d'usage ; -voir plus loin. - -Par exemple, la commande suivante extrait le substitut pour Emacs servi par -@code{hydra.gnu.org} dans @file{/tmp/emacs} : - -@example -$ wget -O - \ - https://hydra.gnu.org/nar/@dots{}-emacs-24.5 \ - | bunzip2 | guix archive -x /tmp/emacs -@end example - -Les archives à un seul élément sont différentes des archives à plusieurs -éléments produites par @command{guix archive --export} ; elles contiennent -un seul élément du dépôt et elles n'embarquent @emph{pas} de signature. -Ainsi cette opération ne vérifie @emph{pas} de signature et sa sortie -devrait être considérée comme non sûre. - -Le but principal de cette opération est de faciliter l'inspection du contenu -des archives venant de serveurs auxquels on ne fait potentiellement pas -confiance. - -@end table - @c ********************************************************************* @node Interface de programmation @chapter Interface de programmation @@ -3893,17 +5009,82 @@ Ce chapitre décrit toutes ces API tour à tour, à partir des définitions de paquets à haut-niveau. @menu +* Modules de paquets:: Les paquets du point de vu du programmeur. * Définition des paquets:: Définir de nouveaux paquets. * Systèmes de construction:: Spécifier comment construire les paquets. * Le dépôt:: Manipuler le dépôt de paquets. * Dérivations:: Interface de bas-niveau avec les dérivations de paquets. -* La monad du dépôt:: Interface purement fonctionnelle avec le +* La monade du dépôt:: Interface purement fonctionnelle avec le dépôt. * G-Expressions:: Manipuler les expressions de construction. * Invoquer guix repl:: S'amuser avec Guix de manière interactive. @end menu +@node Modules de paquets +@section Modules de paquets + +D'un point de vue programmatique, les définitions de paquets de la +distribution GNU sont fournies par des modules Guile dans l'espace de noms +@code{(gnu packages @dots{})}@footnote{Remarquez que les paquets sous +l'espace de nom @code{(gnu packages @dots{})} ne sont pas nécessairement des +« paquets GNU ». Le nom de ce module suit la convention de nommage usuelle +de Guile : @code{gnu} signifie que ces modules sont distribués dans le +système GNU, et @code{packages} identifie les modules qui définissent les +paquets.} (@pxref{Modules, Guile modules,, guile, GNU Guile Reference +Manual}). Par exemple, le module @code{(gnu packages emacs)} exporte une +variable nommée @code{emacs}, qui est liée à un objet @code{} +(@pxref{Définition des paquets}). + +L'espace de nom @code{(gnu packages @dots{})} est automatiquement scanné par +les outils en ligne de commande. Par exemple, lorsque vous lancez +@code{guix package -i emacs}, tous les modules @code{(gnu packages @dots{})} +sont scannés jusqu'à en trouver un qui exporte un objet de paquet dont le +nom est @code{emacs}. Cette capacité à chercher des paquets est implémentée +dans le module @code{(gnu packages)}. + +@cindex personnalisation, des paquets +@cindex chemin de recherche des modules de paquets +Les utilisateurs peuvent stocker des définitions dans des modules avec des +noms différents — p.@: ex.@: @code{(my-packages emacs)}@footnote{Remarquez +que le nom de fichier et de module doivent être identiques. Par exemple, le +module @code{(my-packages emacs)} doit être stocké dans un fichier +@file{my-packages/emacs.scm} relativement au chemin de chargement spécifié +avec @option{--load-path} ou @code{GUIX_PACKAGE_PATH}. @xref{Modules and +the File System,,, guile, GNU Guile Reference Manual} pour plus de +détails}. Il y a deux manières de rendre ces définitions visibles aux +interfaces utilisateurs : + +@enumerate +@item +En ajoutant le répertoire contenant vos modules de paquets au chemin de +recherche avec le drapeau @code{-L} de @command{guix package} et des autres +commandes (@pxref{Options de construction communes}) ou en indiquant la variable +d'environnement @code{GUIX_PACKAGE_PATH} décrite plus bas. + +@item +En définissant un @dfn{canal} et en configurant @command{guix pull} pour +qu'il l'utilise. Un canal est essentiellement un dépôt Git contenant des +modules de paquets. @xref{Canaux}, pour plus d'informations sur comment +définir et utiliser des canaux. +@end enumerate + +@code{GUIX_PACKAGE_PATH} fonctionne comme les autres variables de chemins de +recherche : + +@defvr {Variable d'environnement} GUIX_PACKAGE_PATH +C'est une liste séparée par des deux-points de répertoires dans lesquels +trouver des modules de paquets supplémentaires. Les répertoires listés dans +cette variable sont prioritaires par rapport aux paquets de la distribution. +@end defvr + +La distribution est entièrement @dfn{bootstrappée} et @dfn{auto-contenue} : +chaque paquet est construit uniquement à partir d'autres paquets de la +distribution. La racine de ce graphe de dépendance est un petit ensemble de +@dfn{binaires de bootstrap} fournis par le module @code{(gnu packages +bootstrap)}. Pour plus d'informations sur le bootstrap, +@pxref{Bootstrapping}. + @node Définition des paquets @section Définition des paquets @@ -4029,9 +5210,9 @@ on définie une entrée nommée @code{"gawk"} dont la valeur est la variable @findex ,@@ @findex unquote-splicing De nouveau, @code{`} (un accent grave, synonyme de la fonction -@code{quasiquote}) nous permet d'introduire une liste litérale dans le champ -@code{inputs}, tandis que @code{,} (une virgule, synonyme de la fonction -@code{unquote}) nous permet d'insérer une valeur dans cette liste +@code{quasiquote}) nous permet d'introduire une liste littérale dans le +champ @code{inputs}, tandis que @code{,} (une virgule, synonyme de la +fonction @code{unquote}) nous permet d'insérer une valeur dans cette liste (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference Manual}). Remarquez que GCC, Coreutils, Bash et les autres outils essentiels n'ont pas @@ -4054,9 +5235,9 @@ construit avec l'outil en ligne de commande @code{guix build} vous pourriez rencontrer (@pxref{Débogage des échecs de construction}). Vous pouvez aisément revenir à la définition du paquet avec la commande @command{guix edit} (@pxref{Invoquer guix edit}). @xref{Consignes d'empaquetage}, pour plus -d'inforamtions sur la manière de tester des définitions de paquets et +d'informations sur la manière de tester des définitions de paquets et @ref{Invoquer guix lint}, pour des informations sur la manière de vérifier -que la définition réspecte les conventions de style. +que la définition respecte les conventions de style. @vindex GUIX_PACKAGE_PATH Enfin, @pxref{Canaux} pour des informations sur la manière d'étendre la distribution en ajoutant vos propres définitions de paquets dans un « canal @@ -4089,7 +5270,7 @@ effectue une compilation croisée d'un paquet pour un autre système : @deffn {Procédure Scheme} package-cross-derivation @var{store} @ @var{paquet} @var{cible} [@var{système}] renvoie l'objet @code{} -duof @var{paquet} construit depuis @var{système} pour @var{cible}. +du @var{paquet} construit depuis @var{système} pour @var{cible}. @var{cible} doit être un triplet GNU valide indiquant le matériel cible et le système d'exploitation, comme @code{"mips64el-linux-gnu"} @@ -4513,7 +5694,7 @@ sources, par défaut « src ». Le paramètre @code{#:main-class} peut être utilisé avec le fichier de construction minimal pour spécifier la classe principale du jar. Cela rend le fichier jar exécutable. Le paramètre @code{#:test-include} peut être -utilisé pour spécifier la liste des tests junit à lancer. Il vaut par +utilisé pour spécifier la liste des tests junits à lancer. Il vaut par défaut @code{(list "**/*Test.java")}. Le paramètre @code{#:test-exclude} peut être utilisé pour désactiver certains tests. Sa valeur par défaut est @code{(list "**/Abstract*.java")}, parce que les classes abstraites ne @@ -4696,6 +5877,26 @@ le code sera compilé avec @code{-O2 -g} comme pour les paquets autoconf par défaut. @end defvr +@defvr {Scheme Variable} dune-build-system +This variable is exported by @code{(guix build-system dune)}. It supports +builds of packages using @uref{https://dune.build/, Dune}, a build tool for +the OCaml programming language. It is implemented as an extension of the +@code{ocaml-build-system} which is described below. As such, the +@code{#:ocaml} and @code{#:findlib} parameters can be passed to this build +system. + +It automatically adds the @code{dune} package to the set of inputs. Which +package is used can be specified with the @code{#:dune} parameter. + +There is no @code{configure} phase because dune packages typically don't +need to be configured. The @code{#:build-flags} parameter is taken as a +list of flags passed to the @code{dune} command during the build. + +The @code{#:jbuild?} parameter can be passed to use the @code{jbuild} +command instead of the more recent @code{dune} command while building a +package. Its default value is @code{#f}. +@end defvr + @defvr {Variable Scheme} go-build-system Cette variable est exportée par @code{(guix build-system go)}. Elle implémente la procédure pour les paquets Go utilisant les @@ -4803,7 +6004,7 @@ construction supposera que ces fichiers ont été générés par @uref{http://oasis.forge.ocamlcore.org/, OASIS} et prendra soin d'initialiser le préfixe et d'activer les tests s'ils ne sont pas désactivés. Vous pouvez passer des drapeaux de configuration et de -consturction avec @code{#:configure-flags} et @code{#:build-flags}. La clef +construction avec @code{#:configure-flags} et @code{#:build-flags}. La clef @code{#:test-flags} peut être passée pour changer l'ensemble des drapeaux utilisés pour activer les tests. La clef @code{#:use-make?} peut être utilisée pour outrepasser ce système dans les phases de construction et @@ -4840,9 +6041,9 @@ bibliothèques ne peuvent pas y être trouvées et on utilise @defvr {Variable Scheme} python-build-system Cette variable est exportée par @code{(guix build-system python)}. Elle -implémente la procédure de construction plus ou moins standarde utilisée -pour les paquets Python, qui consiste à lancer @code{python setup.py build} -puis @code{python setup.py install --prefix=/gnu/store/@dots{}}. +implémente la procédure de construction plus ou moins standard utilisée pour +les paquets Python, qui consiste à lancer @code{python setup.py build} puis +@code{python setup.py install --prefix=/gnu/store/@dots{}}. Pour les paquets qui installent des programmes autonomes dans @code{bin/}, elle prend soin d'envelopper ces binaires pour que leur variable @@ -4863,7 +6064,7 @@ en mettant le paramètre @code{#:use-setuptools} à @code{#f}. @defvr {Variable Scheme} perl-build-system Cette variable est exportée par @code{(guix build-system perl)}. Elle -implémente la procédure de construction standarde des paquets Perl, qui +implémente la procédure de construction standard des paquets Perl, qui consiste soit à lancer @code{perl Build.PL --prefix=/gnu/store/@dots{}}, suivi de @code{Build} et @code{Build install} ; ou à lancer @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, suivi de @code{make} et @code{make @@ -5207,8 +6408,8 @@ Renvoie @code{#t} lorsque @var{path} désigne un élément du dépôt valide et invalide, par exemple parce que c'est le résultat d'une construction annulée ou échouée). -Une condition @code{&nix-protocol-error} est levée si @var{path} n'est pas -préfixée par le répertoire du dépôt (@file{/gnu/store}). +A @code{&store-protocol-error} condition is raised if @var{path} is not +prefixed by the store directory (@file{/gnu/store}). @end deffn @deffn {Procédure Scheme} add-text-to-store @var{server} @var{name} @var{text} [@var{references}] @@ -5223,9 +6424,9 @@ chemins de dérivations) et retourne quand le travailleur a fini de les construire. Renvoie @code{#t} en cas de réussite. @end deffn -Remarque que le module @code{(guix monads)} fournit une monad ainsi que des +Remarque que le module @code{(guix monads)} fournit une monade ainsi que des version monadiques des procédures précédentes, avec le but de rendre plus -facile de travailler avec le code qui accède au dépôt (@pxref{La monad du dépôt}). +facile de travailler avec le code qui accède au dépôt (@pxref{La monade du dépôt}). @c FIXME @i{Cette section est actuellement incomplète.} @@ -5416,8 +6617,8 @@ un fichier : @end lisp -@node La monad du dépôt -@section La monad du dépôt +@node La monade du dépôt +@section La monade du dépôt @cindex monad @@ -5437,14 +6638,14 @@ dépôt ont des effets de bord ou dépendent d'états externes, elles doivent @cindex fonctions monadiques C'est là que le module @code{(guix monads)} arrive à la rescousse. Ce module fournit un cadre pour travailler avec des @dfn{monads}, en -particulier une monad très utile pour notre usage, la @dfn{monad du dépôt}. -Les monads sont des constructions qui permettent deux choses : associer un « -contexte » avec une valeur (dans notre cas, le contexte est le dépôt) et -construire une séquence de calculs (ici les calculs comprennent des accès au -dépôt). Les valeurs dans une monad — les valeurs qui contiennent ce -contexte supplémentaire — sont appelées des @dfn{valeurs monadiques} ; les -procédures qui renvoient ce genre de valeur sont appelées des -@dfn{procédures monadiques}. +particulier une monade très utile pour notre usage, la @dfn{monade du +dépôt}. Les monades sont des constructions qui permettent deux choses : +associer un « contexte » avec une valeur (dans notre cas, le contexte est le +dépôt) et construire une séquence de calculs (ici les calculs comprennent +des accès au dépôt). Les valeurs dans une monade — les valeurs qui +contiennent ce contexte supplémentaire — sont appelées des @dfn{valeurs +monadiques} ; les procédures qui renvoient ce genre de valeur sont appelées +des @dfn{procédures monadiques}. Considérez cette procédure « normale » : @@ -5493,10 +6694,10 @@ puisqu'il aura lieu implicitement, comme nous le verrons plus tard @c for the funny quote. L'appel à la procédure monadique @code{sh-symlink} n'a aucun effet. En anglais on pourrait dire « you exit a monad like you exit a building on -fire: by running »@footnote{NdT : « on sort d'une monad comme d'un immeuble -en flamme, en courant ». Le jeu de mot est perdu à la traduction : courrir +fire: by running »@footnote{NdT : « on sort d'une monade comme d'un immeuble +en flamme, en courant ». Le jeu de mot est perdu à la traduction : courir et lancer utilisent le même verbe @i{run} en anglais.}. Donc, pour sortir de -la monad et obtenir l'effet escompté, on doit utiliser +la monade et obtenir l'effet escompté, on doit utiliser @code{run-with-store}. @example @@ -5532,7 +6733,7 @@ scheme@@(guile-user)> Remarquez qu'on ne peut pas renvoyer de valeur non monadique dans la console @code{store-monad}. -Les formes syntaxiques principales pour utiliser des monads en général sont +Les formes syntaxiques principales pour utiliser des monades en général sont disponibles dans le module @code{(guix monads)} et sont décrites ci-dessous. @deffn {Syntaxe Scheme} with-monad @var{monad} @var{body} ... @@ -5597,30 +6798,30 @@ des expressions monadiques sont ignorées. Dans ce sens, elle est analogue à @deffn {Système Scheme} mwhen @var{condition} @var{mexp0} @var{mexp*} ... Lorsque la @var{condition} est vraie, évalue la séquence des expressions monadiques @var{mexp0}..@var{mexp*} comme dans un @code{mbegin}. Lorsque la -@var{condition} est fausse, renvoie @code{*unspecified*} dans la monad -actuelle. Cahque expression dans la séquence doit être une expression +@var{condition} est fausse, renvoie @code{*unspecified*} dans la monade +actuelle. Chaque expression dans la séquence doit être une expression monadique. @end deffn @deffn {Système Scheme} munless @var{condition} @var{mexp0} @var{mexp*} ... Lorsque la @var{condition} est fausse, évalue la séquence des expressions monadiques @var{mexp0}..@var{mexp*} comme dans un @code{mbegin}. Lorsque la -@var{condition} est vraie, renvoie @code{*unspecified*} dans la monad -actuelle. Cahque expression dans la séquence doit être une expression +@var{condition} est vraie, renvoie @code{*unspecified*} dans la monade +actuelle. Chaque expression dans la séquence doit être une expression monadique. @end deffn -@cindex monad d'état -Le module @code{(guix monads)} fournit la @dfn{monad d'état} qui permet à +@cindex monade d'état +Le module @code{(guix monads)} fournit la @dfn{monade d'état} qui permet à une valeur supplémentaire — l'état — d'être enfilée à travers les appels de procédures. @defvr {Variable Scheme} %state-monad -La monad d'état. les procédure dans la monad d'état peuvent accéder et +La monade d'état. les procédure dans la monade d'état peuvent accéder et modifier l'état qui est enfilé. Considérez l'exemple ci-dessous. La procédure @code{square} renvoie une -valeur dans la monad d'état. Elle renvoie le carré de son argument, mais +valeur dans la monade d'état. Elle renvoie le carré de son argument, mais incrémente aussi la valeur actuelle de l'état : @example @@ -5664,19 +6865,19 @@ initiale. Renvoie deux valeurs : la valeur du résultat et l'état du résultat. @end deffn -L'interface principale avec la monad du dépôt, fournit par le module +L'interface principale avec la monade du dépôt, fournit par le module @code{(guix store)}, est la suivante. @defvr {Variable Scheme} %store-monad -La monad du dépôt — un alias pour @var{%state-monad}. +La monade du dépôt — un alias pour @var{%state-monad}. -Les valeurs dans la monad du dépôt encapsulent des accès au dépôt. Lorsque -son effet est requis, une valeur de la monad du dépôt doit être « évaluée » +Les valeurs dans la monade du dépôt encapsulent des accès au dépôt. Lorsque +son effet est requis, une valeur de la monade du dépôt doit être « évaluée » en la passant à la procédure @code{run-with-store} (voir plus bas). @end defvr @deffn {Procédure Scheme} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)] -Lance @var{mval}, une valeur monadique dans la monad du dépôt, dans +Lance @var{mval}, une valeur monadique dans la monade du dépôt, dans @var{store}, une connexion ouvert au dépôt. @end deffn @@ -5780,7 +6981,7 @@ de S-expression adaptée aux expressions de construction. Les G-expression, ou @dfn{gexps}, consistent en gros en trois formes syntaxiques : @code{gexp}, @code{ungexp} et @code{ungexp-splicing} (ou plus simplement : @code{#~}, @code{#$} et @code{#$@@}), qui sont comparable à -@code{quasiquote}, @code{unquote} ett @code{unquote-splicing} respectivement +@code{quasiquote}, @code{unquote} et @code{unquote-splicing} respectivement (@pxref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference Manual}). Cependant il y a des différences majeures : @@ -5795,7 +6996,7 @@ unquotée dans une gexp, le résultat est comme si le nom de fichier de son résultat avait été introduit. @item -Les gexps transportent des informatinos sur les paquets ou les dérivations +Les gexps transportent des informations sur les paquets ou les dérivations auxquels elles se réfèrent, et ces dépendances sont automatiquement ajoutées comme des entrées du processus de construction qui les utilise. @end itemize @@ -5887,7 +7088,7 @@ récupéré dans l'environnement de construction isolé de notre gexp, pour que @cindex closure de module @findex source-module-closure -Typiquement, vous voudriez que la @emph{closure} complète du mondule soit +Typiquement, vous voudriez que la @emph{closure} complète du module soit importé — c.-à-d.@: le module lui-même et tous les modules dont il dépend — plutôt que seulement le module ; sinon, une tentative de chargement du module échouera à cause des modules dépendants manquants. La procédure @@ -5990,7 +7191,7 @@ Marque les gexps définies dans @var{body}@dots{} comme requérant @var{modules} dans leur environnement d'exécution. Chaque élément dans @var{module} peut être le nom d'un module, comme -@code{(guix build utils)} ou le nom d'un module suivi d'une flêche, suivie +@code{(guix build utils)} ou le nom d'un module suivi d'une flèche, suivie d'un objet simili-fichier : @example @@ -6029,7 +7230,7 @@ Renvoie @code{#t} si @var{obj} est une G-expression. Les G-expressions sont conçues pour être écrites sur le disque, soit en tant que code pour construire une dérivation, soit en tant que fichier normal dans le dépôt. Les procédure monadiques suivantes vous permettent de faire -cela (@pxref{La monad du dépôt}, pour plus d'information sur les monads). +cela (@pxref{La monade du dépôt}, pour plus d'information sur les monads). @deffn {Procédure monadique} gexp->derivation @var{name} @var{exp} @ [#:system (%current-system)] [#:target #f] [#:graft? #t] @ @@ -6134,7 +7335,7 @@ absolu de l'entrée et @var{stat} est le résultat de @code{lstat} ; à l'exception des entrées pour lesquelles @var{select?} ne renvoie pas vrai. C'est la version déclarative de la procédure monadique @code{interned-file} -(@pxref{La monad du dépôt, @code{interned-file}}). +(@pxref{La monade du dépôt, @code{interned-file}}). @end deffn @deffn {Procédure Scheme} plain-file @var{name} @var{content} @@ -6171,7 +7372,7 @@ L'exemple ci-dessous construit un script qui invoque simplement la commande "ls")) @end example -Lorsqu'elle est « lancée » à travers le dépôt (@pxref{La monad du dépôt, +Lorsqu'elle est « lancée » à travers le dépôt (@pxref{La monade du dépôt, @code{run-with-store}}), on obtient une dérivation qui produit une fichier exécutable @file{/gnu/store/@dots{}-list-files} qui ressemble à : @@ -6411,8 +7612,6 @@ Guix d'une manière pratique. paquets. * Invoquer guix size:: Profiler l'utilisation du disque. * Invoquer guix graph:: Visualiser le graphe des paquets. -* Invoquer guix environment:: Mettre en place des environnements de - développement. * Invoquer guix publish:: Partager des substituts. * Invoquer guix challenge:: Défier les serveurs de substituts. * Invoquer guix copy:: Copier vers et depuis un dépôt distant. @@ -6582,11 +7781,15 @@ de @var{secondes}, le terminer et rapporter une erreur de construction. Par défaut, les paramètres du démon sont pris en compte (@pxref{Invoquer guix-daemon, @code{--timeout}}). -@item --verbosity=@var{level} -Utilise le niveau de verbosité donné. @var{level} doit être un entier entre -0 et 5 ; les entiers les plus hauts signifient une sortie plus verbeuse. Le -mettre à 4 ou plus peut être utile pour déboguer des problèmes de -configuration du démon de construction. +@c Note: This option is actually not part of %standard-build-options but +@c most programs honor it. +@cindex verbosity, of the command-line tools +@cindex build logs, verbosity +@item -v @var{level} +@itemx --verbosity=@var{level} +Use the given verbosity @var{level}, an integer. Choosing 0 means that no +output is produced, 1 is for quiet output, and 2 shows all the build log +output on standard error. @item --cores=@var{n} @itemx -c @var{n} @@ -6598,6 +7801,12 @@ valeur spéciale @code{0} signifie autant de cœurs que possible. Permet au plus @var{n} travaux de construction en parallèle. @xref{Invoquer guix-daemon, @code{--max-jobs}}, pour plus de détails sur cette option et l'option équivalente pour @command{guix-daemon}. +@item --debug=@var{level} +Produce debugging output coming from the build daemon. @var{level} must be +an integer between 0 and 5; higher means more verbose output. Setting a +level of 4 or more may be helpful when debugging setup issues with the build +daemon. + @end table Sous le capot, @command{guix build} est surtout un interface à la procédure @@ -6655,7 +7864,7 @@ partir de @var{source} ; dans l'exemple précédent, il s'agit de Cette option permet aux utilisateurs d'essayer des version des paquets différentes de celles fournies par la distribution. L'exemple ci-dessous -télécharge @file{ed-1.7.tar.g} depuis un mirroir GNU et l'utilise comme +télécharge @file{ed-1.7.tar.g} depuis un miroir GNU et l'utilise comme source pour le paquet @code{ed} : @example @@ -6728,7 +7937,8 @@ utilisez avec précaution ! Build @var{package} from the latest commit of @var{branch}. The @code{source} field of @var{package} must be an origin with the @code{git-fetch} method (@pxref{Référence d'origine}) or a @code{git-checkout} -object; the repository URL is taken from that @code{source}. +object; the repository URL is taken from that @code{source}. Git +sub-modules of the repository are fetched, recursively. For instance, the following command builds @code{guile-sqlite3} from the latest commit of its @code{master} branch, and then builds @code{guix} @@ -6766,9 +7976,10 @@ Les options de la ligne de commande ci-dessous sont spécifiques à @item --quiet @itemx -q -Construire en silence, sans afficher les journaux de construction. À la -fin, le journal de construction est gardé dans @file{/var} (ou similaire) et -on peut toujours l'y trouver avec l'option @option{--log-file}. +Build quietly, without displaying the build log; this is equivalent to +@code{--verbosity=0}. Upon completion, the build log is kept in @file{/var} +(or similar) and can always be retrieved using the @option{--log-file} +option. @item --file=@var{fichier} @itemx -f @var{fichier} @@ -6795,14 +8006,14 @@ utilisée comme un programme de construction passé à @code{gexp->derivation} (@pxref{G-Expressions}). Enfin, @var{expr} peut se référer à une procédure monadique à au moins un -argument (@pxref{La monad du dépôt}). La procédure doit renvoyer une +argument (@pxref{La monade du dépôt}). La procédure doit renvoyer une dérivation comme une valeur monadique, qui est ensuite lancée à travers @code{run-with-store}. @item --source @itemx -S Construit les dérivation source des paquets, plutôt que des paquets -eux-même. +eux-mêmes. Par exemple, @code{guix build -S gcc} renvoie quelque chose comme @file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, qui est l'archive des sources @@ -6908,7 +8119,7 @@ installés sont authentiques (@pxref{Substituts}) ou si le résultat de la construction d'un paquet est déterministe. @xref{Invoquer guix challenge} pour plus d'informations et pour les outils. -Lorsqu'utilisé avec @option{--keep-failed}, la sourtie différente est gardée +Lorsqu'utilisé avec @option{--keep-failed}, la sortie différente est gardée dans le dépôt sous @file{/gnu/store/@dots{}-check}. Cela rend plus facile l'étude des différences entre les deux résultats. @@ -6966,7 +8177,7 @@ construction de GDB sur MIPS, mais que vous n'avez qu'une machine @example $ guix build --log-file gdb -s mips64el-linux -https://hydra.gnu.org/log/@dots{}-gdb-7.10 +https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10 @end example Vous pouvez accéder librement à un vaste bibliothèque de journaux de @@ -7060,7 +8271,7 @@ démon. @cindex @command{guix edit} @cindex définition de paquets, modification Tant de paquets, tant de fichiers source ! La commande @command{guix edit} -facilite la vie des utilisateurs et des packagers en plaçant leur éditeur +facilite la vie des utilisateurs et des empaqueteurs en plaçant leur éditeur sur le fichier source qui contient la définition des paquets spécifiés. Par exemple : @@ -7070,7 +8281,8 @@ guix edit gcc@@4.9 vim @noindent lance le programme spécifié dans la variable d'environnement @code{VISUAL} -ou @code{EDITOR} pour visionner la recette de GCC@tie{}4.9.3 et cele de Vim. +ou @code{EDITOR} pour visionner la recette de GCC@tie{}4.9.3 et celle de +Vim. Si vous utilisez une copie du dépôt Git de Guix (@pxref{Construire depuis Git}), ou que vous avez créé vos propres paquets dans @code{GUIX_PACKAGE_PATH} @@ -7092,7 +8304,7 @@ fichier à l'URL donné, l'ajoute au dépôt et affiche à la fois son nom dans le dépôt et son hash SHA56. Le fait que le fichier téléchargé soit ajouté au dépôt préserve la bande -passante : losque les développeurs finissent par construire le paquet +passante : lorsque les développeurs finissent par construire le paquet nouvellement défini avec @command{guix build}, l'archive des sources n'aura pas besoin d'être téléchargée de nouveau puisqu'elle se trouvera déjà dans le dépôt. C'est aussi une manière pratique de garder des fichiers @@ -7245,14 +8457,12 @@ OpenPGP manquantes lors de la vérification de la signature d'un paquet. @item pypi @cindex pypi -Importe des métadonnées depuis @uref{https://pypi.python.org/, l'index des -paquets Python}@footnote{Cette fonctionnalité requiert l'installation de -Guile-JSON. @xref{Prérequis}.}. Les informations sont récupérées à -partir de la description en JSON disponible sur @code{pypi.python.org} et -inclus généralement toutes les informations utiles, dont les dépendances des -paquets. Pour une efficacité maximale, il est recommandé d'installer -l'utilitaire @command{unzip}, pour que l'importateur puisse dézipper les -wheels Python et récupérer les informations contenues à l'intérieur. +Import metadata from the @uref{https://pypi.python.org/, Python Package +Index}. Information is taken from the JSON-formatted description available +at @code{pypi.python.org} and usually includes all the relevant information, +including package dependencies. For maximum efficiency, it is recommended +to install the @command{unzip} utility, so that the importer can unzip +Python wheels and gather data from them. La commande ci-dessous importe les métadonnées du paquet Python @code{itsdangerous} : @@ -7270,15 +8480,13 @@ expressions de paquets de tous ceux qui ne sont pas déjà dans Guix. @item gem @cindex gem -Importe des métadonnées de @uref{https://rubygems.org/, -RubyGems}@footnote{Cette fonctionnalité requiert l'installation de -Guile-JSON. @xref{Prérequis}.}. Les informations sont récupérées au -format JSON disponible sur @code{rubygems.org} et inclut les informations -les plus utiles, comme les dépendances à l'exécution. Il y a des pièges -cependant. Les métadonnées ne distinguent pas synopsis et description, donc -la même chaîne est utilisée pour les deux champs. En plus, les détails des -dépendances non Ruby requises pour construire des extensions natives sont -indisponibles et laissé en exercice au packager. +Import metadata from @uref{https://rubygems.org/, RubyGems}. Information is +taken from the JSON-formatted description available at @code{rubygems.org} +and includes most relevant information, including runtime dependencies. +There are some caveats, however. The metadata doesn't distinguish between +synopses and descriptions, so the same string is used for both fields. +Additionally, the details of non-Ruby dependencies required to build native +extensions is unavailable and left as an exercise to the packager. La commande ci-dessous importe les métadonnées pour le paquet Ruby @code{rails} : @@ -7296,15 +8504,13 @@ expressions de paquets de tous ceux qui ne sont pas déjà dans Guix. @item cpan @cindex CPAN -Importe des métadonnées de @uref{https://www.metacpan.org/, -MetaCPAN}@footnote{Cette fonctionnalité requiert l'installation de -Guile-JSON. @xref{Prérequis}.}. Les informations sont récupérées au -format JSON disponible à travers @uref{https://fastapi.metacpan.org/, l'API -de MetaCPAN} et inclus les informations les plus utiles, comme les -dépendances des modules. L'information sur les licences doit être vérifiée -avec attention. Si Perl est disponible dans le dépôt, alors l'utilitaire -@code{corelist} sera utiliser pour exclure les modules du cœur de la -distribution Perl de la liste des dépendances. +Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}. +Information is taken from the JSON-formatted metadata provided through +@uref{https://fastapi.metacpan.org/, MetaCPAN's API} and includes most +relevant information, such as module dependencies. License information +should be checked closely. If Perl is available in the store, then the +@code{corelist} utility will be used to filter core modules out of the list +of dependencies. La commande ci-dessous importe les métadonnées du module Perl @code{Acme::Boolean} : @@ -7381,10 +8587,8 @@ guix import texlive --archive=generic ifxetex @item json @cindex JSON, import -Importe des métadonnées d'un fichier JSON local@footnote{Cette -fonctionnalité requiert l'installation de Guile-JSON. -@xref{Prérequis}.}. Considérez l'exemple suivant d'une définition de -paquet au format JSON : +Import package metadata from a local JSON file. Consider the following +example package definition in JSON format: @example @{ @@ -7629,6 +8833,23 @@ déterminer si une nouvelle version est disponible en amont. Cependant, le mécanisme est extensible, alors n'hésitez pas à nous contacter pour ajouter une nouvelle méthode ! +@table @code + +@item --recursive +Consider the packages specified, and all the packages upon which they +depend. + +@example +$ guix refresh --recursive coreutils +gnu/packages/acl.scm:35:2: warning: no updater for acl +gnu/packages/m4.scm:30:12: info: 1.4.18 is already the latest version of m4 +gnu/packages/xml.scm:68:2: warning: no updater for expat +gnu/packages/multiprecision.scm:40:12: info: 6.1.2 is already the latest version of gmp +@dots{} +@end example + +@end table + Parfois les noms en amont diffèrent du nom de paquet utilisé par Guix et @command{guix refresh} a besoin d'un peu d'aide. La plupart des gestionnaires de mise à jour honorent la propriété @code{upstream-name} dans @@ -7692,7 +8913,7 @@ Choisi tous les paquets dans @var{subset}, entre @code{core} et Le sous-ensemble @code{core} se réfère à tous les paquets du cœur de la distribution — c.-à-d.@: les paquets qui sont utilisés pour construire « -tout le rest ». Cela comprend GCC, libc, Binutils, Bash, etc. +tout le reste ». Cela comprend GCC, libc, Binutils, Bash, etc. Habituellement, changer l'un de ces paquets dans la distribution implique de reconstruire tous les autres. Ainsi, ces mises à jour sont une nuisance pour les utilisateurs, en terme de temps de compilation et de bande passante @@ -7821,6 +9042,22 @@ hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{} La commande ci-dessus liste un ensemble de paquets qui peuvent être construits pour vérifier la compatibilité d'une mise à jour de @code{flex}. +@table @code + +@item --list-transitive +List all the packages which one or more packages depend upon. + +@example +$ guix refresh --list-transitive flex +flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6 +bison@@3.0.5 indent@@2.2.10 tar@@1.30 gzip@@1.9 bzip2@@1.0.6 xz@@5.2.4 file@@5.33 @dots{} +@end example + +@end table + +The command above lists a set of packages which, when changed, would cause +@code{flex} to be rebuilt. + Les options suivante peuvent être utilisées pour personnaliser les opérations avec GnuPG : @@ -7924,11 +9161,19 @@ natives. @item source @itemx home-page @itemx mirror-url +@itemx github-url @itemx source-file-name Probe @code{home-page} and @code{source} URLs and report those that are -invalid. Suggest a @code{mirror://} URL when applicable. Check that the -source file name is meaningful, e.g.@: is not just a version number or -``git-checkout'', without a declared @code{file-name} (@pxref{Référence d'origine}). +invalid. Suggest a @code{mirror://} URL when applicable. If the +@code{source} URL redirects to a GitHub URL, recommend usage of the GitHub +URL. Check that the source file name is meaningful, e.g.@: is not just a +version number or ``git-checkout'', without a declared @code{file-name} +(@pxref{Référence d'origine}). + +@item source-unstable-tarball +Parse the @code{source} URL to determine if a tarball from GitHub is +autogenerated or if it is a release tarball. Unfortunately GitHub's +autogenerated tarballs are sometimes regenerated. @item cve @cindex vulnérabilités @@ -8044,7 +9289,7 @@ total: 78.9 MiB @end example @cindex closure -Les éléments du dépôt listés ici constituent la @dfn{cloture transitive} de +Les éléments du dépôt listés ici constituent la @dfn{clôture transitive} de Coreutils — c.-à-d.@: Coreutils et toutes ses dépendances, récursivement — comme ce qui serait renvoyé par : @@ -8054,16 +9299,16 @@ $ guix gc -R /gnu/store/@dots{}-coreutils-8.23 Ici, la sortie possède trois colonnes à côté de chaque élément du dépôt. La première colonne, nommée « total », montre la taille en mébioctet (Mio) de -la cloture de l'élément du dépôt — c'est-à-dire sa propre taille plus la +la clôture de l'élément du dépôt — c'est-à-dire sa propre taille plus la taille de ses dépendances. La colonne suivante, nommée « lui-même », montre la taille de l'élément lui-même. La dernière colonne montre le ration de la taille de l'élément lui-même par rapport à celle de tous les éléments montrés. -Dans cet exemple, on voit que la cloture de Coreutils pèse 79@tie{}Mio, dont +Dans cet exemple, on voit que la clôture de Coreutils pèse 79@tie{}Mio, dont la plupart est dû à la libc et aux bibliothèques à l'exécution de GCC (ce n'est pas un problème en soit que la libc et les bibliothèques de GCC -représentent une grande part de la cloture parce qu'elles sont toujours +représentent une grande part de la clôture parce qu'elles sont toujours disponibles sur le système de toute façon). Lorsque les paquets passés à @command{guix size} sont disponibles dans le @@ -8095,8 +9340,8 @@ total: 102.3 MiB @end example @noindent -Dans cet exemple on voit que la combinaison des quatre paquets prent -102.3@tie{}Mio en tout, ce qui est bien moins que la somme des clotures +Dans cet exemple on voit que la combinaison des quatre paquets prend +102.3@tie{}Mio en tout, ce qui est bien moins que la somme des clôtures puisqu'ils ont beaucoup de dépendances en commun. Les options disponibles sont : @@ -8108,13 +9353,13 @@ Utilise les informations de substituts de @var{urls}. @xref{client-substitute-urls, the same option for @code{guix build}}. @item --sort=@var{clef} -Trie les lignes en fonction de la @var{clef}, l'une des optinos suivantes : +Trie les lignes en fonction de la @var{clef}, l'une des options suivantes : @table @code @item self la taille de chaque élément (par défaut) ; @item closure -la taille totale de la cloture de l'élémente. +la taille totale de la clôture de l'élément. @end table @item --map-file=@var{fichier} @@ -8329,325 +9574,6 @@ que cette option vous permet de visualiser. @end table -@node Invoquer guix environment -@section Invoquer @command{guix environment} - -@cindex environnements de construction reproductibles -@cindex environnement de développement -@cindex @command{guix environment} -@cindex environnement de construction de paquets -Le but de @command{guix environment} est d'assister les hackers dans la -création d'environnements de développement reproductibles sans polluer leur -profil de paquets. L'outil @command{guix environment} prend un ou plusieurs -paquets, construit leurs entrées et crée un environnement shell pour pouvoir -les utiliser. - -La syntaxe générale est : - -@example -guix environment @var{options} @var{paquet}@dots{} -@end example - -L'exemple suivant crée un nouveau shell préparé pour le développement de -GNU@tie{}Guile : - -@example -guix environment guile -@end example - -Si les dépendances requises ne sont pas déjà construites, @command{guix -environment} les construit automatiquement. L'environnement du nouveau -shell est une version améliorée de l'environnement dans lequel @command{guix -environment} a été lancé. Il contient les chemins de recherche nécessaires -à la construction du paquet donné en plus des variables d'environnement -existantes. Pour créer un environnement « pur », dans lequel les variables -d'environnement de départ ont été nettoyées, utilisez l'option -@code{--pure}@footnote{Les utilisateurs ajoutent parfois à tord des valeurs -supplémentaires dans les variables comme @code{PATH} dans leur -@file{~/.bashrc}. En conséquence, lorsque @code{guix environment} le lance, -Bash peut lire @file{~/.bashrc}, ce qui produit des « impuretés » dans ces -variables d'environnement. C'est une erreur de définir ces variables -d'environnement dans @file{.bashrc} ; à la place, elles devraient être -définie dans @file{.bash_profile}, qui est sourcé uniquement par les shells -de connexion. @xref{Bash Startup Files,,, bash, The GNU Bash Reference -Manual}, pour des détails sur les fichiers de démarrage de Bash.}. - -@vindex GUIX_ENVIRONMENT -@command{guix environment} définie la variable @code{GUIX_ENVIRONMENT} dans -le shell qu'il crée ; sa valeur est le nom de fichier du profil de cet -environnement. Cela permet aux utilisateur, disons, de définir un prompt -spécifique pour les environnement de développement dans leur @file{.bashrc} -(@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) : - -@example -if [ -n "$GUIX_ENVIRONMENT" ] -then - export PS1="\u@@\h \w [dev]\$ " -fi -@end example - -@noindent -...@: or to browse the profile: - -@example -$ ls "$GUIX_ENVIRONMENT/bin" -@end example - -En plus, plus d'un paquet peut être spécifié, auquel cas l'union des entrées -des paquets données est utilisée. Par exemple, la commande ci-dessous crée -un shell où toutes les dépendances de Guile et Emacs sont disponibles : - -@example -guix environment guile emacs -@end example - -Parfois, une session shell interactive est inutile. On peut invoquer une -commande arbitraire en plaçant le jeton @code{--} pour séparer la commande -du reste des arguments : - -@example -guix environment guile -- make -j4 -@end example - -Dans d'autres situations, il est plus pratique de spécifier la liste des -paquets requis dans l'environnement. Par exemple, la commande suivante -lance @command{python} dans un environnement contenant Python@tie{}2.7 et -NumPy : - -@example -guix environment --ad-hoc python2-numpy python-2.7 -- python -@end example - -En plus, on peut vouloir les dépendance d'un paquet et aussi des paquets -supplémentaires qui ne sont pas des dépendances à l'exécution ou à la -construction, mais qui sont utiles au développement tout de même. À cause -de cela, le drapeau @code{--ad-hoc} est positionnel. Les paquets qui -apparaissent avant @code{--ad-hoc} sont interprétés comme les paquets dont -les dépendances seront ajoutées à l'environnement. Les paquets qui -apparaissent après @code{--ad-hoc} sont interprétés comme les paquets à -ajouter à l'environnement directement. Par exemple, la commande suivante -crée un environnement de développement pour Guix avec les paquets Git et -strace en plus : - -@example -guix environment guix --ad-hoc git strace -@end example - -Parfois il est souhaitable d'isoler l'environnement le plus possible, pour -une pureté et une reproductibilité maximale. En particulier, lorsque vous -utilisez Guix sur une distribution hôte qui n'est pas GuixSD, il est -souhaitable d'éviter l'accès à @file{/usr/bin} et d'autres ressources du -système depuis les environnements de développement. Par exemple, la -commande suivante crée un REPL Guile dans un « conteneur » où seuls le dépôt -et le répertoire de travail actuel sont montés : - -@example -guix environment --ad-hoc --container guile -- guile -@end example - -@quotation Remarque -L'option @code{--container} requiert Linux-libre 3.19 ou supérieur. -@end quotation - -Les options disponibles sont résumées ci-dessous. - -@table @code -@item --root=@var{fichier} -@itemx -r @var{fichier} -@cindex environnement persistent -@cindex racine du ramasse-miettes, pour les environnements -Fait de @var{fichier} un lien symbolique vers le profil de cet -environnement, et l'enregistre comme une racine du ramasse-miettes. - -C'est utile si vous souhaitez protéger votre environnement du -ramasse-miettes, pour le rendre « persistent ». - -Lorsque cette option est omise, l'environnement n'est protégé du -ramasse-miettes que le temps de la session @command{guix environment}. Cela -signifie que la prochaine fois que vous créerez le même environnement, vous -pourriez avoir à reconstruire ou télécharger des paquets. @xref{Invoquer guix gc}, pour plus d'informations sur les racines du GC. - -@item --expression=@var{expr} -@itemx -e @var{expr} -Crée un environnement pour le paquet ou la liste de paquets en lesquels -s'évalue @var{expr}. - -Par exemple, lancer : - -@example -guix environment -e '(@@ (gnu packages maths) petsc-openmpi)' -@end example - -démarre un shell avec l'environnement pour cette variante spécifique du -paquet PETSc. - -Lancer : - -@example -guix environment --ad-hoc -e '(@@ (gnu) %base-packages)' -@end example - -démarre un shell où tous les paquets de base de GuixSD sont disponibles. - -Les commande au-dessus n'utilisent que les sorties par défaut des paquets -donnés. Pour choisir d'autres sorties, on peut spécifier des pairs : - -@example -guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) "include")' -@end example - -@item --load=@var{fichier} -@itemx -l @var{fichier} -Crée un environnement pour le paquet ou la liste de paquets en lesquels -@var{fichier} s'évalue. - -Par exemple, @var{fichier} peut contenir une définition comme celle-ci -(@pxref{Définition des paquets}) : - -@example -@verbatiminclude environment-gdb.scm -@end example - -@item --manifest=@var{fichier} -@itemx -m @var{fichier} -Crée un environnement pour les paquets contenus dans l'objet manifeste -renvoyé par le code Scheme dans @var{fichier}. - -C'est similaire à l'option de même nom de @command{guix package} -(@pxref{profile-manifest, @option{--manifest}}) et utilise les même fichiers -manifestes. - -@item --ad-hoc -Inclut tous les paquets spécifiés dans l'environnement qui en résulte, comme -si un paquet @i{ad hoc} était spécifié, avec ces paquets comme entrées. -Cette option est utile pour créer un environnement rapidement sans avoir à -écrire une expression de paquet contenant les entrées désirées. - -Par exemple la commande : - -@example -guix environment --ad-hoc guile guile-sdl -- guile -@end example - -lance @command{guile} dans un environnement où Guile et Guile-SDDL sont -disponibles. - -Remarquez que cet exemple demande implicitement la sortie par défaut de -@code{guile} et @code{guile-sdl}, mais il est possible de demander une -sortie spécifique — p.@: ex.@: @code{glib:bin} demande la sortie @code{bin} -de @code{glib} (@pxref{Des paquets avec plusieurs résultats}). - -Cette option peut être composée avec le comportement par défaut de -@command{guix environment}. Les paquets qui apparaissent avant -@code{--ad-hoc} sont interprétés comme les paquets dont les dépendances -seront ajoutées à l'environnement, le comportement par défaut. Les paquets -qui apparaissent après @code{--ad-hoc} sont interprétés comme les paquets à -ajouter à l'environnement directement. - -@item --pure -Nettoie les variables d'environnement existantes lors de la construction du -nouvel environnement. Cela a pour effet de créer un environnement dans -lequel les chemins de recherche ne contiennent que des entrées de paquets. - -@item --search-paths -Affiche les définitions des variables d'environnement qui composent -l'environnement. - -@item --system=@var{système} -@itemx -s @var{système} -Essaye de construire pour @var{système} — p.@: ex.@: @code{i686-linux}. - -@item --container -@itemx -C -@cindex conteneur -Lance @var{commande} dans un conteneur isolé. Le répertoire de travail -actuel en dehors du conteneur est monté dans le conteneur. En plus, à moins -de le changer avec @code{--user}, un répertoire personnel fictif est créé -pour correspondre à celui de l'utilisateur actuel et @file{/etc/passwod} est -configuré en conséquence. Le processus est lancé en tant que l'utilisateur -actuel en dehors du conteneur, mais a les privilèges root dans le contexte -du conteneur. - -@item --network -@itemx -N -Pour les conteneurs, partage l'espace de nom du réseau avec le système -hôte. Les conteneurs créés sans cette option n'ont accès qu'à l'interface -de boucle locale. - -@item --link-profile -@itemx -P -Pour les conteneurs, lie le profil de l'environnement à -@file{~/.guix-profile} dans le conteneur. C'est équivalent à lance la -commande @command{ln -s $GUIX_ENVIRONMENT ~/.guix-profile} dans le -conteneur. La liaison échouera et annulera l'environnement si le répertoire -existe déjà, ce qui sera sans doute le cas si @command{guix environment} est -invoqué dans le répertoire personnel de l'utilisateur. - -Certains paquets sont configurés pour chercher des fichiers de configuration -et des données dans @code{~/.guix-profile}@footnote{Par exemple, le paquet -@code{fontconfig} inspecte @file{~/.guix-profile/share/fonts} pour trouver -des polices supplémentaires.} ; @code{--link-profile} permet à ces -programmes de se comporter comme attendu dans l'environnement. - -@item --user=@var{utilisateur} -@itemx -u @var{utilisateur} -Pour les conteneurs, utilise le nom d'utilisateur @var{utilisateur} à la -place de l'utilisateur actuel. L'entrée générée dans @file{/etc/passwod} -dans le conteneur contiendra le nom @var{utilisateur} ; le répertoire -personnel sera @file{/home/UTILISATEUR} ; et aucune donnée GECOS ne sera -copiée. @var{utilisateur} n'a pas besoin d'exister sur le système. - -En plus, tous les chemins partagés ou exposés (voir @code{--share} et -@code{--expose} respectivement) dont la cible est dans le répertoire -personnel de l'utilisateur seront remontés relativement à -@file{/home/UTILISATEUR} ; cela comprend le montage automatique du -répertoire de travail actuel. - -@example -# exposera les chemins comme /home/foo/wd, /home/foo/test et /home/foo/target -cd $HOME/wd -guix environment --container --user=foo \ - --expose=$HOME/test \ - --expose=/tmp/target=$HOME/target -@end example - -Bien que cela limite la fuite de l'identité de l'utilisateur à travers le -chemin du répertoire personnel et des champs de l'utilisateur, ce n'est -qu'un composant utile pour une solution d'anonymisation ou de préservation -de la vie privée — pas une solution en elle-même. - -@item --expose=@var{source}[=@var{cible}] -Pour les conteneurs, expose le système de fichiers @var{source} du système -hôte comme un système de fichiers en lecture seule @var{cible} dans le -conteneur. Si @var{cible} n'est pas spécifiée, @var{source} est utilisé -comme point de montage dans le conteneur. - -L'exemple ci-dessous crée un REPL Guile dans un conteneur dans lequel le -répertoire personnel de l'utilisateur est accessible en lecture-seule via le -répertoire @file{/exchange} : - -@example -guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile -@end example - -@item --share=@var{source}[=@var{cible}] -Pour les conteneurs, partage le système de fichiers @var{soruce} du système -hôte comme un système de fichiers en lecture-écriture @var{cible} dans le -conteneur. Si @var{cible} n'est pas spécifiée, @var{source} est utilisée -comme point de montage dans le conteneur. - -L'exemple ci-dessous crée un REPL Guile dans un conteneur dans lequel le -répertoire personnel de l'utilisateur est accessible en lecture-écriture via -le répertoire @file{/exchange} : - -@example -guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile -@end example -@end table - -@command{guix environment} supporte aussi toutes les options de construction -que @command{guix build} supporte (@pxref{Options de construction communes}). - @node Invoquer guix publish @section Invoquer @command{guix publish} @@ -8657,12 +9583,11 @@ Le but de @command{guix publish} est de vous permettre de partager facilement votre dépôt avec d'autres personnes qui peuvent ensuite l'utiliser comme serveur de substituts (@pxref{Substituts}). -Lorsque @command{guix publish} est lancé, il crée un serveur HTTP qui permet -à n'importe qui avec un accès réseau d'y récupérer des substituts. Cela -signifie que toutes les machines qui font tourner Guix peuvent aussi agir -comme une ferme de construction, puisque l'interface HTTP est compatible -avec Hydra, le logiciel derrière la ferme de construction -@code{hydra.gnu.org}. +When @command{guix publish} runs, it spawns an HTTP server which allows +anyone with network access to obtain substitutes from it. This means that +any machine running Guix can also act as if it were a build farm, since the +HTTP interface is compatible with Hydra, the software behind the +@code{@value{SUBSTITUTE-SERVER}} build farm. Pour des raisons de sécurité, chaque substitut est signé, ce qui permet aux destinataires de vérifier leur authenticité et leur intégrité @@ -8706,7 +9631,7 @@ fournit un manière pratique de vérifier ce qu'un serveur fournit En bonus, @command{guix publish} sert aussi un miroir adressé par le contenu des fichiers source référencées dans les enregistrements @code{origin} (@pxref{Référence d'origine}). Par exemple, en supposant que @command{guix -publish} tourne sur @code{example.org}, l'URL suivante renverra le fichie +publish} tourne sur @code{example.org}, l'URL suivante renverra le fichier brut @file{hello-2.10.tar.gz} avec le hash SHA256 donné (représenté sous le format @code{nix-base32}, @pxref{Invoquer guix hash}) : @@ -8730,8 +9655,9 @@ Lorsque @command{guix-daemon} est configuré pour sauvegarder les journaux de construction compressés, comme c'est le cas par défaut (@pxref{Invoquer guix-daemon}), les URL @code{/log} renvoient le journal compressé tel-quel, avec un en-tête @code{Content-Type} ou @code{Content-Encoding} approprié. Nous recommandons de lancer @command{guix-daemon} avec -@code{--log-compression=gzip} pace que les navigateurs web les décompressent -automatiquement, ce qui n'est pas le cas avec la compression bzip2. +@code{--log-compression=gzip} parce que les navigateurs web les +décompressent automatiquement, ce qui n'est pas le cas avec la compression +bzip2. Les options suivantes sont disponibles : @@ -8776,7 +9702,7 @@ la volée. Cela réduit la bande passante disponible, surtout quand la compression est activée puisqu'elle pourrait être limitée par le CPU. Un autre inconvénient au mode par défaut est que la taille des archives n'est pas connue à l'avance, donc @command{guix publish} n'ajoute pas l'en-tête -@code{Content-Length} à ses résponses, ce qui empêche les clients de savoir +@code{Content-Length} à ses réponses, ce qui empêche les clients de savoir la quantité de données à télécharger. À l'inverse, lorsque @option{--cache} est utilisée, la première requête pour @@ -8840,9 +9766,9 @@ Reference Manual}) sur @var{pport} (37146 par défaut). C'est surtout utile pour déboguer un serveur @command{guix publish} qui tourne. @end table -Activer @command{guix publish} sur un système GuixSD est vraiment une seule -ligne : instantiez simplement un service @code{guix-publish-service-type} -dans le champs @code{services} de votre déclaration @code{operating-system} +Enabling @command{guix publish} on Guix System is a one-liner: just +instantiate a @code{guix-publish-service-type} service in the +@code{services} field of the @code{operating-system} declaration (@pxref{guix-publish-service-type, @code{guix-publish-service-type}}). Si vous avez installé Guix sur une « distro extérieure », suivez ces @@ -8904,21 +9830,21 @@ donné. La sortie de la commande ressemble à : @smallexample -$ guix challenge --substitute-urls="https://hydra.gnu.org https://guix.example.org" -mise à jour de la liste des substituts depuis 'https://hydra.gnu.org'... 100.0% -mise à jour de la liste des substituts depuis 'https://guix.example.org'... 100.0% -le contenu de /gnu/store/@dots{}-openssl-1.0.2d diffère : - empreinte locale : 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q - https://hydra.gnu.org/nar/@dots{}-openssl-1.0.2d : 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q - https://guix.example.org/nar/@dots{}-openssl-1.0.2d : 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim -le contenu de /gnu/store/@dots{}-git-2.5.0 diffère : - empreinte locale : 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha - https://hydra.gnu.org/nar/@dots{}-git-2.5.0 : 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f - https://guix.example.org/nar/@dots{}-git-2.5.0 : 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 -le contenu de /gnu/store/@dots{}-pius-2.1.1 diffère : - empreinte locale : 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax - https://hydra.gnu.org/nar/@dots{}-pius-2.1.1 : 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax - https://guix.example.org/nar/@dots{}-pius-2.1.1 : 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs +$ guix challenge --substitute-urls="https://@value{SUBSTITUTE-SERVER} https://guix.example.org" +updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER}'... 100.0% +updating list of substitutes from 'https://guix.example.org'... 100.0% +/gnu/store/@dots{}-openssl-1.0.2d contents differ: + local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q + https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q + https://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim +/gnu/store/@dots{}-git-2.5.0 contents differ: + local hash: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha + https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f + https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 +/gnu/store/@dots{}-pius-2.1.1 contents differ: + local hash: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax + https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax + https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs @dots{} @@ -8937,34 +9863,32 @@ les éléments du dépôt pour lesquels les serveurs ont obtenu un résultat différent de la construction locale. @cindex non-déterminisme, dans les constructions des paquets -Dans l'exemple, @code{guix.example.org} obtient toujours une réponse -différente. Inversement, @code{hydra.gnu.org} est d'accord avec les -constructions locale, sauf dans le cas de Git. Cela peut indiquer que le -processus de construction de Git est non-déterministe, ce qui signifie que -sa sortie diffère en fonction de divers choses que Guix ne contrôle pas -parfaitement, malgré l'isolation des constructions (@pxref{Fonctionnalités}). Les -sources les plus communes de non-déterminisme comprennent l'ajout -d'horodatage dans les résultats des constructions, l'inclusion de nombres -aléatoires et des listes de fichiers ordonnés par numéro d'inœud. Voir -@uref{https://reproducible-builds.org/docs/}, pour plus d'informations. +As an example, @code{guix.example.org} always gets a different answer. +Conversely, @code{@value{SUBSTITUTE-SERVER}} agrees with local builds, +except in the case of Git. This might indicate that the build process of +Git is non-deterministic, meaning that its output varies as a function of +various things that Guix does not fully control, in spite of building +packages in isolated environments (@pxref{Fonctionnalités}). Most common sources +of non-determinism include the addition of timestamps in build results, the +inclusion of random numbers, and directory listings sorted by inode number. +See @uref{https://reproducible-builds.org/docs/}, for more information. Pour trouver ce qui ne va pas avec le binaire de Git, on peut faire quelque chose comme cela (@pxref{Invoquer guix archive}) : @example -$ wget -q -O - https://hydra.gnu.org/nar/@dots{}-git-2.5.0 \ +$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \ | guix archive -x /tmp/git $ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git @end example -Cette commande montre les différences entre les fichiers qui résultent de la -construction locale et des fichiers qui résultent de la construction sur -@code{hydra.gnu.org} (@pxref{Overview, Comparing and Merging Files,, -diffutils, Comparing and Merging Files}). La commande @command{diff} -fonctionne bien avec des fichiers texte. Lorsque des fichiers binaires -diffèrent cependant, @uref{https://diffoscope.org/, Diffoscope} est une -meilleure option. C'est un outil qui aide à visualiser les différences -entre toute sorte de fichiers. +This command shows the difference between the files resulting from the local +build, and the files resulting from the build on +@code{@value{SUBSTITUTE-SERVER}} (@pxref{Overview, Comparing and Merging +Files,, diffutils, Comparing and Merging Files}). The @command{diff} +command works great for text files. When binary files differ, a better +option is @uref{https://diffoscope.org/, Diffoscope}, a tool that helps +visualize differences for all kinds of files. Une fois que vous avez fait ce travail, vous pourrez dire si les différences sont dues au non-déterminisme du processus de construction ou à la @@ -8975,9 +9899,9 @@ n'implique pas que Guix, mais une grande partie de la communauté des logiciels libres. Pendant ce temps, @command{guix challenge} est un outil pour aider à corriger le problème. -Si vous écrivez un paquet pour Guix, nous vous encourageons à vérifier si -@code{hydra.gnu.org} et d'autres serveurs de substituts obtiennent le même -résultat que vous avec : +If you are writing packages for Guix, you are encouraged to check whether +@code{@value{SUBSTITUTE-SERVER}} and other substitute servers obtain the +same build result as you did with: @example $ guix challenge @var{paquet} @@ -9116,11 +10040,11 @@ guix container exec @var{pid} @var{programme} @var{arguments}@dots{} @var{pid} spécifie le PID du conteneur lancé. @var{programme} spécifie le nom du fichier exécutable dans le système de fichiers racine du conteneur. -@var{arguments} sont les options supplémentairesà passer à @var{programme}. +@var{arguments} sont les options supplémentaires à passer à @var{programme}. -La commande suivante lance un shell de connexion interactif dans un -conteneur GuixSD, démarré par @command{guix system container} et dont le PID -est 9001 : +The following command launches an interactive login shell inside a Guix +system container, started by @command{guix system container}, and whose +process ID is 9001: @example guix container exec 9001 /run/current-system/profile/bin/bash --login @@ -9145,7 +10069,7 @@ tourner @command{guix publish} (@pxref{Invoquer guix publish}). @cindex statistiques sur les substituts @cindex disponibilité des substituts -@cindex substuts, disponibilité +@cindex substituts, disponibilité @cindex weather, disponibilité des substituts Voici un exemple : @@ -9173,14 +10097,16 @@ https://guix.example.org @end example @cindex intégration continue, statistiques -Comme vous pouvez le voir, elle rapporte le pourcentage des paquets pour -lesquels des substituts sont disponibles sur le serveur — indépendamment du -fait que les substituts soient activés, et indépendamment du fait que la -clef de signature du serveur soit autorisée. Elle rapporte aussi la taille -des archives compressées fournies par le serveur, la taille des éléments du -dépôt correspondant dans le dépôt (en supposant que la déduplication soit -désactivée) et la vitesse du serveur. La deuxième partie donne des -statistiques sur l'intégration continue (CI), si le serveur le supporte. +As you can see, it reports the fraction of all the packages for which +substitutes are available on the server---regardless of whether substitutes +are enabled, and regardless of whether this server's signing key is +authorized. It also reports the size of the compressed archives (``nars'') +provided by the server, the size the corresponding store items occupy in the +store (assuming deduplication is turned off), and the server's throughput. +The second part gives continuous integration (CI) statistics, if the server +supports it. In addition, using the @option{--coverage} option, +@command{guix weather} can list ``important'' package substitutes missing on +the server (see below). Pour cela, @command{guix weather} récupère par HTTP(S) les métadonnées (@dfn{narinfos}@ de tous les éléments du dépôts pertinents. Comme @@ -9210,6 +10136,38 @@ Plutôt que de demander des substituts pour tous les paquets, demande uniquement les paquets spécifiés dans @var{fichier}. @var{fichier} doit contenir un @dfn{manifeste} comme avec l'option @code{-m} de @command{guix package} (@pxref{Invoquer guix package}). + +@item --coverage[=@var{count}] +@itemx -c [@var{count}] +Report on substitute coverage for packages: list packages with at least +@var{count} dependents (zero by default) for which substitutes are +unavailable. Dependent packages themselves are not listed: if @var{b} +depends on @var{a} and @var{a} has no substitutes, only @var{a} is listed, +even though @var{b} usually lacks substitutes as well. The result looks +like this: + +@example +$ guix weather --substitute-urls=https://ci.guix.fr.info -c 10 +computing 8,983 package derivations for x86_64-linux... +looking for 9,343 store items on https://ci.guix.fr.info... +updating substitutes from 'https://ci.guix.fr.info'... 100.0% +https://ci.guix.fr.info + 64.7% substitutes available (6,047 out of 9,343) +@dots{} +2502 packages are missing from 'https://ci.guix.fr.info' for 'x86_64-linux', among which: + 58 kcoreaddons@@5.49.0 /gnu/store/@dots{}-kcoreaddons-5.49.0 + 46 qgpgme@@1.11.1 /gnu/store/@dots{}-qgpgme-1.11.1 + 37 perl-http-cookiejar@@0.008 /gnu/store/@dots{}-perl-http-cookiejar-0.008 + @dots{} +@end example + +What this example shows is that @code{kcoreaddons} and presumably the 58 +packages that depend on it have no substitutes at @code{ci.guix.fr.info}; +likewise for @code{qgpgme} and the 46 packages that depend on it. + +If you are a Guix developer, or if you are taking care of this build farm, +you'll probably want to have a closer look at these packages: they may +simply fail to build. @end table @node Invoquer guix processes @@ -9270,756 +10228,9 @@ ClientPID: 19419 ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{} @end example -@c ********************************************************************* -@node Distribution GNU -@chapter Distribution GNU - -@cindex Distribution Système Guix -@cindex GuixSD -Guix fournit aussi une distribution du système GNU contenant uniquement des -logiciels libres@footnote{Le terme « libre » se réfère ici bien sûr à -@url{http://www.gnu.org/philosophy/free-sw.fr.html,la liberté offerte à -l'utilisateur de ces logiciels}.}. On peut installer la distribution -elle-même (@pxref{Installation du système}), mais on peut aussi installer Guix -comme gestionnaire de paquets par dessus un système GNU/Linux déjà installé -(@pxref{Installation}). Pour distinguer ces deux cas, on appelle la -distribution autonome « Distribution Système Guix » ou GuixSD. - -la distribution fournit les paquets cœur de GNU comme la GNU libc, GCC et -Binutils, ainsi que de nombreuses applications GNU et non-GNU. La liste -complète des paquets disponibles se trouve -@url{http://www.gnu.org/software/guix/packages,en ligne} ou en lançant -@command{guix package} (@pxref{Invoquer guix package}) : - -@example -guix package --list-available -@end example - -Notre but est de fournir une distribution logicielle entièrement libre de -GNU/Linux et d'autres variantes de GNU, en se concentrant sur la promotion -et l'intégration étroite des composants GNU en insistant sur les programmes -et les outils qui aident l'utilisateur à exercer ses libertés. - -Les paquets sont actuellement disponibles pour les plateformes suivantes : - -@table @code - -@item x86_64-linux -l'architecture Intel et AMD @code{x86_64} avec le noyau Linux-libre ; - -@item i686-linux -l'architecture Intel 32-bits (IA32) avec le noyau Linux-libre ; - -@item armhf-linux -l'architecture ARMv7-A avec gestion des flottants matérielle, Thumb-2 et -NEON, avec l'interface binaire applicative (ABI) EABI hard-float et le noyau -Linux-libre ; - -@item aarch64-linux -les processeurs ARMv8-A 64-bits en little-endian avec le noyau Linux-libre. -Le support est actuellement expérimental et limité. @xref{Contribuer}, -pour savoir comment aider ! - -@item mips64el-linux -les processeurs MIPS 64-bits little-endian, spécifiquement la série -Loongson, ABI n32, avec le noyau Linux-libre. - -@end table - -GuixSD lui-même est actuellement disponible sur @code{i686} et -@code{x86_64}. - -@noindent -Pour des informations sur comment porter vers d'autres architectures et -d'autres noyau, @pxref{Porter}. - -@menu -* Installation du système:: Installer le système d'exploitation complet. -* Configuration système:: Configurer le système d'exploitation. -* Documentation:: Visualiser les manuels d'utilisateur des - logiciels. -* Installer les fichiers de débogage:: Nourrir le débogueur. -* Mises à jour de sécurité:: Déployer des correctifs de sécurité - rapidement. -* Modules de paquets:: Les paquets du point de vu du programmeur. -* Consignes d'empaquetage:: Faire grandir la distribution. -* Bootstrapping:: GNU/Linux depuis zéro. -* Porter:: Cibler une autre plateforme ou un autre noyau. -@end menu - -La construction de cette distribution est un effort collaboratif et nous -vous invitons à nous rejoindre ! @xref{Contribuer}, pour des informations -sur la manière de nous aider. - -@node Installation du système -@section Installation du système - -@cindex installer GuixSD -@cindex Distribution Système Guix -Cette section explique comment installer la distribution système Guix -(GuixSD) sur votre machine. Le gestionnaire de paquets Guix peut aussi être -installé sur un système GNU/Linux déjà installé, @pxref{Installation}. - -@ifinfo -@quotation Remarque -@c This paragraph is for people reading this from tty2 of the -@c installation image. -Vous lisez cette documentation avec un lecteur Info. Pour des détails sur -son utilisation, appuyez sur la touche @key{ENTRÉE} (« Entrée » ou « à la -ligne ») sur le lien suivant : @pxref{Top, Info reader,, info-stnd, -Stand-alone GNU Info}. Appuyez ensuite sur @kbd{l} pour revenir ici. - -Autrement, lancez @command{info info} dans un autre tty pour garder ce -manuel ouvert. -@end quotation -@end ifinfo - -@menu -* Limitations:: Ce à quoi vous attendre. -* Considérations matérielles:: Matériel supporté. -* Installation depuis une clef USB ou un DVD:: Préparer le média - d'installation. -* Préparer l'installation:: Réseau, partitionnement, etc. -* Effectuer l'installation:: Pour de vrai. -* Installer GuixSD dans une VM:: Jouer avec GuixSD@. -* Construire l'image d'installation:: D'où vient tout cela. -@end menu - -@node Limitations -@subsection Limitations - -À la version @value{VERSION}, la distribution système Guix (GuixSD) n'est -pas prête pour la production. Elle peut contenir des bogues et ne pas avoir -certaines fonctionnalités importantes. Ainsi, si vous cherche un système de -production stable qui respecte votre liberté en tant qu'utilisateur, une -bonne solution consiste à utiliser -@url{http://www.gnu.org/distros/free-distros.html, une des distributions -GNU/Linux mieux établie}. Nous espérons que vous pourrez bientôt passer à -GuixSD sans peur, bien sûr. Pendant ce temps, vous pouvez aussi utiliser -votre distribution actuelle et essayer le gestionnaire de paquet par dessus -celle-ci (@pxref{Installation}). - -Avant de procéder à l'installation, soyez conscient de ces limitations les -plus importantes qui s'appliquent à la version @value{VERSION} : - -@itemize -@item -Le procédé d'installation n'a pas d'interface utilisateur graphique et -requiert une certaine familiarité avec GNU/Linux (voir les sous-sections -suivantes pour avoir un aperçu de ce que cela signifie). - -@item -LVM (gestionnaire de volumes logiques) n'est pas supporté. - -@item -De plus en plus de services systèmes sont fournis (@pxref{Services}) mais -certains manquent toujours cruellement. - -@item -Plus de 7@tie{}500 paquets sont disponibles, mais vous pourrez parfois -trouver qu'un paquet utile est absent. - -@item -GNOME, Xfce, LXDE et Enlightenment sont disponibles (@pxref{Services de bureaux}), ainsi qu'un certain nombre de gestionnaires de fenêtres X11. -cependant, certaines applications graphiques peuvent manquer, ainsi que KDE. -@end itemize - -Vous êtes avertis ! Mais plus qu'un avertissement, c'est une invitation à -rapporter les problèmes (et vos succès !) et à nous rejoindre pour améliorer -la distribution. @xref{Contribuer}, pour plus d'info. - - -@node Considérations matérielles -@subsection Considérations matérielles - -@cindex support matériel sur GuixSD -GNU@tie{}GuixSD se concentre sur le respect des libertés de ses -utilisateurs. Il est construit autour du noyau Linux-libre, ce qui signifie -que seuls les matériels pour lesquels des pilotes logiciels et des -microgiciels libres sont disponibles sont supportés. De nos jours, une -grande gamme de matériel qu'on peut acheter est supporté par GNU/Linux-libre -— des claviers aux cartes graphiques en passant par les scanners et les -contrôleurs Ethernet. Malheureusement, il reste des produit dont les -fabriquants refusent de laisser le contrôle aux utilisateurs sur leur propre -utilisation de l'ordinateur, et ces matériels ne sont pas supportés par -GuixSD. - -@cindex WiFi, support matériel -L'un des types de matériels où les pilotes ou les microgiciels sont le moins -disponibles sont les appareils WiFi. Les appareils WiFi connus pour -fonctionner sont ceux qui utilisent des puces Atheros (AR9271 et AR7010) qui -correspondent au pilote @code{ath9k} de Linux-libre, et ceux qui utilisent -des puces Broadcom/AirForce (BCM43xx avec la révision Wireless-Core 5), qui -correspondent au pilote @code{b43-open} de Linux-libre. Des microgiciels -libres existent pour les deux et sont disponibles directement sur GuixSD, -dans @var{%base-firmware} (@pxref{Référence de système d'exploitation, -@code{firmware}}). - -@cindex RYF, Respects Your Freedom -La @uref{https://www.fsf.org/, Free Software Foundation} a un programme de -certification nommé @uref{https://www.fsf.org/ryf, @dfn{Respects Your -Freedom}} (RYF), pour les produits matériels qui respectent votre liberté et -votre vie privée en s'assurant que vous avez le contrôle sur l'appareil. -Nous vous encourageons à vérifier la liste des appareils certifiés par RYF. - -Une autre ressource utile est le site web @uref{https://www.h-node.org/, -H-Node}. Il contient un catalogue d'appareils avec des informations sur -leur support dans GNU/Linux. - - -@node Installation depuis une clef USB ou un DVD -@subsection Installation depuis une clef USB ou un DVD - -Une image d'installation ISO-9660 téléchargeable depuis -@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{système}.iso.xz} -peut être écrite sur une clef USB ou gravée sur un DVD, où @var{système} est -l'une de ces valeurs : - -@table @code -@item x86_64-linux -pour un système GNU/Linux sur un CPU compatible Intel/AMD 64-bits ; - -@item i686-linux -pour un système GNU/Linux sur un CPU compatible Intel 32-bits ; -@end table - -@c start duplication of authentication part from ``Binary Installation'' -Assurez-vous de télécharger les fichiers @file{.sig} associés et de vérifier -l'authenticité de l'image avec, de cette manière : - -@example -$ wget https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig -$ gpg --verify guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig -@end example - -Si cette commande échoue parce que vous n'avez pas la clef publique requise, -lancez cette commande pour l'importer : - -@example -$ gpg --keyserver @value{KEY-SERVER} \ - --recv-keys @value{OPENPGP-SIGNING-KEY-ID} -@end example - -@noindent -@c end duplication -et relancez la commande @code{gpg --verify}. - -Cette image contient les outils nécessaires à l'installation. Elle est -faite pour être copiée @emph{telle quelle} sur une clef USB assez grosse ou -un DVD. - -@unnumberedsubsubsec Copie sur une clef USB - -Pour copier l'image sur une clef USB, suivez ces étapes : - -@enumerate -@item -Décompressez l'image avec la commande @command{xz} : - -@example -xz -d guixsd-install-@value{VERSION}.@var{système}.iso.xz -@end example - -@item -Insérez la clef USB de 1@tie{}Gio ou plus dans votre machine et déterminez -son nom d'appareil. En supposant que la clef usb est connue sous le nom de -@file{/dev/sdX}, copiez l'image avec : - -@example -dd if=guixsd-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX -sync -@end example - -Accéder à @file{/dev/sdX} requiert généralement les privilèges -super-utilisateur. -@end enumerate - -@unnumberedsubsubsec Graver sur un DVD - -Pour copier l'image sur un DVD, suivez ces étapes : - -@enumerate -@item -Décompressez l'image avec la commande @command{xz} : - -@example -xz -d guixsd-install-@value{VERSION}.@var{système}.iso.xz -@end example - -@item -Insérez un DVD vierge dans votre machine et déterminez son nom d'appareil. -En supposant que le DVD soit connu sont le nom de @file{/dev/srX}, copiez -l'image avec : - -@example -growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.x86_64.iso -@end example - -Accéder à @file{/dev/srX} requiert généralement les privilèges -super-utilisateur. -@end enumerate - -@unnumberedsubsubsec Démarrage - -Une fois que c'est fait, vous devriez pouvoir redémarrer le système et -démarrer depuis la clef USB ou le DVD. Pour cela, vous devrez généralement -entrer dans le menu de démarrage BIOS ou UEFI, où vous pourrez choisir de -démarrer sur la clef USB. - -@xref{Installer GuixSD dans une VM}, si, à la place, vous souhaitez installer -GuixSD dans une machine virtuelle (VM). - - -@node Préparer l'installation -@subsection Préparer l'installation - -Une fois que vous avez démarré votre ordinateur sur le média d'installation, -vous devriez vous retrouver sur un prompt en root. Plusieurs TTY sont -configurées et peuvent être utilisés pour lancer des commandes en root. Le -TTY2 affiche cette documentation, dans la quelle vous pouvez naviguer avec -les commandes du lecteur Info (@pxref{Top,,, info-stnd, Stand-alone GNU -Info}). Le démon de souris GPM tourne sur le système d'installation, ce qui -vous permet de sélectionner du texte avec le bouton gauche de la souris et -de le coller en appuyant sur la molette. - -@quotation Remarque -L'installation nécessite un accès au réseau pour que les dépendances -manquantes de votre configuration système puissent être téléchargées. Voyez -la section « réseau » plus bas. -@end quotation - -Le système d'installation inclus plusieurs outils usuels pour requis pour -cette tâche. Mais c'est aussi un système GuixSD complet, ce qui signifie -que vous pouvez installer des paquets supplémentaires si vous en avez -besoin, avec @command{guix package} (@pxref{Invoquer guix package}). - -@subsubsection Disposition du clavier - -@cindex disposition du clavier -L'image d'installation utilise la disposition clavier qwerty (US). Si vous -voulez la changer, vous pouvez utiliser la commande @command{loadkeys}. Par -exemple, la commande suivante sélectionne la disposition Dvorak : - -@example -loadkeys dvorak -@end example - -Consultez les fichiers dans @file{/run/current-system/profile/share/keymaps} -pour trouver une liste des dispositions disponibles. Lancez @command{man -loadkey} pour plus d'informations. - -@subsubsection Réseau - -Lancez la commande suivante pour voir comment vos interfaces réseau sont -appelées : - -@example -ifconfig -a -@end example - -@noindent -@dots{} ou, avec la commande spécifique à GNU/Linux @command{ip} : - -@example -ip a -@end example - -@c http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20 -Les interfaces filaires ont un nom qui commence par @samp{e} ; par exemple, -l'interface qui correspond au premier contrôleur Ethernet sur la carte mère -est appelé @samp{eno1}. Les interfaces sans-fil ont un nom qui commence par -@samp{w}, comme @samp{w1p2s0}. - -@table @asis -@item Connexion filaire -Pour configure une connexion filaire, lancez la commande suivante, en -remplaçant @var{interface} par le nom de l'interface filaire que vous voulez -utiliser. - -@example -ifconfig @var{interface} up -@end example - -@item Connexion sans-fil -@cindex sans-fil -@cindex WiFi -Pour configurer le réseau sans-fil, vous pouvez créer un fichier de -configuration pour l'outil de configuration @command{wpa_supplicant} (son -emplacement importe peu) avec l'un des éditeurs de texte disponibles comme -@command{nano} : - -@example -nano wpa_supplicant.conf -@end example - -Par exemple, la déclaration qui suit peut aller dans ce fichier et -fonctionnera pour plusieurs réseaux sans-fil, si vous donnez le vrai SSID et -la phrase de passe pour le réseau auquel vous vous connectez : - -@example -network=@{ - ssid="@var{mon-ssid}" - key_mgmt=WPA-PSK - psk="la phrase de passe secrète du réseau" -@} -@end example - -Démarrez le service sans-file et lancez-le en tache de fond avec la commande -suivante (en remplaçant @var{interface} par le nom de l'interface réseau que -vous voulez utiliser) : - -@example -wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B -@end example - -Lancez @command{man wpa_supplicant} pour plus d'informations. -@end table - -@cindex DHCP -À partir de ce moment, vous avez besoin d'une adresse IP. Sur les réseaux -où les IP sont automatiquement attribuée par DHCP, vous pouvez lancer : - -@example -dhclient -v @var{interface} -@end example - -Essayez de pinger un serveur pour voir si le réseau fonctionne : - -@example -ping -c 3 gnu.org -@end example - -Mettre en place un accès réseau est presque toujours une nécessité parce que -l'image ne contient pas tous les logiciels et les outils dont vous pourriez -avoir besoin. - -@cindex installer par SSH -Si vous le souhaitez, vous pouvez continuer l'installation à distance en -démarrant un serveur SSH : - -@example -herd start ssh-daemon -@end example - -Assurez-vous soit de définir un mot de passe avec @command{passwd}, soit de -configurer l'authentification par clef OpenSSH avant de vous connecter. - -@subsubsection Partitionnement - -À moins que vous ne l'ayez déjà fait, l'étape suivante consiste à -partitionner le disque puis à formater les partitions cibles. - -L'image d'installation inclus plusieurs outils de partitionnement, dont -Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), -@command{fdisk}, et @command{cfdisk}. Lancez-en un et paramétrez votre -disque avec le partitionnement qui vous convient : - -@example -cfdisk -@end example - -Si votre disque utilise le format des tables de partitions GUID (GPT) et que -vous souhaitez installer un GRUB pour système BIOS (c'est le cas par -défaut), assurez-vous de créer qu'une partition de démarrage BIOS soit bien -disponible (@pxref{BIOS installation,,, grub, GNU GRUB manual}). - -@cindex EFI, installation -@cindex UEFI, installation -@cindex ESP, partition système EFI -Si vous souhaitez à la place utilise GRUB pour système EFI, vous devrez -avoir une @dfn{partition système EFI} (ESP) en FAT32. Cette partition -devrait être montée dans @file{/boot/efi} et doit avoir le drapeau -@code{esp}. P.@: ex.@: pour @command{parted} : - -@example -parted /dev/sda set 1 esp on -@end example - -@quotation Remarque -@vindex grub-bootloader -@vindex grub-efi-bootloader -Vous n'êtes pas sûr de savoir si vous devez utiliser un GRUB EFI ou BIOS ? -Si le répertoire @file{/sys/firmware/efi} existe sur l'image d'installation, -vous devriez probablement effectuer une installation EFI, avec -@code{grub-efi-bootloader}. Sinon, vous devriez utiliser le GRUB en BIOS, -@code{grub-bootloader}. @xref{Configuration du chargeur d'amorçage} pour plus -d'information sur le chargeur d'amorçage. -@end quotation - -Une fois que vous avez fini le partitionnement du disque dur cible, vous -devez créer un système de fichier sur les partitions@footnote{Actuellement -GuixSD ne supporte que les systèmes de fichiers ext4 et btrfs. En -particulier, le code qui lit les UUID des systèmes de fichiers et les -étiquettes ne fonctionne que pour ces types de systèmes de fichiers.}. Pour -l'ESP, si vous en avez une et en supposant que ce soit @file{/dev/sda1}, -lancez : - -@example -mkfs.fat -F32 /dev/sda1 -@end example - -Préférez assigner une étiquette au système de fichier pour que vous puissiez -vous y référer de manière fiable dans la déclaration @code{file-system} -(@pxref{Systèmes de fichiers}). On le fait habituellement avec l'option @code{-L} -de @command{mkfs.ext4} et des commandes liées. Donc, en supposant que la -partition racine soit sur @file{/dev/sda2}, on peut créer un système de -fichier avec pour étiquette @code{my-root} avec : - -@example -mkfs.ext4 -L my-root /dev/sda2 -@end example - -@cindex chiffrement du disque -Si vous voulez plutôt chiffrer la partition racine, vous pouvez utiliser les -utilitaires Cryptsetup et LUKS pour cela (voir @inlinefmtifelse{html, -@uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, -@code{man cryptsetup}} pour plus d'informations). En supposant que vous -voulez stocker la partition racine sur @file{/dev/sda2}, la séquence de -commandes suivante vous mènerait à ce résultat : - -@example -cryptsetup luksFormat /dev/sda2 -cryptsetup open --type luks /dev/sda2 my-partition -mkfs.ext4 -L my-root /dev/mapper/my-partition -@end example - -Une fois cela effectué, montez le système de fichier cible dans @file{/mnt} -avec une commande comme (de nouveau, en supposant que @code{my-root} est -l'étiquette du système de fichiers racine) : - -@example -mount LABEL=my-root /mnt -@end example - -Montez aussi tous les systèmes de fichiers que vous voudriez utiliser sur le -système cible relativement à ce chemin. Si vous avez un @file{/boot} sur -une partition séparé par exemple, montez-le sur @file{/mnt/boot} maintenant -pour qu'il puisse être trouvé par @code{guix system init} ensuite. - -Enfin, si vous souhaitez utiliser une ou plusieurs partitions de swap -(@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference -Manual}), assurez-vous de les initialiser avec @command{mkswap}. En -supposant que vous avez une partition de swap sur @file{/dev/sda3}, vous -pouvez lancer : - -@example -mkswap /dev/sda3 -swapon /dev/sda3 -@end example - -Autrement, vous pouvez utiliser un fichier de swap. Par exemple, en -supposant que dans le nouveau système vous voulez utiliser le fichier -@file{/swapfile} comme fichier de swap, vous lanceriez@footnote{Cet exemple -fonctionnera sur plusieurs types de systèmes de fichiers (p.@: ex.@: ext4). -Cependant, pour les systèmes de fichiers qui utilisent la copie sur écriture -(COW) comme btrfs, les étapes requises peuvent varier. Pour plus de -détails, regardez les pages de manuel de @command{mkswap} et -@command{swapon}.} : - -@example -# Cela représente 10 Gio d'espace d'échange. Ajustez « count » pour changer la taille. -dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240 -# Par sécurité, laissez le fichier en lecture et en écriture uniquement pour root. -chmod 600 /mnt/swapfile -mkswap /mnt/swapfile -swapon /mnt/swapfile -@end example - -Remarquez que si vous avez chiffré la partition racine et créé un fichier -d'échange dans son système de fichier comme décrit ci-dessus, alors le -chiffrement protégera aussi le fichier d'échange, comme n'importe quel -fichier de ce système de fichiers. - -@node Effectuer l'installation -@subsection Effectuer l'installation - -Lorsque la partition cible est prête et que les autres partitions sont -montées, on est prêt à commencer l'installation. Commencez par : - -@example -herd start cow-store /mnt -@end example - -Cela rend @file{/gnu/store} capable de faire de la copie sur écriture, de -sorte que les paquets ajoutés pendant l'installation sont écrits sur le -disque cible sur @file{/mnt} plutôt que gardés en mémoire. Cela est -nécessaire parce que la première phase de la commande @command{guix system -init} (voir plus bas) implique de télécharger ou de construire des éléments -de @file{/gnu/store} qui est initialement un système de fichiers en mémoire. - -Ensuite, vous devrez modifier un fichier et fournir la déclaration du -système à installer. Pour cela, le système d'installation propose trois -éditeurs de texte. Nous recommandons GNU nano (@pxref{Top,,, nano, GNU nano -Manual}), qui supporte la coloration syntaxique la correspondance de -parenthèses ; les autres éditeurs sont GNU Zile (un clone d'Emacs) et nvi -(un clone de l'éditeur @command{vi} original de BSD). Nous recommandons -vivement de stocker ce fichier sur le système de fichier racine cible, -disons en tant que @file{/mnt/etc/config.scm}. Sinon, vous perdrez votre -fichier de configuration une fois que vous aurez redémarré sur votre nouveau -système. - -@xref{Utiliser le système de configuration}, pour un aperçu de comment créer votre -fichier de configuration. Les exemples de configuration dont on parle dans -cette section sont disponibles dans @file{/etc/configuration} sur l'image -d'installation. Ainsi, pour commencer avec une configuration du système qui -fournit un serveur d'affichage graphique (un système de « bureau »), vous -pouvez lancer ce qui suit : - -@example -# mkdir /mnt/etc -# cp /etc/configuration/desktop.scm /mnt/etc/config.scm -# nano /mnt/etc/config.scm -@end example - -Vous devriez faire attention à ce que contient votre fichier de -configuration, en particulier : - -@itemize -@item -Assurez-vous que la forme @code{bootloader-configuration} se réfère à la -cible où vous voulez installer GRUB. Elle devrait aussi mentionner -@code{grub-bootloader} si vous installer GRUB en mode BIOS (ou « legacy ») -ou @code{grub-efi-bootloader} pour les système UEFI plus récents. Pour les -anciens systèmes, le champs @code{target} contient un périphérique comme -@code{/dev/sda} ; pour les systèmes UEFI il contient un chemin vers une -partition EFI montée, comme @code{/boot/efi}, et assurez-vous que ce chemin -est bien monté. - -@item -Assurez-vous que les étiquettes de vos systèmes de fichiers correspondent -aux valeurs de leur champs @code{device} dans votre configuration -@code{file-system}, en supposant que la configuration @code{file-system} -utilise la procédure @code{file-system-label} dans son champ @code{device}. - -@item -Si vous avez des partitions RAID ou chiffrées, assurez-vous d'ajouter un -champ @code{mapped-device} pour les décrire (@pxref{Périphériques mappés}). -@end itemize - -Une fois que vous avez fini les préparatifs sur le fichier de configuration, -le nouveau système peut être initialisé (rappelez-vous que le système de -fichiers racine cible est dans @file{/mnt}) : - -@example -guix system init /mnt/etc/config.scm /mnt -@end example - -@noindent -Cela copie tous les fichiers nécessaires et installe GRUB sur -@file{/dev/sdX} à moins que vous ne passiez l'option -@option{--no-bootloader}. Pour plus d'informations, @pxref{Invoquer guix system}. Cette commande peut engendrer des téléchargements ou des -constructions pour les paquets manquants, ce qui peut prendre du temps. - -Une fois que cette commande a terminée — et on l'espère réussi ! — vous -pouvez lancer @command{reboot} et démarrer sur votre nouveau système. Le -mot de passe @code{root} est d'abord vide ; les mots de passe des autres -utilisateurs doivent être initialisés avec la commande @command{passwd} en -tant que @code{root}, à mois que votre configuration ne spécifie autre chose -(@pxref{user-account-password, mot de passe des comptes utilisateurs}). - -@cindex mettre à jour GuixSD -À partir de maintenant, vous pouvez mettre à jour GuixSD lorsque vous le -souhaitez en lançant @command{guix pull} en tant que @code{root} -(@pxref{Invoquer guix pull}), puis en lançant @command{guix system -reconfigure} pour construire une nouvelle génération du système avec les -derniers paquets et les derniers services (@pxref{Invoquer guix system}). -Nous vous recommandons de le faire régulièrement pour que votre système -inclus les dernières mises à jour de sécurité (@pxref{Mises à jour de sécurité}). - -Rejoignez-nous sur @code{#guix} sur le réseau IRC Freenode ou sur -@file{guix-devel@@gnu.org} pour partager votre expérience — bonne ou -mauvaise. - -@node Installer GuixSD dans une VM -@subsection Installer GuixSD sur une machine virtuelle - -@cindex machine virtuelle, installation de GuixSD -@cindex serveur privé virtuel (VPS) -@cindex VPS (serveur privé virtuel) -Si vous souhaitez installer GuixSD sur une machine virtuelle (VM) ou un -serveur privé virtuel (VPS) plutôt que sur votre machine chérie, cette -section est faite pour vous. - -Pour démarrer une VM @uref{http://qemu.org/,QEMU} pour installer GuixSD sur -une image disque, suivez ces étapes : - -@enumerate -@item -Tout d'abord récupérez et décompressez l'image d'installation de GuixSD -comme décrit précédemment (@pxref{Installation depuis une clef USB ou un DVD}). - -@item -Créez une image disque qui contiendra le système installé. Pour créer une -image qcow2, utilise la commande @command{qemu-img} : - -@example -qemu-img create -f qcow2 guixsd.img 50G -@end example - -Le fichier qui en résulte sera bien plus petit que les 50 Go (habituellement -moins de 1 Mo) mais il grossira au fur et à mesure que le stockage virtuel -grossira. - -@item -Démarrez l'image d'installation USB dans une VM : - -@example -qemu-system-x86_64 -m 1024 -smp 1 \ - -net user -net nic,model=virtio -boot menu=on \ - -drive file=guixsd-install-@value{VERSION}.@var{system}.iso \ - -drive file=guixsd.img -@end example - -L'ordre des périphérique est important - -Dans la console de la VM, appuyez rapidement sur @kbd{F12} pour entrer dans -le menu de démarrage. Ensuite appuyez sur @kbd{2} et la touche @kbd{Entrée} -pour valider votre choix. - -@item -Vous êtes maintenant root dans la VM, continuez en suivant la procédure -d'installation. @xref{Préparer l'installation}, et suivez les -instructions. -@end enumerate - -Une fois l'installation terminée, vous pouvez démarrer le système dans votre -image @file{guixsd.img}. @xref{Lancer GuixSD dans une VM}, pour une manière de -faire. - -@node Construire l'image d'installation -@subsection Construire l'image d'installation - -@cindex image d'installation -L'image d'installation décrite plus haut a été construite avec la commande -@command{guix system}, plus précisément : - -@example -guix system disk-image gnu/system/install.scm -@end example - -Regardez le fichier @file{gnu/system/install.scm} dans l'arborescence des -sources et regardez aussi @ref{Invoquer guix system} pour plus -d'informations sur l'image d'installation. - -@subsection Construire l'image d'installation pour les cartes ARM - -De nombreuses cartes ARM requièrent une variante spécifique du chargeur -d'amorçage @uref{http://www.denx.de/wiki/U-Boot/, U-Boot}. - -Si vous construisez une image disque et que le chargeur d'amorçage n'est pas -disponible autrement (sur un autre périphérique d'amorçage etc), il est -recommandé de construire une image qui inclus le chargeur d'amorçage, plus -précisément : - -@example -guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) "A20-OLinuXino-Lime2")' -@end example - -@code{A20-OLinuXino-Lime2} est le nom de la carte. Si vous spécifiez une -carte invalide, une liste de cartes possibles sera affichée. @node Configuration système -@section Configuration système +@chapter Configuration système @cindex configuration du système La distribution système Guix utilise un mécanisme de configuration du @@ -10065,13 +10276,12 @@ est configuré et instancié. Ensuite nous montrons comment ce mécanisme peut * Configuration du chargeur d'amorçage:: Configurer le chargeur d'amorçage. * Invoquer guix system:: Instantier une configuration du système. -* Lancer GuixSD dans une VM:: Comment lancer GuixSD dans une machine - virtuelle. +* Running Guix in a VM:: How to run Guix System in a virtual machine. * Définir des services:: Ajouter de nouvelles définitions de services. @end menu @node Utiliser le système de configuration -@subsection Utiliser le système de configuration +@section Utiliser le système de configuration Le système d'exploitation est configuré en fournissant une déclaration @code{operating-system} dans un fichier qui peut être passé à la command @@ -10095,7 +10305,7 @@ importants (@pxref{Référence de système d'exploitation}, pour des détails su les champs disponibles) et comment @dfn{instancier} le système d'exploitation avec @command{guix system}. -@unnumberedsubsubsec Bootloader +@unnumberedsubsec Bootloader @cindex ancien système de démarrage, sur les machines Intel @cindex démarrage BIOS, sur les machines Intel @@ -10117,7 +10327,7 @@ Extensible Firmware Interface}) pour démarrer. Dans ce cas, le champ @xref{Configuration du chargeur d'amorçage}, pour plus d'informations sur les options de configuration disponibles. -@unnumberedsubsubsec Paquets visibles sur tout le système +@unnumberedsubsec Paquets visibles sur tout le système @vindex %base-packages Le champ @code{packages} liste les paquets qui seront visibles sur tout le @@ -10162,18 +10372,17 @@ le meilleur paquet pour un nom donné ou un nom et une version : %base-packages))) @end lisp -@unnumberedsubsubsec Services systèmes +@unnumberedsubsec Services systèmes @cindex services @vindex %base-services -Le champ @code{services} liste les @dfn{services système} à rendre -disponible lorsque le système démarre (@pxref{Services}). La déclaration -@code{operating-system} au-dessus spécifie que, en plus des services de -base, on veut que le démon ssh @command{lshd} écoute sur le port 2222 -(@pxref{Services réseau, @code{lsh-service}}). Sous le capot, -@code{lsh-service} s'arrange pour que @code{lshd} soit lancé avec les bonnes -options de la ligne de commande, éventuellement en générant des fichiers de -configuration (@pxref{Définir des services}). +The @code{services} field lists @dfn{system services} to be made available +when the system starts (@pxref{Services}). The @code{operating-system} +declaration above specifies that, in addition to the basic services, we want +the OpenSSH secure shell daemon listening on port 2222 (@pxref{Services réseau, @code{openssh-service-type}}). Under the hood, +@code{openssh-service-type} arranges so that @command{sshd} is started with +the right command-line options, possibly with supporting configuration files +generated as needed (@pxref{Définir des services}). @cindex personnalisation des services @findex modify-services @@ -10253,7 +10462,7 @@ l'expression suivante renvoie une liste qui contient tous les services dans %desktop-services) @end example -@unnumberedsubsubsec Instancier le système +@unnumberedsubsec Instancier le système En supposant que la déclaration @code{operating-system} est stockée dans le fichier @file{my-system-config.scm}, la commande @command{guix system @@ -10286,10 +10495,10 @@ actuelle n'est pas la dernière (p.@: ex.@: après avoir invoqué @command{guix system roll-back}), puisque l'opération pourrait remplacer une génération suivante (@pxref{Invoquer guix system}). -@unnumberedsubsubsec L'interface de programmation +@unnumberedsubsec L'interface de programmation Au niveau Scheme, la grosse déclaration @code{operating-system} est -instanciée avec la procédure monadique suivante (@pxref{La monad du dépôt}) : +instanciée avec la procédure monadique suivante (@pxref{La monade du dépôt}) : @deffn {Procédure monadique} operating-system-derivation os Renvoie une dérivation qui construit @var{os}, un objet @@ -10299,13 +10508,13 @@ La sortie de la dérivation est un répertoire qui se réfère à tous les paquets et d'autres fichiers supports requis pour instancier @var{os}. @end deffn -Cette procédure est fournie par le module @code{(gnu system)}. Avec -@code{(gnu srevices)} (@pxref{Services}), ce module contient les entrailles -de GuixSD. Ouvrez-le un jour ! +This procedure is provided by the @code{(gnu system)} module. Along with +@code{(gnu services)} (@pxref{Services}), this module contains the guts of +Guix System. Make sure to visit it! @node Référence de système d'exploitation -@subsection Référence de @code{operating-system} +@section Référence de @code{operating-system} Cette section résume toutes les options disponibles dans les déclarations @code{operating-system} (@pxref{Utiliser le système de configuration}). @@ -10462,7 +10671,7 @@ membres du groupe @code{wheel} peuvent utiliser @code{sudo}. @end deftp @node Systèmes de fichiers -@subsection Systèmes de fichiers +@section Systèmes de fichiers La liste des systèmes de fichiers à monter est spécifiée dans le champ @code{file-systems} de la déclaration de système d'exploitation @@ -10634,7 +10843,7 @@ chargé. @end defvr @node Périphériques mappés -@subsection Périphériques mappés +@section Périphériques mappés @cindex mappage de périphériques @cindex périphériques mappés @@ -10758,7 +10967,7 @@ automatiquement. @node Comptes utilisateurs -@subsection Comptes utilisateurs +@section Comptes utilisateurs @cindex utilisateurs @cindex comptes @@ -10897,7 +11106,7 @@ particulier et il est automatiquement ajouté qu'il soit spécifié ou non. @end defvr @node Régionalisation -@subsection Régionalisation +@section Régionalisation @cindex paramètres linguistiques Un @dfn{paramètre linguistique} définie les conventions culturelles d'une @@ -10989,7 +11198,7 @@ Library Reference Manual}). Donc par exemple il y a @code{uk_UA.utf8} mais @emph{pas}, disons, @code{uk_UA.UTF-8}. @end defvr -@subsubsection Considérations sur la compatibilité des données linguistiques +@subsection Considérations sur la compatibilité des données linguistiques @cindex incompatibilité, des données linguistiques Les déclaration @code{operating-system} fournissent un champ @@ -11012,11 +11221,10 @@ mais pas toutes les données linguistiques de la libc 2.21 (spécifiquement les données @code{LC_COLLATE} sont incompatibles) ; donc les appels à @code{setlocale} peuvent échouer, mais les programmes ne plantent pas. -Le « problème » avec GuixSD c'est que les utilisateurs ont beaucoup de -liberté : ils peuvent choisir s'ils veulent et quand ils veulent mettre à -jour les logiciels de leur profil, et peuvent utiliser une version -différente de la libc de celle que l'administrateur système utilise pour -construire les données linguistiques du système global. +The ``problem'' with Guix is that users have a lot of freedom: They can +choose whether and when to upgrade software in their profiles, and might be +using a libc version different from the one the system administrator used to +build the system-wide locale data. Heureusement, les utilisateurs non privilégiés peuvent aussi installer leur propres données linguistiques et définir @var{GUIX_LOCPATH} comme il le faut @@ -11043,7 +11251,7 @@ linguistiques pour la libc 2.21 et pour la version actuelle de la libc dans @node Services -@subsection Services +@section Services @cindex services systèmes Une part importante de la préparation d'une déclaration @@ -11052,13 +11260,11 @@ configuration (@pxref{Utiliser le système de configuration}). Les services systèmes sont typiquement des démons lancés au démarrage ou d'autres actions requises à ce moment-là — p.@: ex.@: configurer les accès réseaux. -GuixSD a une définition large de « service » (@pxref{Composition de services}), -mais beaucoup de services sont gérés par le GNU@tie{}Shepherd -(@pxref{Services Shepherd}). Sur un système lancé, la commande -@command{herd} vous permet de lister les services disponibles, montrer leur -statut, les démarrer et les arrêter, ou faire d'autres opérations -spécifiques (@pxref{Jump Start,,, shepherd, The GNU Shepherd Manual}). Par -exemple : +Guix has a broad definition of ``service'' (@pxref{Composition de services}), +but many services are managed by the GNU@tie{}Shepherd (@pxref{Services Shepherd}). On a running system, the @command{herd} command allows you to +list the available services, show their status, start and stop them, or do +other specific operations (@pxref{Jump Start,,, shepherd, The GNU Shepherd +Manual}). For example: @example # herd status @@ -11096,7 +11302,7 @@ par les services de base qui peuvent être utilisés avec une déclaration * Services de base:: Services systèmes essentiels. * Exécution de tâches planifiées:: Le service mcron. * Rotation des journaux:: Le service rottlog. -* Services réseau:: Paramétres réseau, démon SSH, etc. +* Services réseau:: Paramètres réseau, démon SSH, etc. * Système de fenêtrage X:: Affichage graphique. * Services d'impression:: Support pour les imprimantes locales et distantes. @@ -11125,10 +11331,10 @@ par les services de base qui peuvent être utilisés avec une déclaration @end menu @node Services de base -@subsubsection Services de base +@subsection Services de base Le module @code{(gnu services base)} fournit des définitions de services -poru les services de base qu'on peut attendre du système. Les services +pour les services de base qu'on peut attendre du système. Les services exportés par ce module sort listés ci-dessous. @defvr {Variable Scheme} %base-services @@ -11143,7 +11349,9 @@ système, vous voudrez ajouter des services à ceux de @var{%base-services}, comme ceci : @example -(cons* (avahi-service) (lsh-service) %base-services) +(append (list (service avahi-service-type) + (service openssh-service-type)) + %base-services) @end example @end defvr @@ -11493,7 +11701,7 @@ actions suivantes : @item invalidate @cindex invalidation du cache, nscd @cindex nscd, invalidation du cache -Cela invalide le cache dnné. Par exemple, en laçant : +Cela invalide le cache donné. Par exemple, en laçant : @example herd invalidate nscd hosts @@ -11526,7 +11734,7 @@ Liste des paquets dénotant des @dfn{services de noms} qui doivent être visible pour nscd, p.@: ex.@: @code{(list @var{nss-mdns})}. @item @code{glibc} (par défaut : @var{glibc}) -Objet de paquet qui dénote la Biblothèque C de GNU qui fournit la commande +Objet de paquet qui dénote la Bibliothèque C de GNU qui fournit la commande @command{nscd}. @item @code{log-file} (par défaut : @code{"/var/log/nscd.log"}) @@ -11645,14 +11853,15 @@ Nombre de comptes utilisateurs de construction à créer. @item @code{authorize-key?} (par défaut : @code{#t}) @cindex substituts, autorisations -Autoriser ou non les clefs de substituts listées dans @code{authorize-keys} -— par défaut celle de @code{hydra.gny.org} (@pxref{Substituts}). +Whether to authorize the substitute keys listed in +@code{authorized-keys}---by default that of @code{@value{SUBSTITUTE-SERVER}} +(@pxref{Substituts}). @vindex %default-authorized-guix-keys @item @code{authorized-keys} (par défaut : @var{%default-authorized-guix-keys}) -La liste des fichiers de clefs autorisées pour les imports d'archives, en -tant que liste de gexps sous forme de chaînes (@pxref{Invoquer guix archive}). Par défaut, elle contient celle de @code{hydra.gnu.org} -(@pxref{Substituts}). +The list of authorized key files for archive imports, as a list of +string-valued gexps (@pxref{Invoquer guix archive}). By default, it +contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substituts}). @item @code{use-substitutes?} (par défaut : @code{#t}) S'il faut utiliser les substituts. @@ -11693,10 +11902,11 @@ Lance @var{udev}, qui rempli le répertoire @file{/dev} dynamiquement. Les règles udev peuvent être fournies comme une liste de fichier via la variable @var{rules}. Les procédures @var{udev-rule} et @var{file->udev-rule} de @code{(gnu services base)} simplifient la création de ces fichiers de règle. +@end deffn @deffn {Procédure Scheme} udev-rule [@var{file-name} @var{contents}] Renvoie un fichier de règle udev nommé @var{file-name} contenant les règles -définie par le litéral @var{contents}. +définie par le littéral @var{contents}. Dans l'exemple suivant, on définie une règle pour un périphérique USB qui sera stockée dans le fichier @file{90-usb-thing.rules}. La règle lance un @@ -11711,6 +11921,9 @@ donné. "ATTR@{product@}==\"Example\", " "RUN+=\"/path/to/script\""))) @end example + +The @command{herd rules udev} command, as root, returns the name of the +directory containing all the active udev rules. @end deffn Ici on montre comment le service @var{udev-service} par défaut peut être @@ -11760,7 +11973,7 @@ android)}. L'exemple suivant montre comment utiliser le paquet @var{android-udev-rules} pour que l'outil Android @command{adb} puisse détecter les appareils sans -privilège root. Il détaille aussi comment créer le grope @code{adbusers}, +privilège root. Il détaille aussi comment créer le groupe @code{adbusers}, requis pour le bon fonctionnement des règles définies dans le paquet @var{android-udev-rules}. Pour créer ce groupe, on doit le définir dans les @var{supplementary-groups} de la déclaration @var{user-account} ainsi que @@ -11786,13 +11999,13 @@ dans le champ @var{groups} de l'enregistrement @var{operating-system}. ;; @dots{} (services - (modify-services %desktop-services - (udev-service-type config => - (udev-configuration (inherit config) - (rules (cons* android-udev-rules - (udev-configuration-rules config)))))))) + (modify-services %desktop-services + (udev-service-type + config => + (udev-configuration (inherit config) + (rules (cons android-udev-rules + (udev-configuration-rules config)))))))) @end example -@end deffn @defvr {Variable Scheme} urandom-seed-service-type Garde de l'entropie dans @var{%random-seed-file} pour démarrer @@ -11952,7 +12165,7 @@ sont souvent utilisés sur les systèmes audio temps-réel. @end deffn @node Exécution de tâches planifiées -@subsubsection Exécution de tâches planifiées +@subsection Exécution de tâches planifiées @cindex cron @cindex mcron @@ -11960,11 +12173,11 @@ sont souvent utilisés sur les systèmes audio temps-réel. Le module @code{(gnu services mcron)} fournit une interface pour GNU@tie{}mcron, un démon qui lance des tâches planifiées (@pxref{Top,,, mcron, GNU@tie{}mcron}). GNU@tie{}mcron est similaire au démon Unix -traditionel @command{cron} ; la principale différence est qu'il est +traditionnel @command{cron} ; la principale différence est qu'il est implémenté en Guile Scheme, qui fournit beaucoup de flexibilité lors de la spécification de la planification des tâches et de leurs actions. -L'exemple en dessous définit un système d'exploitation qu lance les +L'exemple en dessous définit un système d'exploitation qui lance les commandes @command{updatebd} (@pxref{Invoking updatedb,,, find, Finding Files}) et @command{guix gc} (@pxref{Invoquer guix gc}) tous les jours, ainsi que la commande @command{mkid} en tant qu'utilisateur non privilégié @@ -12000,9 +12213,11 @@ gexps pour introduire des définitions de tâches qui sont passées à mcron (operating-system ;; @dots{} - (services (cons (mcron-service (list garbage-collector-job - updatedb-job - idutils-job)) + (services (cons (service mcron-service-type + (mcron-configuration + (jobs (list garbage-collector-job + updatedb-job + idutils-job)))) %base-services))) @end lisp @@ -12025,18 +12240,6 @@ pouvez spécifier le nombre de tâches à afficher : # herd schedule mcron 10 @end example -@deffn {Procédure Scheme} mcron-service @var{jobs} [#:mcron @var{mcron}] -Renvoie un service mcron qui lance @var{mcron} qui planifie les tâches -@var{jobs}, une liste de gexps qui dénotent des spécifications de tâches de -mcron. - -C'est un raccourci pour : -@example -(service mcron-service-type - (mcron-configuration (mcron mcron) (jobs jobs))) -@end example -@end deffn - @defvr {Variable Scheme} mcron-service-type C'est le type du service @code{mcron}, dont la valeur est un objet @code{mcron-configuration} @@ -12062,7 +12265,7 @@ specifications,, mcron, GNU@tie{}mcron}). @node Rotation des journaux -@subsubsection Rotation des journaux +@subsection Rotation des journaux @cindex rottlog @cindex journaux, rotation @@ -12167,7 +12370,7 @@ s'agit de : @code{'("/var/log/messages" "/var/log/secure")} @end defvr @node Services réseau -@subsubsection Services réseau +@subsection Services réseau Le module @code{(gnu services networking)} fournit des services pour configurer les interfaces réseaux. @@ -12260,7 +12463,7 @@ Par exemple : @cindex gestion du réseau @deffn {Procédure Scheme} wicd-service [#:wicd @var{wicd}] Renvoie un service qui lance @url{https://launchpad.net/wicd,Wicd}, un démon -de gestion réseau qui cherche à simplifier la configuration des résaux +de gestion réseau qui cherche à simplifier la configuration des réseaux filaires et sans fil. Ce service ajoute le paquet @var{wicd} au profil global, pour fournir des @@ -12540,13 +12743,13 @@ secondes. @cindex inetd @deffn {Variable Scheme} inetd-service-type Ce service lance le démon @command{inetd} (@pxref{inetd invocation,,, -inetutils, GNU Inetutils}). @command{inetd} écoute des connexionssur des +inetutils, GNU Inetutils}). @command{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 @code{inetd-configuration}. L'exemple suivant configure le démon @command{inetd} pour qu'il fournisse le service -@command{echo}, ainsi qu'in service smtp qui transfère le trafic smtp par +@command{echo}, ainsi qu'un service smtp qui transfère le trafic smtp par ssh à un serveur @code{smtp-server} derrière une passerelle @code{hostname} : @@ -12642,12 +12845,6 @@ lancé en tant qu'utilisateur non privilégié @code{tor}, membre du groupe @end defvr -@deffn {Procédure Scheme} tor-service [@var{config-file}] [#:tor @var{tor}] -Cette procédure est obsolète et sera supprimée dans les futures versions. -Renvoie un service de type @code{tor-service-type}. @var{config-file} et -@var{tor} ont la même signification que dans @code{}. -@end deffn - @deftp {Type de données} tor-configuration @table @asis @item @code{tor} (par défaut : @code{tor}) @@ -12985,6 +13182,19 @@ C'est le symbole qui spécifie le niveau de journalisation : @code{quiet}, Voir la page de manuel de @file{sshd_config} pour trouver la liste complète des noms de niveaux. +@item @code{extra-content} (par défaut : @code{""}) +This field can be used to append arbitrary text to the configuration file. +It is especially useful for elaborate configurations that cannot be +expressed otherwise. This configuration, for example, would generally +disable root logins, but permit them from one specific IP address: + +@example +(openssh-configuration + (extra-content "\ +Match Address 192.168.0.1 + PermitRootLogin yes")) +@end example + @end table @end deftp @@ -12994,7 +13204,7 @@ Dropbear} avec la configuration @var{config} donnée, un objet @code{}. Par exemple, pour spécifier un service Dropbear qui écoute sur le port 1234, -ajoutez cet appel au champ @code{services} d evotre système d'exploitation : +ajoutez cet appel au champ @code{services} de votre système d'exploitation : @example (dropbear-service (dropbear-configuration @@ -13060,34 +13270,53 @@ des navigateurs Web, ne se connectent à Facebook. Le module @code{(gnu services avahi)} fourni la définition suivante. -@deffn {Procédure Scheme} avahi-service [#:avahi @var{avahi}] @ - [#:host-name #f] [#:publish? #t] [#:ipv4? #t] @ -[#:ipv6? #t] [#:wide-area? #f] @ -[#:domains-to-browse '()] [#:debug? #f] -Renvoie un service qui lance @command{avahi-daemon}, un serveur qui répond -aux requêtes mDNS/DNS-SD qui permet de découvrir des services et de chercher -des noms d'hôtes « sans configuration » (voir @uref{http://avahi.org/}) et -qui étend le démon de cache de services de noms (nscd) pour qu'il puisse -résoudre des noms en @code{.local} avec -@uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. En plus, -ajoute le paquet @var{avahi} au profil du système pour que les commandes -comme @command{avahi-browse} soient directement utilisables. +@defvr {Scheme Variable} avahi-service-type +This is the service that runs @command{avahi-daemon}, a system-wide +mDNS/DNS-SD responder that allows for service discovery and +``zero-configuration'' host name lookups (see @uref{http://avahi.org/}). +Its value must be a @code{zero-configuration} record---see below. -Si @var{host-name} n'est pas @code{#f}, utilise cette valeur comme nom -d'hôte à publier pour la machine ; sinon, utilise le vrai nom d'hôte de la -machine. +This service extends the name service cache daemon (nscd) so that it can +resolve @code{.local} host names using +@uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. @xref{Name Service Switch}, for information on host name resolution. -Lorsque la valeur de @var{publish?} est vraie, la publication des noms -d'hôtes et des domaines sont autorisés ; en particulier, avahi-daemon -publiera le nom d'hôte et l'adresse IP de la machine via mDNS sur le réseau -local. +Additionally, add the @var{avahi} package to the system profile so that +commands such as @command{avahi-browse} are directly usable. +@end defvr -Lorsque la valeur de @var{wide-area?} est vraie, DNS-SD sur DNS unicast est -activé. +@deftp {Data Type} avahi-configuration +Data type representation the configuration for Avahi. -Les valeurs booléennes @var{ipv4?} et @var{ipv6?} déterminent s'il faut -utiliser un socket IPv4 ou IPv6 respectivement. -@end deffn +@table @asis + +@item @code{host-name} (default: @code{#f}) +If different from @code{#f}, use that as the host name to publish for this +machine; otherwise, use the machine's actual host name. + +@item @code{publish?} (default: @code{#t}) +When true, allow host names and services to be published (broadcast) over +the network. + +@item @code{publish-workstation?} (default: @code{#t}) +When true, @command{avahi-daemon} publishes the machine's host name and IP +address via mDNS on the local network. To view the host names published on +your local network, you can run: + +@example +avahi-browse _workstation._tcp +@end example + +@item @code{wide-area?} (default: @code{#f}) +When true, DNS-SD over unicast DNS is enabled. + +@item @code{ipv4?} (default: @code{#t}) +@itemx @code{ipv6?} (default: @code{#t}) +These fields determine whether to use IPv4/IPv6 sockets. + +@item @code{domains-to-browse} (default: @code{'()}) +This is a list of domains to browse. +@end table +@end deftp @deffn {Variable Scheme} openvswitch-service-type C'est le type du service @uref{http://www.openvswitch.org, Open vSwitch}, @@ -13107,7 +13336,7 @@ Objet de paquet de Open vSwitch. @end deftp @node Système de fenêtrage X -@subsubsection Système de fenêtrage X +@subsection Système de fenêtrage X @cindex X11 @cindex Système de fenêtrage X @@ -13309,18 +13538,33 @@ avec une configuration de type @code{}. @end deffn @deffn {Procédure Scheme} xorg-start-command [#:guile] @ - [#:modules %default-xorg-modules] @ -[#:fonts %default-xorg-fonts] @ -[#:configuration-file (xorg-configuration-file @dots{})] @ -[#:xorg-server @var{xorg-server}] -Renvoie un script @code{startx} dans lequel @var{modules}, une liste de -paquets de modules X et @var{fonts}, une liste de répertoires de polices X, -sont disponibles. Voir @code{xorg-wrapper} pour plus de détails sur les -arguments. Le résultat devrait être utilisé à la place de @code{startx}. + [#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ +[#:configuration-file (xorg-configuration-file @dots{})] @ [#:xorg-server +@var{xorg-server}] [#:xserver-arguments '("-nolisten" "tcp")] Return a +@code{startx} script in which @var{modules}, a list of X module packages, +and @var{fonts}, a list of X font directories, are available. See +@code{xorg-wrapper} for more details on the arguments. The result should be +used in place of @code{startx}. Habituellement le serveur X est démarré par un gestionnaire de connexion. @end deffn +@cindex @code{-listen tcp}, for X11. +This procedure is useful to override command line options for the X server, +such as having it listen to over TCP: + +@example +(operating-system + ... + (services + (modify-services %desktop-services + (slim-service-type config => + (slim-configuration + (inherit config) + (startx (xorg-start-command + #:xserver-arguments '("-listen" "tcp")))))))) +@end example + @deffn {Procédure Scheme} xorg-configuration-file @ [#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ @@ -13401,13 +13645,12 @@ rend utilisable le bon vieux XlockMore. @node Services d'impression -@subsubsection Services d'impression +@subsection Services d'impression @cindex support des imprimantes avec CUPS -Le module @code{(gnu services cups)} fournit une définition de service Guix -pour le service d'impression CUPS. Pour ajouter le support d'une imprimante -à un système GuixSD, ajoutez un @code{cups-service} à la définition du -système d'exploitation : +The @code{(gnu services cups)} module provides a Guix service definition for +the CUPS printing service. To add printer support to a Guix system, add a +@code{cups-service} to the operating system definition: @deffn {Variable Scheme} cups-service-type Le type de service pour un serveur d'impression CUPS. Sa valeur devrait @@ -13428,7 +13671,7 @@ 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 @code{escpr} et our les +support pour les imprimantes Epson via le paquet @code{escpr} et pour les imprimantes HP via le paquet @code{hplip-minimal}. Vous pouvez le faire directement, comme ceci (vous devez utiliser le module @code{(gnu packages cups)}) : @@ -13776,7 +14019,7 @@ La valeur par défaut est @samp{stop-printer}. 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 requirt une limite de filtre d'environ 200. +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. @@ -13852,7 +14095,7 @@ La valeur par défaut est @samp{0}. @deftypevr {paramètre de @code{cups-configuration}} multiline-string-list listen Écoute sur les interfaces spécifiées. Les valeurs valides sont de la forme -@var{adresse}:@var{port}, où @var{adresse} est sotit une daresse IPv6 dans +@var{adresse}:@var{port}, où @var{adresse} est soit une adresse IPv6 dans des crochets, soit une adresse IPv4, soit @code{*} 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 @@ -14275,7 +14518,7 @@ cette manière : @node Services de bureaux -@subsubsection Services de bureaux +@subsection Services de bureaux Le module @code{(gnu services desktop)} fournit des services qui sont habituellement utiles dans le contexte d'une installation « de bureau » — @@ -14505,24 +14748,80 @@ exemple, un utilisateur normal peut obtenir le droit de mettre le système en veille si l'utilisateur est connecté localement. @end deffn -@deffn {Procédure Scheme} upower-service [#:upower @var{upower}] @ - [#:watts-up-pro? #f] @ -[#:poll-batteries? #t] @ -[#:ignore-lid? #f] @ -[#:use-percentage-for-policy? #f] @ -[#:percentage-low 10] @ -[#:percentage-critical 3] @ -[#:percentage-action 2] @ -[#:time-low 1200] @ -[#:time-critical 300] @ -[#:time-action 120] @ -[#:critical-power-action 'hybrid-sleep] -Renvoie un service qui lance @uref{http://upower.freedesktop.org/, -@command{upowerd}}, un moniteur système pour la consommation électrique et -le niveau de batterie, avec les paramètres de configuration données. Il -implémente l'interface D-Bus @code{org.freedesktop.UPower} et est notamment -utilisé par GNOME. -@end deffn +@defvr {Scheme Variable} upower-service-type +Service that runs @uref{http://upower.freedesktop.org/, @command{upowerd}}, +a system-wide monitor for power consumption and battery levels, with the +given configuration settings. + +It implements the @code{org.freedesktop.UPower} D-Bus interface, and is +notably used by GNOME. +@end defvr + +@deftp {Data Type} upower-configuration +Data type representation the configuration for UPower. + +@table @asis + +@item @code{upower} (default: @var{upower}) +Package to use for @code{upower}. + +@item @code{watts-up-pro?} (default: @code{#f}) +Enable the Watts Up Pro device. + +@item @code{poll-batteries?} (default: @code{#t}) +Enable polling the kernel for battery level changes. + +@item @code{ignore-lid?} (default: @code{#f}) +Ignore the lid state, this can be useful if it's incorrect on a device. + +@item @code{use-percentage-for-policy?} (default: @code{#f}) +Whether battery percentage based policy should be used. The default is to +use the time left, change to @code{#t} to use the percentage. + +@item @code{percentage-low} (default: @code{10}) +When @code{use-percentage-for-policy?} is @code{#t}, this sets the +percentage at which the battery is considered low. + +@item @code{percentage-critical} (default: @code{3}) +When @code{use-percentage-for-policy?} is @code{#t}, this sets the +percentage at which the battery is considered critical. + +@item @code{percentage-action} (default: @code{2}) +When @code{use-percentage-for-policy?} is @code{#t}, this sets the +percentage at which action will be taken. + +@item @code{time-low} (default: @code{1200}) +When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining +in seconds at which the battery is considered low. + +@item @code{time-critical} (default: @code{300}) +When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining +in seconds at which the battery is considered critical. + +@item @code{time-action} (default: @code{120}) +When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining +in seconds at which action will be taken. + +@item @code{critical-power-action} (default: @code{'hybrid-sleep}) +The action taken when @code{percentage-action} or @code{time-action} is +reached (depending on the configuration of +@code{use-percentage-for-policy?}). + +Possible values are: + +@itemize @bullet +@item +@code{'power-off} + +@item +@code{'hibernate} + +@item +@code{'hybrid-sleep}. +@end itemize + +@end table +@end deftp @deffn {Procédure Scheme} udisks-service [#:udisks @var{udisks}] Renvoie un service pour @uref{http://udisks.freedesktop.org/docs/latest/, @@ -14590,7 +14889,7 @@ service D-Bus. @end deffn @node Services de son -@subsubsection Services de son +@subsection Services de son @cindex support du son @cindex ALSA @@ -14603,7 +14902,7 @@ pilote de sortie préféré d'ALSA. @deffn {Variable Scheme} alsa-service-type C'est le type pour le système @uref{https://alsa-project.org/, Advanced Linux Sound Architecture} (ALSA), qui génère le fichier de configuration -@file{/etc/asound.conf}. La valer de ce type est un enregistrement +@file{/etc/asound.conf}. La valeur de ce type est un enregistrement @command{alsa-configuration} comme dans cet exemple : @example @@ -14672,22 +14971,57 @@ détails. @node Services de bases de données -@subsubsection Services de bases de données +@subsection Services de bases de données @cindex database @cindex SQL Le module @code{(gnu services databases)} fournit les services suivants. @deffn {Procédure Scheme} postgresql-service [#:postgresql postgresql] @ - [#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ -[#:port 5432] [#:locale ``en_US.utf8''] -Renvoie un service qui lance @var{postgresql}, le service de bases de -données PostgreSQL. + [#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port +5432] [#:locale ``en_US.utf8''] [#:extension-packages '()] Return a service +that runs @var{postgresql}, the PostgreSQL database server. Le démon PostgreSQL charge sa configuration à l'exécution depuis @var{config-file}, crée une grappe de bases de données avec @var{locale} comme paramètre de régionalisation par défaut, stockée dans @var{data-directory}. Il écoute ensuite sur @var{port}. + +@cindex postgresql extension-packages +Additional extensions are loaded from packages listed in +@var{extension-packages}. Extensions are available at runtime. For +instance, to create a geographic database using the @code{postgis} +extension, a user can configure the postgresql-service as in this example: + +@cindex postgis +@example +(use-package-modules databases geo) + +(operating-system + ... + ;; postgresql is required to run `psql' but postgis is not required for + ;; proper operation. + (packages (cons* postgresql %base-packages)) + (services + (cons* + (postgresql-service #:extension-packages (list postgis)) + %base-services))) +@end example + +Then the extension becomes visible and you can initialise an empty +geographic database in this way: + +@example +psql -U postgres +> create database postgistest; +> \connect postgistest; +> create extension postgis; +> create extension postgis_topology; +@end example + +There is no need to add this field for contrib extensions such as hstore or +dblink as they are already loadable by postgresql. This field is only +required to add extensions provided by other packages. @end deffn @deffn {Procédure Scheme} mysql-service [#:config (mysql-configuration)] @@ -14799,7 +15133,7 @@ Répertoire dans lequel stocker la base de données et les fichiers liés. @end deftp @node Services de courriels -@subsubsection Services de courriels +@subsection Services de courriels @cindex courriel @cindex email @@ -15790,7 +16124,7 @@ par défaut est @samp{#t}. @deftypevr {paramètre de @code{dovecot-configuration}} boolean mbox-very-dirty-syncs? Comme @samp{mbox-dirty-syncs}, mais ne synchronise pas complètement même avec les commandes SELECT, EXAMINE, EXPUNGE ou CHECK. Si l'option n'est pas -actifée, @samp{mbox-dirty-syncs} est ignorée. La valeur par défaut est +activée, @samp{mbox-dirty-syncs} est ignorée. La valeur par défaut est @samp{#f}. @end deftypevr @@ -16085,7 +16419,7 @@ Contournements pour divers bogues de certains client : @table @code @item delay-newmail -Envoie des notifications de nouveau message EXISTS/RECENT seulement en +Envoi des notifications de nouveau message EXISTS/RECENT seulement en réponse aux commandes NOOP et CHECK. Certains clients les ignorent autrement, par exemple OSX Mail (< v2.1). Outlook Express est encore plus cassé, sans cela il peut montrer des erreurs de type « Le message n'est plus @@ -16112,11 +16446,11 @@ autorise tous. La valeur par défaut est @samp{""}. @end deftypevr -Ouf ! Tant d'options de configuration. La bonne nouvelle, c'est que GuixSD -a une interface complète avec le langage de configuration de Dovecot. Cela -permet non seulement de déclarer la configuration de manière agréable, mais -aussi d'offrir des capacités de réflexion : les utilisateurs peuvent écrire -du code pour inspecter et transformer les configuration depuis Scheme. +Whew! Lots of configuration options. The nice thing about it though is that +Guix has a complete interface to Dovecot's configuration language. This +allows not only a nice way to declare configurations, but also offers +reflective capabilities as well: users can write code to inspect and +transform configurations from within Scheme. Cependant, vous pourriez avoir un fichier @code{dovecot.conf} déjà tout prêt. Dans ce cas, vous pouvez passer un objet @@ -16168,7 +16502,7 @@ Objet de paquet du serveur SMTP OpenSMTPD. Objet simili-fichier du fichier de configuration de OpenSMTPD à utiliser. Par défaut il écoute sur l'interface de boucle locale et accepte les courriels des utilisateurs et des démons de la machine locale, et autorise -l'envoie de courriels à des serveurs distants. Lancez @command{man +l'envoi de courriels à des serveurs distants. Lancez @command{man smtpd.conf} pour plus d'information. @end table @@ -16243,9 +16577,9 @@ système. Dans l'exemple au-dessus, il n'y a pas besoin d'une entrée @code{bob@@example.com} et @code{bob@@example2.com}). @node Services de messagerie -@subsubsection Services de messagerie +@subsection Services de messagerie -@cindex messagerie intantanée +@cindex messagerie instantanée @cindex jabber @cindex XMPP Le module @code{(gnu services messaging)} fournit des définitions de @@ -16514,10 +16848,9 @@ d'information sur l'utilisation du moteur hashed. Voir aussi @end deftypevr @deftypevr {paramètre de @code{prosody-configuration}} maybe-string log -Indique les options de journalisation. La configuration avancée des -journaux n'est pas encore supportée par le service Prosody dans GuixSD. -Voir @url{https://prosody.im/doc/logging}. La valeur par défaut est -@samp{"*syslog"}. +Set logging options. Advanced logging configuration is not yet supported by +the Guix Prosody Service. See @url{https://prosody.im/doc/logging}. +Defaults to @samp{"*syslog"}. @end deftypevr @deftypevr {paramètre de @code{prosody-configuration}} file-name pidfile @@ -16718,7 +17051,7 @@ C'est le type de service pour le démon de passerelle IRC @url{http://bitlbee.org,BitlBee}. Sa valeur est un @code{bitlbee-configuration} (voir plus bas). -Pour que BitlBee écoute sur le pourt 6667 sur localhost, ajoutez cette ligne +Pour que BitlBee écoute sur le port 6667 sur localhost, ajoutez cette ligne à vos services : @example @@ -16752,9 +17085,37 @@ BitlBee. @end table @end deftp +@subsubheading Quassel Service + +@cindex IRC (Internet Relay Chat) +@url{https://quassel-irc.org/,Quassel} is a distributed IRC client, meaning +that one or more clients can attach to and detach from the central core. + +@defvr {Scheme Variable} quassel-service-type +This is the service type for the @url{https://quassel-irc.org/,Quassel} IRC +backend daemon. Its value is a @code{quassel-configuration} (see below). +@end defvr + +@deftp {Data Type} quassel-configuration +This is the configuration for Quassel, with the following fields: + +@table @asis +@item @code{quassel} (default: @code{quassel}) +The Quassel package to use. + +@item @code{interface} (default: @code{"::,0.0.0.0"}) +@item @code{port} (default: @code{4242}) +Listen on the network interface(s) corresponding to the IPv4 or IPv6 +interfaces specified in the comma delimited @var{interface}, on @var{port}. + +@item @code{loglevel} (default: @code{"Info"}) +The level of logging desired. Accepted values are Debug, Info, Warning and +Error. +@end table +@end deftp @node Services de téléphonie -@subsubsection Services de téléphonie +@subsection Services de téléphonie @cindex Murmur (serveur VoIP) @cindex serveur VoIP @@ -16770,14 +17131,14 @@ configuration : (service murmur-service-type (murmur-configuration (welcome-text - "Welcome to this Mumble server running on GuixSD!") + "Welcome to this Mumble server running on Guix!") (cert-required? #t) ;disallow text password logins (ssl-cert "/etc/letsencrypt/live/mumble.example.com/fullchain.pem") (ssl-key "/etc/letsencrypt/live/mumble.example.com/privkey.pem"))) @end example Après avoir reconfiguré votre système, vous pouvez manuellement indiquer le -mot de passe @code{SuperUser} de murmur avac la commande qui s'affiche +mot de passe @code{SuperUser} de murmur avec la commande qui s'affiche pendant la phase d'activation. Il est recommandé d'enregistrer un compte utilisateur Mumble normal et de @@ -16978,7 +17339,7 @@ indiquée votre serveur sera listé par son nom d'hôte. @node Services de surveillance -@subsubsection Services de surveillance +@subsection Services de surveillance @subsubheading Service Tailon @@ -17165,8 +17526,327 @@ Lie l'interface web sur l'adresse spécifiée. @end table @end deftp +@subsubheading Zabbix server +@cindex zabbix zabbix-server +Zabbix provides monitoring metrics, among others network utilization, CPU +load and disk space consumption: + +@itemize +@item High performance, high capacity (able to monitor hundreds of thousands of devices). +@item Auto-discovery of servers and network devices and interfaces. +@item Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others. +@item Distributed monitoring with centralized web administration. +@item Native high performance agents. +@item SLA, and ITIL KPI metrics on reporting. +@item High-level (business) view of monitored resources through user-defined visual console screens and dashboards. +@item Remote command execution through Zabbix proxies. +@end itemize + +@c %start of fragment + +Available @code{zabbix-server-configuration} fields are: + +@deftypevr {@code{zabbix-server-configuration} parameter} package zabbix-server +The zabbix-server package. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} string user +User who will run the Zabbix server. + +Defaults to @samp{"zabbix"}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} group group +Group who will run the Zabbix server. + +Defaults to @samp{"zabbix"}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} string db-host +Database host name. + +Defaults to @samp{"127.0.0.1"}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} string db-name +Database name. + +Defaults to @samp{"zabbix"}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} string db-user +Database user. + +Defaults to @samp{"zabbix"}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} string db-password +Database password. Please, use @code{include-files} with +@code{DBPassword=SECRET} inside a specified file instead. + +La valeur par défaut est @samp{""}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} number db-port +Database port. + +Defaults to @samp{5432}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} string log-type +Specifies where log messages are written to: + +@itemize @bullet +@item +@code{system} - syslog. + +@item +@code{file} - file specified with @code{log-file} parameter. + +@item +@code{console} - standard output. + +@end itemize + +La valeur par défaut est @samp{""}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} string log-file +Log file name for @code{log-type} @code{file} parameter. + +Defaults to @samp{"/var/log/zabbix/server.log"}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} string pid-file +Name of PID file. + +Defaults to @samp{"/var/run/zabbix/zabbix_server.pid"}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} string ssl-ca-location +The location of certificate authority (CA) files for SSL server certificate +verification. + +Defaults to @samp{"/etc/ssl/certs/ca-certificates.crt"}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} string ssl-cert-location +Location of SSL client certificates. + +Defaults to @samp{"/etc/ssl/certs"}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} string extra-options +Extra options will be appended to Zabbix server configuration file. + +La valeur par défaut est @samp{""}. + +@end deftypevr + +@deftypevr {@code{zabbix-server-configuration} parameter} include-files include-files +You may include individual files or all files in a directory in the +configuration file. + +La valeur par défaut est @samp{()}. + +@end deftypevr + +@c %end of fragment + +@subsubheading Zabbix agent +@cindex zabbix zabbix-agent + +Zabbix agent gathers information for Zabbix server. + +@c %start of fragment + +Available @code{zabbix-agent-configuration} fields are: + +@deftypevr {@code{zabbix-agent-configuration} parameter} package zabbix-agent +The zabbix-agent package. + +@end deftypevr + +@deftypevr {@code{zabbix-agent-configuration} parameter} string user +User who will run the Zabbix agent. + +Defaults to @samp{"zabbix"}. + +@end deftypevr + +@deftypevr {@code{zabbix-agent-configuration} parameter} group group +Group who will run the Zabbix agent. + +Defaults to @samp{"zabbix"}. + +@end deftypevr + +@deftypevr {@code{zabbix-agent-configuration} parameter} string hostname +Unique, case sensitive hostname which is required for active checks and must +match hostname as configured on the server. + +Defaults to @samp{"Zabbix server"}. + +@end deftypevr + +@deftypevr {@code{zabbix-agent-configuration} parameter} string log-type +Specifies where log messages are written to: + +@itemize @bullet +@item +@code{system} - syslog. + +@item +@code{file} - file specified with @code{log-file} parameter. + +@item +@code{console} - standard output. + +@end itemize + +La valeur par défaut est @samp{""}. + +@end deftypevr + +@deftypevr {@code{zabbix-agent-configuration} parameter} string log-file +Log file name for @code{log-type} @code{file} parameter. + +Defaults to @samp{"/var/log/zabbix/agent.log"}. + +@end deftypevr + +@deftypevr {@code{zabbix-agent-configuration} parameter} string pid-file +Name of PID file. + +Defaults to @samp{"/var/run/zabbix/zabbix_agent.pid"}. + +@end deftypevr + +@deftypevr {@code{zabbix-agent-configuration} parameter} list server +List of IP addresses, optionally in CIDR notation, or hostnames of Zabbix +servers and Zabbix proxies. Incoming connections will be accepted only from +the hosts listed here. + +Defaults to @samp{("127.0.0.1")}. + +@end deftypevr + +@deftypevr {@code{zabbix-agent-configuration} parameter} list server-active +List of IP:port (or hostname:port) pairs of Zabbix servers and Zabbix +proxies for active checks. If port is not specified, default port is used. +If this parameter is not specified, active checks are disabled. + +Defaults to @samp{("127.0.0.1")}. + +@end deftypevr + +@deftypevr {@code{zabbix-agent-configuration} parameter} string extra-options +Extra options will be appended to Zabbix server configuration file. + +La valeur par défaut est @samp{""}. + +@end deftypevr + +@deftypevr {@code{zabbix-agent-configuration} parameter} include-files include-files +You may include individual files or all files in a directory in the +configuration file. + +La valeur par défaut est @samp{()}. + +@end deftypevr + +@c %end of fragment + +@subsubheading Zabbix front-end +@cindex zabbix zabbix-front-end + +This service provides a WEB interface to Zabbix server. + +@c %start of fragment + +Available @code{zabbix-front-end-configuration} fields are: + +@deftypevr {@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx +Configuration Nginx. + +@end deftypevr + +@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-host +Database host name. + +La valeur par défaut est @samp{"localhost"}. + +@end deftypevr + +@deftypevr {@code{zabbix-front-end-configuration} parameter} number db-port +Database port. + +Defaults to @samp{5432}. + +@end deftypevr + +@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-name +Database name. + +Defaults to @samp{"zabbix"}. + +@end deftypevr + +@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-user +Database user. + +Defaults to @samp{"zabbix"}. + +@end deftypevr + +@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-password +Database password. Please, use @code{db-secret-file} instead. + +La valeur par défaut est @samp{""}. + +@end deftypevr + +@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-secret-file +Secret file which will be appended to @file{zabbix.conf.php} file. This +file contains credentials for use by Zabbix front-end. You are expected to +create it manually. + +La valeur par défaut est @samp{""}. + +@end deftypevr + +@deftypevr {@code{zabbix-front-end-configuration} parameter} string zabbix-host +Zabbix server hostname. + +La valeur par défaut est @samp{"localhost"}. + +@end deftypevr + +@deftypevr {@code{zabbix-front-end-configuration} parameter} number zabbix-port +Zabbix server port. + +Defaults to @samp{10051}. + +@end deftypevr + + +@c %end of fragment + @node Services Kerberos -@subsubsection Services Kerberos +@subsection Services Kerberos @cindex Kerberos Le module @code{(gnu services kerberos)} fournit des services liés au @@ -17291,7 +17971,7 @@ devraient être tentées. Les comptes locaux avec une valeur plus petite @node Services web -@subsubsection Services web +@subsection Services web @cindex web @cindex www @@ -17518,7 +18198,7 @@ configuration, donc il utilise les fichiers par défaut pour les messages d'erreur. S'il échoue à charger sa configuration, c'est là où les messages seront enregistrés. Après la lecture du fichier de configuration, le fichier de journal d'erreur par défaut change en fonction de celle-ci. Dans -notre cas, les messages d'erreur au démarage se trouvent dans +notre cas, les messages d'erreur au démarrage se trouvent dans @file{/var/run/nginx/logs/error.log} et après la configuration dans @file{/var/log/nginx/error.log}. Ce second emplacement peut être modifié avec l'option de configuration @var{log-directory}. @@ -17699,7 +18379,7 @@ URI qui correspond à ce bloc. @anchor{nginx-location-configuration body} @item @code{body} Corps du block location, spécifié comme une liste de chaînes de caractères. -Cela peut contenir de nombreuses directives de configuration. PAr exemple, +Cela peut contenir de nombreuses directives de configuration. Par exemple, pour passer des requêtes à un groupe de serveurs amont définis dans un bloc @code{nginx-upstream-configuration}, la directive suivante peut être spécifiée dans le corps : @samp{(list "proxy_pass http://upstream-name;")}. @@ -17810,7 +18490,7 @@ Arguments supplémentaires à passer au processus @command{varnishd}. @cindex fastcgi @cindex fcgiwrap FastCGI est une interface entre le frontal et le moteur d'un service web. -C'est un dispositif quelque peu désué ; les nouveaux services devraient +C'est un dispositif quelque peu désuet ; les nouveaux services devraient généralement juste parler HTTP entre le frontal et le moteur. Cependant il y a un certain nombre de services de moteurs comme PHP ou l'accès aux dépôts Git optimisé en HTTP qui utilisent FastCGI, donc nous le supportons dans @@ -17828,8 +18508,8 @@ Un type de service pour le mandataire FastCGI @code{fcgiwrap}. @end defvr @deftp {Type de données} fcgiwrap-configuration -Type de données représentant la configuration d'un service @code{fcgiwrap}. -Ce type a les paramètres suivants : +Data type representing the configuration of the @code{fcgiwrap} service. +This type has the following parameters: @table @asis @item @code{package} (par défaut : @code{fcgiwrap}) Le paquet fcgiwrap à utiliser. @@ -17892,7 +18572,7 @@ Type de données pour la configuration du service php-fpm. @item @code{php} (par défaut : @code{php}) Le paquet php à utiliser. @item @code{socket} (par défaut : @code{(string-append "/var/run/php" (version-major (package-version php)) "-fpm.sock")}) -L'adresse sur laquelle accepter les requêts FastCGI. Les syntaxes valides +L'adresse sur laquelle accepter les requêtes FastCGI. Les syntaxes valides sont : @table @asis @item @code{"ip.add.re.ss:port"} @@ -17930,6 +18610,8 @@ clients et affichés dans leur navigateur. Cela est utile pour un développement php local, mais un risque pour la sécurité pour les sites publics, comme les messages d'erreur peuvent révéler des mots de passes et des données personnelles. +@item @code{timezone} (default @code{#f}) +Specifies @code{php_admin_value[date.timezone]} parameter. @item @code{workers-logfile} (par défaut : @code{(string-append "/var/log/php" (version-major (package-version php)) "-fpm.www.log")}) Ce fichier enregistrera la sortie @code{stderr} des processus de travail de php. On peut indiquer @code{#f} pour désactiver la journalisation. @@ -17999,7 +18681,7 @@ Une configuration simple de services pour php ressemble à ceci : (root "/srv/http/") (locations (list (nginx-php-location))) - (https-port #f) + (listen '("80")) (ssl-certificate #f) (ssl-certificate-key #f))) %base-services)) @@ -18011,7 +18693,7 @@ l'utilisation de php-fpm dans @code{Nginx}. Il permet de générer des avatars de chats à partir d'une graine, par exemple le hash de l'adresse de courriel d'un utilisateur. -@deffn {Procédure Scheme} cat-avatar-generator-serice @ +@deffn {Scheme Procedure} cat-avatar-generator-service @ [#:cache-dir "/var/cache/cat-avatar-generator"] @ [#:package cat-avatar-generator] @ [#:configuration (nginx-server-configuration)] @@ -18111,7 +18793,7 @@ certificats dans le champ @code{packages} de votre configuration. @end quotation @node Services de certificats -@subsubsection Services de certificats +@subsection Services de certificats @cindex Web @cindex HTTP, HTTPS @@ -18202,13 +18884,14 @@ de problème et des notifications importantes sur le compte. Taille de la clef RSA. @item @code{default-location} (par défaut : @i{voir plus bas}) -Le @code{nginx-location-configuration} par défaut. Come @code{certbot} doit -pouvoir servir les défis et les réponses, il doit être capable de lancer un -serveur web. Cela se fait en étendant le service web @code{nginx} avec un -@code{nginx-server-configuration} qui écoute sur les @var{domains} sur le -port 80 et qui a un @code{nginx-location-configuration} pour le chemin -@code{/.well-known/} utilisé par Let's Encrypt. @xref{Services web} pour -plus d'information sur les types de données de la configuration de nginx. +Le @code{nginx-location-configuration} par défaut. Comme @code{certbot} +doit pouvoir servir les défis et les réponses, il doit être capable de +lancer un serveur web. Cela se fait en étendant le service web @code{nginx} +avec un @code{nginx-server-configuration} qui écoute sur les @var{domains} +sur le port 80 et qui a un @code{nginx-location-configuration} pour le +chemin @code{/.well-known/} utilisé par Let's Encrypt. @xref{Services web} +pour plus d'information sur les types de données de la configuration de +nginx. Les requêtes vers d'autres URL correspondra à @code{default-location}, qui, s'il est présent, sera ajout é à tous les @code{nginx-server-configuration}. @@ -18254,7 +18937,7 @@ Pour chaque @code{certificate-configuration}, le certificat est sauvegardé dans @code{/etc/letsencrypt/live/@var{name}/fullchain.pem} et la clef est sauvegardée dans @code{/etc/letsencrypt/live/@var{name}/privkey.pem}. @node Services DNS -@subsubsection Services DNS +@subsection Services DNS @cindex DNS (domain name system) @cindex domain name system (DNS) @@ -18657,7 +19340,7 @@ Une politique entre @code{'increment} et @code{'unixtime}. @end deftp @deftp {Type de données} knot-configuration -Type de donées représentant la configuration de Knot. Ce type a les +Type de données représentant la configuration de Knot. Ce type a les paramètres suivants : @table @asis @@ -18749,7 +19432,7 @@ Lorsque la valeur est fausse, désactive le cache des réponses négatives. @subsubheading Service ddclient @cindex ddclient -Le srevice ddclient décrit plus bas lance le démon ddclient, qui prend en +Le service ddclient décrit plus bas lance le démon ddclient, qui prend en charge la mise à jour automatique des entrées DNS pour les fournisseurs de service comme @uref{https://dyn.com/dns/, Dyn}. @@ -18857,7 +19540,7 @@ La valeur par défaut est @samp{()}. @node Services VPN -@subsubsection Services VPN +@subsection Services VPN @cindex VPN (réseau privé virtuel) @cindex réseau privé virtuel (VPN) @@ -19167,7 +19850,7 @@ La valeur par défaut est @samp{#f}. Fait que des messages de ping sont envoyés régulièrement dans les deux sens pour que chaque côté sache quand l'autre n'est plus disponible. @code{keepalive} a besoin d'une paire. Le premier élément est la période -d'envoie du ping, et le second élément est le délai d'attente avant de +d'envoi du ping, et le second élément est le délai d'attente avant de considéré que l'autre côté n'est plus disponible. @end deftypevr @@ -19222,7 +19905,7 @@ La valeur par défaut est @samp{#f}. @node Système de fichiers en réseau -@subsubsection Système de fichiers en réseau +@subsection Système de fichiers en réseau @cindex NFS Le module @code{(gnu services nfs)} fournit les services suivants, qui sont @@ -19338,7 +20021,7 @@ domaine pleinement qualifié de l'hôte. @end deftp @node Intégration continue -@subsubsection Intégration continue +@subsection Intégration continue @cindex intégration continue @uref{https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git, Cuirass} est @@ -19458,7 +20141,7 @@ Le paquet Cuirass à utiliser. @end deftp @node Services de gestion de l'énergie -@subsubsection Services de gestion de l'énergie +@subsection Services de gestion de l'énergie @cindex tlp @cindex gestion de l'énergie avec TLP @@ -20003,7 +20686,7 @@ Objet du paquet de thermald. @end deftp @node Services audio -@subsubsection Services audio +@subsection Services audio Le module @code{(gnu services audio)} fournit un service qui lance MPD (le démon de lecture de musique). @@ -20054,7 +20737,7 @@ chemin absolu peut être spécifié ici. @end deftp @node Services de virtualisation -@subsubsection services de virtualisation +@subsection services de virtualisation Le module @code{(gnu services virtualization)} fournit des services pour les démons libvirt et virtlog, ainsi que d'autres services liés à la @@ -20377,61 +21060,62 @@ La valeur par défaut est @samp{20}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer max-client-requests -Limit on concurrent requests from a single client connection. To avoid one -client monopolizing the server this should be a small fraction of the global -max_requests and max_workers parameter. +Limite de requêtes concurrentes depuis une connexion cliente unique. Pour +éviter qu'un client ne monopolise le serveur, vous devriez indiquer une +petite partie des paramètres global max_requests et max_workers. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer admin-min-workers -Same as @code{min-workers} but for the admin interface. +Comme @code{min-workers} mais pour l'interface d'administration. La valeur par défaut est @samp{1}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer admin-max-workers -Same as @code{max-workers} but for the admin interface. +Comme @code{max-workers} mais pour l'interface d'administration. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer admin-max-clients -Same as @code{max-clients} but for the admin interface. +Comme @code{max-clients} mais pour l'interface d'administration. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer admin-max-queued-clients -Same as @code{max-queued-clients} but for the admin interface. +Comme @code{max-queued-clients} mais pour l'interface d'administration. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer admin-max-client-requests -Same as @code{max-client-requests} but for the admin interface. +Comme @code{max-client-requests} mais pour l'interface d'administration. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer log-level -Logging level. 4 errors, 3 warnings, 2 information, 1 debug. +Niveau de journalisation. 4 : erreurs, 3 : avertissements, 2 : information, +1 : débogage. La valeur par défaut est @samp{3}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} string log-filters -Logging filters. +Filtres de journalisation. -A filter allows to select a different logging level for a given category of -logs The format for a filter is one of: +Un filtre qui permet de sélectionner plusieurs niveaux de journalisation +pour une catégorie donnée. Le format d'un filtre est : @itemize @bullet @item @@ -20442,92 +21126,95 @@ x:+nom @end itemize -where @code{name} is a string which is matched against the category given in -the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., -"remote", "qemu", or "util.json" (the name in the filter can be a substring -of the full category name, in order to match multiple similar categories), -the optional "+" prefix tells libvirt to log stack trace for each message -matching name, and @code{x} is the minimal level where matching messages -should be logged: +où @code{nom} est une chaîne de caractères qui correspond à la catégorie +donnée dans @code{VIR_LOG_INIT()} au début de chaque fichier source de +libvirt, p.@: ex.@: « remote », « qemu » ou « util.json » (le nom dans le +filtre peut être une sous-chaîne du nom complet de la catégorie, pour +pouvoir correspondre à plusieurs catégories similaires), le préfixe +facultatif « + » dit à libvirt d'enregistrer les traces de piles pour chaque +message qui correspond au nom, et @code{x} est le niveau minimal des +messages qui devraient être enregistrés : @itemize @bullet @item -1: DEBUG +1 : DEBUG @item -2: INFO +2 : INFO @item -3: WARNING +3 : WARNING @item -4: ERROR +4 : ERROR @end itemize -Multiple filters can be defined in a single filters statement, they just -need to be separated by spaces. +On peut définir plusieurs filtres dans une seule déclaration de filtres, ils +doivent juste être séparés par des espaces. La valeur par défaut est @samp{"3:remote 4:event"}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} string log-outputs -Logging outputs. +Sorties de débogage. -An output is one of the places to save logging information The format for an -output can be: +Une sortie est l'un des endroits où les journaux sont enregistrés. Le +format d'une sortie peut être : @table @code @item x:stderr -output goes to stderr +la sortie va vers stderr -@item x:syslog:name -use syslog for the output and use the given name as the ident +@item x:syslog:nom +utilise syslog comme sortie et utilise le nom donné comme identifiant -@item x:file:file_path -output to a file, with the given filepath +@item x:file:chemin_fichier +la sortie va vers un fichier, avec le chemin donné @item x:journald -output to journald logging system +la sortie va vers le système de journalisation journald @end table -In all case the x prefix is the minimal level, acting as a filter +Dans tous les cas, le préfixe x est le niveau minimal, qui agit comme un +filtre @itemize @bullet @item -1: DEBUG +1 : DEBUG @item -2: INFO +2 : INFO @item -3: WARNING +3 : WARNING @item -4: ERROR +4 : ERROR @end itemize -Multiple outputs can be defined, they just need to be separated by spaces. +Plusieurs sorties peuvent être définies, elles doivent juste être séparées +par des espaces. La valeur par défaut est @samp{"3:stderr"}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer audit-level -Allows usage of the auditing subsystem to be altered +Permet de modifier l'utilisation du sous-système d'audit. @itemize @bullet @item -0: disable all auditing +0 : désactive tout audit @item -1: enable auditing, only if enabled on host +1 : active l'audit, seulement s'il est activé sur l'hôte @item -2: enable auditing, and exit if disabled on host. +2 : active l'audit, et quitte s'il est désactivé sur l'hôte. @end itemize @@ -20536,83 +21223,84 @@ La valeur par défaut est @samp{1}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} boolean audit-logging -Send audit messages via libvirt logging infrastructure. +Envoie les messages d'audit via l'infrastructure de journalisation de +libvirt La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} optional-string host-uuid -Host UUID. UUID must not have all digits be the same. +UUID de l'hôte. L'UUID ne doit pas avoir tous ses nombres identiques. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} string host-uuid-source -Source to read host UUID. +Source où lire l'UUID de l'hôte. @itemize @bullet @item -@code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid} +@code{smbios} : récupère l'UUID à partir de @code{dmidecode -s system-uuid} @item -@code{machine-id}: fetch the UUID from @code{/etc/machine-id} +@code{machine-id} : récupère l'UUID à partir de @code{/etc/machine-id} @end itemize -If @code{dmidecode} does not provide a valid UUID a temporary UUID will be -generated. +Si @code{dmidecode} ne fournit pas un UUID valide, un UUID temporaire sera +généré. La valeur par défaut est @samp{"smbios"}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer keepalive-interval -A keepalive message is sent to a client after @code{keepalive_interval} -seconds of inactivity to check if the client is still responding. If set to --1, libvirtd will never send keepalive requests; however clients can still -send them and the daemon will send responses. +Un message keepalive est envoyé au client après @code{keepalive_interval} +secondes d'inactivité pour vérifier si le client répond toujours. Si la +valeur est -1, libvirtd n'enverra jamais de requête keepalive ; cependant +les clients peuvent toujours en envoyer et le démon y répondra. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer keepalive-count -Maximum number of keepalive messages that are allowed to be sent to the -client without getting any response before the connection is considered -broken. +Nombre maximum de messages keepalive qui peuvent être envoyés au client sans +réponse avant que la connexion ne soit considérée comme cassée. -In other words, the connection is automatically closed approximately after -@code{keepalive_interval * (keepalive_count + 1)} seconds since the last -message received from the client. When @code{keepalive-count} is set to 0, -connections will be automatically closed after @code{keepalive-interval} -seconds of inactivity without sending any keepalive messages. +En d'autres termes, la connexion est approximativement fermée après +@code{keepalive_interval * (keepalive_count + 1)} secondes après le dernier +message reçu de la part du client. Lorsque @code{keepalive-count} est à 0, +les connexions seront automatiquement fermées après +@code{keepalive-interval} secondes d'inactivité sans envoyer le moindre +message keepalive. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer admin-keepalive-interval -Same as above but for admin interface. +Comme précédemment, mais pour l'interface d'administration. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer admin-keepalive-count -Same as above but for admin interface. +Comme précédemment, mais pour l'interface d'administration. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{libvirt-configuration}} integer ovs-timeout -Timeout for Open vSwitch calls. +Délai d'attente pour les appels Open vSwitch. -The @code{ovs-vsctl} utility is used for the configuration and its timeout -option is set by default to 5 seconds to avoid potential infinite waits -blocking libvirt. +L'utilitaire @code{ovs-vsctl} est utilisé pour la configuration et son +option de délai d'attente est à 5 secondes pour éviter qu'une attente +infinie ne bloque libvirt. La valeur par défaut est @samp{5}. @@ -20621,18 +21309,18 @@ La valeur par défaut est @samp{5}. @c %end of autogenerated docs @subsubheading démon Virrlog -The virtlogd service is a server side daemon component of libvirt that is -used to manage logs from virtual machine consoles. +Le service virtlogd est un démon côté serveur qui fait partie de libvirt, +utilisé pour gérer les journaux des consoles des machines virtuelles. -This daemon is not used directly by libvirt client applications, rather it -is called on their behalf by @code{libvirtd}. By maintaining the logs in a -standalone daemon, the main @code{libvirtd} daemon can be restarted without -risk of losing logs. The @code{virtlogd} daemon has the ability to re-exec() -itself upon receiving @code{SIGUSR1}, to allow live upgrades without -downtime. +Ce démon n'est pas utilisé directement par les clients libvirt, mais il est +appelé pour eux par @code{libvirtd}. En maintenant les journaux dans un +démon séparé, le démon @code{libvirtd} principal peut être redémarré sans +risque de perte de journaux. Le démon @code{virtlogd} a la possibilité de +ré-exécuter exec() sur lui-même quand il reçoit @code{SIGUSR1}, pour +permettre des mises à jour à chaux sans temps mort. @deffn {Variable Scheme} virtlog-service-type -This is the type of the virtlog daemon. Its value must be a +Le type de service pour le démon virtlogd. Sa valeur doit être un @code{virtlog-configuration}. @example @@ -20643,17 +21331,18 @@ This is the type of the virtlog daemon. Its value must be a @end deffn @deftypevr {paramètre de @code{virtlog-configuration}} integer log-level -Logging level. 4 errors, 3 warnings, 2 information, 1 debug. +Niveau de journalisation. 4 : erreurs, 3 : avertissements, 2 : information, +1 : débogage. La valeur par défaut est @samp{3}. @end deftypevr @deftypevr {paramètre de @code{virtlog-configuration}} string log-filters -Logging filters. +Filtres de journalisation. -A filter allows to select a different logging level for a given category of -logs The format for a filter is one of: +Un filtre qui permet de sélectionner plusieurs niveaux de journalisation +pour une catégorie donnée. Le format d'un filtre est : @itemize @bullet @item @@ -20664,75 +21353,78 @@ x:+nom @end itemize -where @code{name} is a string which is matched against the category given in -the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., -"remote", "qemu", or "util.json" (the name in the filter can be a substring -of the full category name, in order to match multiple similar categories), -the optional "+" prefix tells libvirt to log stack trace for each message -matching name, and @code{x} is the minimal level where matching messages -should be logged: +où @code{nom} est une chaîne de caractères qui correspond à la catégorie +donnée dans @code{VIR_LOG_INIT()} au début de chaque fichier source de +libvirt, p.@: ex.@: « remote », « qemu » ou « util.json » (le nom dans le +filtre peut être une sous-chaîne du nom complet de la catégorie, pour +pouvoir correspondre à plusieurs catégories similaires), le préfixe +facultatif « + » dit à libvirt d'enregistrer les traces de piles pour chaque +message qui correspond au nom, et @code{x} est le niveau minimal des +messages qui devraient être enregistrés : @itemize @bullet @item -1: DEBUG +1 : DEBUG @item -2: INFO +2 : INFO @item -3: WARNING +3 : WARNING @item -4: ERROR +4 : ERROR @end itemize -Multiple filters can be defined in a single filters statement, they just -need to be separated by spaces. +On peut définir plusieurs filtres dans une seule déclaration de filtres, ils +doivent juste être séparés par des espaces. La valeur par défaut est @samp{"3:remote 4:event"}. @end deftypevr @deftypevr {paramètre de @code{virtlog-configuration}} string log-outputs -Logging outputs. +Sorties de débogage. -An output is one of the places to save logging information The format for an -output can be: +Une sortie est l'un des endroits où les journaux sont enregistrés. Le +format d'une sortie peut être : @table @code @item x:stderr -output goes to stderr +la sortie va vers stderr -@item x:syslog:name -use syslog for the output and use the given name as the ident +@item x:syslog:nom +utilise syslog comme sortie et utilise le nom donné comme identifiant -@item x:file:file_path -output to a file, with the given filepath +@item x:file:chemin_fichier +la sortie va vers un fichier, avec le chemin donné @item x:journald -output to journald logging system +la sortie va vers le système de journalisation journald @end table -In all case the x prefix is the minimal level, acting as a filter +Dans tous les cas, le préfixe x est le niveau minimal, qui agit comme un +filtre @itemize @bullet @item -1: DEBUG +1 : DEBUG @item -2: INFO +2 : INFO @item -3: WARNING +3 : WARNING @item -4: ERROR +4 : ERROR @end itemize -Multiple outputs can be defined, they just need to be separated by spaces. +Plusieurs sorties peuvent être définies, elles doivent juste être séparées +par des espaces. La valeur par défaut est @samp{"3:stderr"}. @@ -20746,14 +21438,14 @@ La valeur par défaut est @samp{1024}. @end deftypevr @deftypevr {paramètre de @code{virtlog-configuration}} integer max-size -Maximum file size before rolling over. +Taille de fichier maximale avant roulement. La valeur par défaut est @samp{2MB}. @end deftypevr @deftypevr {paramètre de @code{virtlog-configuration}} integer max-backups -Maximum number of backup files to keep. +Nombre maximal de fichiers de sauvegardes à garder. La valeur par défaut est @samp{3}. @@ -20763,16 +21455,17 @@ La valeur par défaut est @samp{3}. @cindex émulation @cindex @code{binfmt_misc} -@code{qemu-binfmt-service-type} provides support for transparent emulation -of program binaries built for different architectures---e.g., it allows you -to transparently execute an ARMv7 program on an x86_64 machine. It achieves -this by combining the @uref{https://www.qemu.org, QEMU} emulator and the -@code{binfmt_misc} feature of the kernel Linux. +@code{qemu-binfmt-service-type} fournit le support de l'émulation +transparente de binaires construits pour des architectures différentes — +p.@: ex.@: il permet d'exécuter de manière transparente des programmes ARMv +sur une machine x86_64. Cela se fait en combinant l'émulateur +@uref{https://www.qemu.org, QEMU} et la fonctionnalité @code{binfmt_misc} du +noyau Linux. @defvr {Variable Scheme} qemu-binfmt-service-type -This is the type of the QEMU/binfmt service for transparent emulation. Its -value must be a @code{qemu-binfmt-configuration} object, which specifies the -QEMU package to use as well as the architecture we want to emulated: +Le type du service QEMU/binfmt pour l'émulation transparente. Sa valeur +doit être un objet @code{qemu-binfmt-configuration}, qui spécifie le paquet +QEMU à utiliser ainsi que l'architecture que vous voulez émuler : @example (service qemu-binfmt-service-type @@ -20780,29 +21473,30 @@ QEMU package to use as well as the architecture we want to emulated: (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc")))) @end example -In this example, we enable transparent emulation for the ARM and aarch64 -platforms. Running @code{herd stop qemu-binfmt} turns it off, and running -@code{herd start qemu-binfmt} turns it back on (@pxref{Invoking herd, the +Dans cet exemple, on active l'émulation transparente pour les plateformes +ARM et aarch64. Lancer @code{herd stop qemu-binfmt} l'éteint et lancer +@code{herd start qemu-binfmt} le rallume (@pxref{Invoking herd, the @command{herd} command,, shepherd, The GNU Shepherd Manual}). @end defvr @deftp {Type de données} qemu-binfmt-configuration -This is the configuration for the @code{qemu-binfmt} service. +La configuration du service @code{qemu-binfmt}. @table @asis @item @code{platforms} (par défaut : @code{'()}) -The list of emulated QEMU platforms. Each item must be a @dfn{platform -object} as returned by @code{lookup-qemu-platforms} (see below). +La liste des plates-formes émulées par QEMU. Chaque élément doit être un +objet @dfn{platform object} tel que renvoyé par @code{lookup-qemu-platforms} +(voir plus bas). @item @code{guix-support?} (par défaut : @code{#f}) -When it is true, QEMU and all its dependencies are added to the build -environment of @command{guix-daemon} (@pxref{Invoquer guix-daemon, -@code{--chroot-directory} option}). This allows the @code{binfmt_misc} -handlers to be used within the build environment, which in turn means that -you can transparently build programs for another architecture. +Lorsque la valeur est vraie, QEMU et toutes ses dépendances sont ajoutés à +l'environnement de construction de @command{guix-daemon} (@pxref{Invoquer guix-daemon, @code{--chroot-directory} option}). Cela permet d'utiliser les +gestionnaires @code{binfmt_misc} dans l'environnement de cosntruction, ce +qui signifie que vous pouvez construire des programmes pour d'autres +architectures de manière transparente. -For example, let's suppose you're on an x86_64 machine and you have this -service: +Par exemple, supposons que vous soyez sur une machine x86_64 et que vous +avez ce services : @example (service qemu-binfmt-service-type @@ -20818,9 +21512,10 @@ guix build -s armhf-linux inkscape @end example @noindent -and it will build Inkscape for ARMv7 @emph{as if it were a native build}, -transparently using QEMU to emulate the ARMv7 CPU. Pretty handy if you'd -like to test a package build for an architecture you don't have access to! +et cela construira Inkscape pour ARMv7 @emph{comme s'il s'agissait d'une +construction native}, de manière transparente avec QEMU pour émuler un CPU +ARMv7. Plutôt pratique si vous voulez tester un paquet construit pour une +architecture à laquelle vous n'avez pas accès ! @item @code{qemu} (par défaut : @code{qemu}) Le paquet QEMU à utiliser. @@ -20828,131 +21523,135 @@ Le paquet QEMU à utiliser. @end deftp @deffn {Procédure Scheme} lookup-qemu-platforms @var{platforms}@dots{} -Return the list of QEMU platform objects corresponding to -@var{platforms}@dots{}. @var{platforms} must be a list of strings -corresponding to platform names, such as @code{"arm"}, @code{"sparc"}, -@code{"mips64el"}, and so on. +Renvoie la liste des objets de plates-formes QEMU correspondant à +@var{platforms}@dots{}. @var{platforms} doit être une liste de chaînes de +caractères correspondant aux noms de plates-formes, comme @code{"arm"}, +@code{"sparc"}, @code{"mips64el"} etc. @end deffn @deffn {Procédure Scheme} qemu-platform? @var{obj} -Return true if @var{obj} is a platform object. +Renvoie vrai s i@var{obj} est un objet de plate-forme. @end deffn @deffn {Procédure Scheme} qemu-platform-name @var{platform} -Return the name of @var{platform}---a string such as @code{"arm"}. +Renvoie le nom de @var{platform} — une chaîne comme @code{"arm"}. @end deffn @node Services de contrôle de version -@subsubsection Services de contrôle de version +@subsection Services de contrôle de version -The @code{(gnu services version-control)} module provides a service to allow -remote access to local Git repositories. There are three options: the -@code{git-daemon-service}, which provides access to repositories via the -@code{git://} unsecured TCP-based protocol, extending the @code{nginx} web -server to proxy some requests to @code{git-http-backend}, or providing a web -interface with @code{cgit-service-type}. +Le module @code{(gnu services version-control)} fournit un service pour +permettre l'accès à distance à des dépôts Git locaux. Il y a trois options +: en utilisant @code{git-daemon-service} qui fournit un accès aux dépôts via +le protocole non sécurisé @code{git://} basé sur TCP, en étendant le serveur +web @code{nginx} pour relayer les requêtes vers @code{git-http-backend} ou +en fournissant une interface web avec @code{cgit-service-type}. @deffn {Procédure Scheme} git-daemon-service [#:config (git-daemon-configuration)] -Return a service that runs @command{git daemon}, a simple TCP server to -expose repositories over the Git protocol for anonymous access. +Renvoie un service qui lance @command{git daemon}, un serveur TCP simple +pour exposer des dépôts sur le protocole Git pour des accès anonymes. -The optional @var{config} argument should be a -@code{} object, by default it allows read-only -access to exported@footnote{By creating the magic file -"git-daemon-export-ok" in the repository directory.} repositories under -@file{/srv/git}. +L'argument facultatif @var{config} devrait être un objet +@code{}, par défaut il permet l'accès en +lecture-seule aux dépôts exportés@footnote{En créant le fichier magique « +git-daemon-export-ok » dans le répertoire du dépôt.} dans @file{/srv/git}. @end deffn @deftp {Type de données} git-daemon-configuration -Data type representing the configuration for @code{git-daemon-service}. +Type de données représentnt la configuration de @code{git-daemon-service}. @table @asis @item @code{package} (par défaut : @var{git}) -Package object of the Git distributed version control system. +Objet de paquet du système de contrôle de version distribué Git. @item @code{export-all?} (par défaut : @var{#f}) -Whether to allow access for all Git repositories, even if they do not have -the @file{git-daemon-export-ok} file. +Indique s'il faut permettre l'accès à tous les dépôts Git, même s'ils n'ont +pas le fichier @file{git-daemon-export-ok}. @item @code{base-path} (par défaut : @file{/srv/git}) -Whether to remap all the path requests as relative to the given path. If -you run git daemon with @var{(base-path "/srv/git")} on example.com, then if -you later try to pull @code{git://example.com/hello.git}, git daemon will -interpret the path as @code{/srv/git/hello.git}. +Indique s'il faut traduire toutes les requêtes de chemins relativement au +chemin actuel. Si vous lancez le démon git avec @var{(base-path +"/srv/git")} sur example.com, si vous essayez ensuite de récupérer +@code{git://example.com/hello.git}, le démon git interprétera ce chemin +comme étant @code{/srv/git/hello.git}. @item @code{user-path} (par défaut : @var{#f}) -Whether to allow @code{~user} notation to be used in requests. When -specified with empty string, requests to @code{git://host/~alice/foo} is -taken as a request to access @code{foo} repository in the home directory of -user @code{alice}. If @var{(user-path "path")} is specified, the same -request is taken as a request to access @code{path/foo} repository in the -home directory of user @code{alice}. +Indique s'il faut permettre la notation @code{~user} dans les requêtes. +Lorsque spécifié avec une chaîne vide, les requêtes à +@code{git://host/~alice/foo} sont des requêtes d'accès au dépôt @code{foo} +dans le répertoire personnel de l'utilisateur @code{alice}. Si +@var{(user-path "chemin")} est spécifié, la même requête est interprétée +comme accédant au répertoire @code{chemin/foo} dans le répertoire personnel +de l'utilisateur @code{alice}. @item @code{listen} (par défaut : @var{'()}) -Whether to listen on specific IP addresses or hostnames, defaults to all. +Indique s'il faut écouter sur des adresses IP ou des noms d'hôtes +particuliers, par défaut tous. @item @code{port} (par défaut : @var{#f}) -Whether to listen on an alternative port, which defaults to 9418. +Indique s'il faut écouter sur un port particulier, par défaut le 9418. @item @code{whitelist} (par défaut : @var{'()}) -If not empty, only allow access to this list of directories. +Si la liste n'est pas vide, n'autoriser l'accès qu'aux dossiers spécifiés. @item @code{extra-options} (par défaut : @var{'()}) -Extra options will be passed to @code{git daemon}, please run @command{man -git-daemon} for more information. +Options supplémentaires qui seront passées à @code{git daemon}, lancez +@command{man git-daemon} pour plus d'informations. @end table @end deftp -The @code{git://} protocol lacks authentication. When you pull from a -repository fetched via @code{git://}, you don't know that the data you -receive was modified is really coming from the specified host, and you have -your connection is subject to eavesdropping. It's better to use an -authenticated and encrypted transport, such as @code{https}. Although Git -allows you to serve repositories using unsophisticated file-based web -servers, there is a faster protocol implemented by the -@code{git-http-backend} program. This program is the back-end of a proper -Git web service. It is designed to sit behind a FastCGI proxy. @xref{Services web}, for more on running the necessary @code{fcgiwrap} daemon. +Le protocole @code{git://} ne permet pas l'authentification. Lorsque vous +récupérez un dépôt via @code{git://}, vous ne pouvez pas savoir si les +données que vous recevez ont été modifiées ou si elles viennent bien de +l'hôte spécifié, et votre connexion pourrait être espionnée. Il est +préférable d'utiliser un protocole de transport authentifié et chiffré, +comme @code{https}. Bien que Git vous permette de servir des dépôts avec un +serveur web peu sophistiqué basé sur les fichiers, il y a un protocole plus +rapide implémenté par le programme @code{git-http-backend}. Ce programme +est le moteur des services web Git corrects. Il est conçu pour se trouver +derrière un mandataire FastCGI. @xref{Services web} pour plus +d'informations sur la manière de lancer le démon @code{fcgiwrap} nécessaire. -Guix has a separate configuration data type for serving Git repositories -over HTTP. +Guix a un type de données de configuration séparé pour servir des dépôts Git +par HTTP. @deftp {Type de données} git-http-configuration -Data type representing the configuration for @code{git-http-service}. +Type de données représentant la configuration de @code{git-http-service}. @table @asis @item @code{package} (par défaut : @var{git}) -Package object of the Git distributed version control system. +Objet de paquet du système de contrôle de version distribué Git. @item @code{git-root} (par défaut : @file{/srv/git}) -Directory containing the Git repositories to expose to the world. +Répertoire contenant les dépôts Git à exposer au monde. @item @code{export-all?} (par défaut : @var{#f}) -Whether to expose access for all Git repositories in @var{git-root}, even if -they do not have the @file{git-daemon-export-ok} file. +Indique s'il faut exposer l'accès de tous les dépôts Git dans +@var{git-root}, même s'ils n'ont pas le fichier @file{git-daemon-export-ok}. @item @code{uri-path} (par défaut : @file{/git/}) -Path prefix for Git access. With the default @code{/git/} prefix, this will -map @code{http://@var{server}/git/@var{repo}.git} to -@code{/srv/git/@var{repo}.git}. Requests whose URI paths do not begin with -this prefix are not passed on to this Git instance. +Préfixe du chemin pour l'accès Git. Avec le préfixe @code{/git/} par +défaut, cela traduira @code{http://@var{server}/git/@var{repo}.git} en +@code{/sr/git/@var{repo}.git}. Les requêtes dont les chemins d'URI ne +commencent pas par ce préfixe ne seront pas passées à cette instance de Git. @item @code{fcgiwrap-socket} (par défaut : @code{127.0.0.1:9000}) -The socket on which the @code{fcgiwrap} daemon is listening. @xref{Services web}. +Le socket sur lequel le démon @code{fcgiwrap} écoute. @xref{Services web}. @end table @end deftp -There is no @code{git-http-service-type}, currently; instead you can create -an @code{nginx-location-configuration} from a @code{git-http-configuration} -and then add that location to a web server. +Il n'y a pas de @code{git-http-service-type}, actuellement ; à la place vous +pouvez créer un @code{nginx-location-configuration} à partir d'un +@code{git-http-configuration} puis ajouter cela au serveur web. @deffn {Procédure Scheme} git-http-nginx-location-configuration @ - [config=(git-http-configuration)] Compute an -@code{nginx-location-configuration} that corresponds to the given Git http -configuration. An example nginx service definition to serve the default -@file{/srv/git} over HTTPS might be: + [config=(git-http-configuration)] +Calcule un @code{nginx-location-configuration} qui correspond à la +configuration http Git donnée. Voici un exemple de définition de service +nginx qui sert le répertoire @file{/srv/git} par défaut en HTTPS : @example (service nginx-service-type @@ -20972,11 +21671,11 @@ configuration. An example nginx service definition to serve the default (git-http-configuration (uri-path "/")))))))))) @end example -This example assumes that you are using Let's Encrypt to get your TLS -certificate. @xref{Services de certificats}. The default @code{certbot} -service will redirect all HTTP traffic on @code{git.my-host.org} to HTTPS. -You will also need to add an @code{fcgiwrap} proxy to your system services. -@xref{Services web}. +Ce exemple suppose que vous utilisez Let's Encrypt pour récupérer votre +certificat TLS. @xref{Services de certificats}. Le service @code{certbot} par +défaut redirigera tout le trafic HTTP de @code{git.my-host.org} en HTTPS. +Vous devrez aussi ajouter un mandataire @code{fcgiwrap} à vos services +systèmes. @xref{Services web}. @end deffn @subsubheading Service Cgit @@ -20986,15 +21685,15 @@ You will also need to add an @code{fcgiwrap} proxy to your system services. @uref{https://git.zx2c4.com/cgit/, Cgit} est une interface web pour des dépôts Git écrite en C. -The following example will configure the service with default values. By -default, Cgit can be accessed on port 80 (@code{http://localhost:80}). +L'exemple suivant configurera le service avec les valeurs par défaut. Par +défaut, on peut accéder à Cgit sur le port (@code{http://localhost:80}). @example (service cgit-service-type) @end example -The @code{file-object} type designates either a file-like object -(@pxref{G-Expressions, file-like objects}) or a string. +Le type @code{file-object} désigne soit un objet simili-fichier +(@pxref{G-Expressions, file-like objects}), soit une chaîne. @c %start of fragment @@ -21011,276 +21710,278 @@ Configuration Nginx. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} file-object about-filter -Specifies a command which will be invoked to format the content of about -pages (both top-level and for each repository). +Spécifie une commande qui doit être invoquée pour formater le contenu des +pages « à propos » (au plus haut niveau et pour chaque dépôt). La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string agefile -Specifies a path, relative to each repository path, which can be used to -specify the date and time of the youngest commit in the repository. +Spécifie un chemin, relativement à chaque dépôt, qui peut être utilisé pour +spécifier la date et l'heure du plus récent commit du dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} file-object auth-filter -Specifies a command that will be invoked for authenticating repository -access. +Spécifie une commande qui sera invoquée pour authentifier l'accès au dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string branch-sort -Flag which, when set to @samp{age}, enables date ordering in the branch ref -list, and when set @samp{name} enables ordering by branch name. +Drapeau qui, lorsqu'il vaut @samp{age}, active le trie par date dans la +liste des branches, et le trie par nom lorsqu'il vaut @samp{name}. La valeur par défaut est @samp{"name"}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string cache-root -Path used to store the cgit cache entries. +Chemin utilisé pour stocker les entrées de cache de cgit. La valeur par défaut est @samp{"/var/cache/cgit"}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer cache-static-ttl -Number which specifies the time-to-live, in minutes, for the cached version -of repository pages accessed with a fixed SHA1. +Nombre qui spécifie le temps de vie, en minute, des versions en cache des +pages du dépôt accédées par leur SHA-1. La valeur par défaut est @samp{-1}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer cache-dynamic-ttl -Number which specifies the time-to-live, in minutes, for the cached version -of repository pages accessed without a fixed SHA1. +Nombre qui spécifie le temps de vie, en minutes, des version en cache des +pages du dépôt accédées sans leur SHA1. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer cache-repo-ttl -Number which specifies the time-to-live, in minutes, for the cached version -of the repository summary page. +Nombre qui spécifie le temps de vie, en minute, des version en cache de la +page de résumé du dépôt. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer cache-root-ttl -Number which specifies the time-to-live, in minutes, for the cached version -of the repository index page. +Nombre qui spécifie le temps de vie, en minutes, de la version en cache de +la page d'index du dépôt. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer cache-scanrc-ttl -Number which specifies the time-to-live, in minutes, for the result of -scanning a path for Git repositories. +Nombre qui spécifie le temps de vie, en minutes, de la version en cache du +résultat du scan d'un chemin dans le dépôt Git. La valeur par défaut est @samp{15}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer cache-about-ttl -Number which specifies the time-to-live, in minutes, for the cached version -of the repository about page. +Nombre qui spécifie le temps de vie, en minutes, de la version en cache de +la page « à propos » du dépôt. La valeur par défaut est @samp{15}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer cache-snapshot-ttl -Number which specifies the time-to-live, in minutes, for the cached version -of snapshots. +Nombre qui spécifie le temps de vie, en minutes, de la version en cache des +archives. La valeur par défaut est @samp{5}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer cache-size -The maximum number of entries in the cgit cache. When set to @samp{0}, -caching is disabled. +Le nombre maximum d'entrées dans le cache de cgit. Lorsque la valeur est +@samp{0}, le cache est désactivé. La valeur par défaut est @samp{0}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean case-sensitive-sort? -Sort items in the repo list case sensitively. +Indique si le tri des éléments est sensible à la casse. La valeur par défaut est @samp{#t}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} list clone-prefix -List of common prefixes which, when combined with a repository URL, -generates valid clone URLs for the repository. +Liste des préfixes communs qui, lorsqu'ils sont combinés à l'URL du dépôt, +génèrent des URL de clone valides pour le dépôt. La valeur par défaut est @samp{()}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} list clone-url -List of @code{clone-url} templates. +Liste des modèles @code{clone-url} La valeur par défaut est @samp{()}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} file-object commit-filter -Command which will be invoked to format commit messages. +Commande qui sera invoquée pour formater les messages de commit. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string commit-sort -Flag which, when set to @samp{date}, enables strict date ordering in the -commit log, and when set to @samp{topo} enables strict topological ordering. +Drapeau qui, s'il vaut @samp{date}, active le tri par date strict dans le +messages de commit, et le tri topologique strict lorsqu'il vaut @samp{topo}. La valeur par défaut est @samp{"git log"}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} file-object css -URL which specifies the css document to include in all cgit pages. +URL qui spécifie le document css à inclure dans les pages cgit. La valeur par défaut est @samp{"/share/cgit/cgit.css"}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} file-object email-filter -Specifies a command which will be invoked to format names and email address -of committers, authors, and taggers, as represented in various places -throughout the cgit interface. +Spécifie une commande qui sera invoquée pour formater les noms et l'adresse +de courriel des commiteurs, des auteurs et des taggueurs, représentés à +plusieurs endroits dans l'interface cgit. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean embedded? -Flag which, when set to @samp{#t}, will make cgit generate a HTML fragment -suitable for embedding in other HTML pages. +Drapeau qui, s'il vaut @samp{#t}, fera générer un fragment HTML à cgit qu'il +sera possible d'inclure dans d'autres pages HTML. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-commit-graph? -Flag which, when set to @samp{#t}, will make cgit print an ASCII-art commit -history graph to the left of the commit messages in the repository log page. +Drapeau qui, lorsqu'il vaut @samp{#t}, fera afficher un historique en +ASCII-art à gauche des messages de commit dans la page de log du dépôt. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-filter-overrides? -Flag which, when set to @samp{#t}, allows all filter settings to be -overridden in repository-specific cgitrc files. +Drapeau qui, lorsqu'il vaut @samp{#t}, permet à tous les paramètres de +filtrage d'être modifiés dans des fichiers cgitrc spécifiques au dépôt. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-follow-links? -Flag which, when set to @samp{#t}, allows users to follow a file in the log -view. +Drapeau qui, s'il vaut @samp{#t}, permet aux utilisateurs de suivre un +fichier dans la vue « log ». La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-http-clone? -If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones. +Si la valeur est @samp{#t}, cgit agira comme un point d'accès HTTP idiot +pour les clones Git. La valeur par défaut est @samp{#t}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-index-links? -Flag which, when set to @samp{#t}, will make cgit generate extra links -"summary", "commit", "tree" for each repo in the repository index. +Drapeau qui, s'il vaut @samp{#t}, fera générer des liens « résumé », « +commit » et « arborescence » supplémentaires poru chaque dépôt dans l'index +des dépôts. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-index-owner? -Flag which, when set to @samp{#t}, will make cgit display the owner of each -repo in the repository index. +Drapeau qui, s'il vaut @samp{#t}, fera afficher le propriétaire de chaque +dépôt dans l'index des dépôts. La valeur par défaut est @samp{#t}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-log-filecount? -Flag which, when set to @samp{#t}, will make cgit print the number of -modified files for each commit on the repository log page. +Drapeau qui, s'il vaut @samp{#t}, fera afficher à cgit le nombre de fichiers +modifiés pour chaque commit sur la page de log du dépôt. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-log-linecount? -Flag which, when set to @samp{#t}, will make cgit print the number of added -and removed lines for each commit on the repository log page. +Drapeau qui, s'il vaut @samp{#t}, fera afficher à cgit le nombre de lignes +ajoutées et enlevées pour chaque commit de la page de log du dépôt. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-remote-branches? -Flag which, when set to @code{#t}, will make cgit display remote branches in -the summary and refs views. +Drapeau qui, s'il vaut @samp{#t}, fera afficher les branches distantes dans +les vues du résumé et des références. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-subject-links? -Flag which, when set to @code{1}, will make cgit use the subject of the -parent commit as link text when generating links to parent commits in commit -view. +Drapeau qui, s'il vaut @samp{1}, fera utiliser à cgit le sujet du commit +parent comme texte du lien lors de la génération des liens vers les commits +parents dans la vue des commits. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-html-serving? -Flag which, when set to @samp{#t}, will make cgit use the subject of the -parent commit as link text when generating links to parent commits in commit -view. +Drapeau qui, s'il vaut @samp{#t}, fera utiliser à cgit l esujet du commit +parent comme texte du lien lors de la génération des liens vers le commit +parent dans la vue des commits. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-tree-linenumbers? -Flag which, when set to @samp{#t}, will make cgit generate linenumber links -for plaintext blobs printed in the tree view. +Drapeau qui, s'il vaut @samp{#t}, fera générer à cgit des liens vers le +numéro de ligne pour les blobs en texte brut affichés dans la vue de +l'arborescence. La valeur par défaut est @samp{#t}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean enable-git-config? -Flag which, when set to @samp{#f}, will allow cgit to use Git config to set -any repo specific settings. +Drapeau qui, s'il vaut @samp{#t}, permettra à cgit d'utiliser la +configuration Git pour spécifier des paramètres spécifiques au dépôt. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} file-object favicon -URL used as link to a shortcut icon for cgit. +URL utilisée comme lien vers un icône pour cgit. La valeur par défaut est @samp{"/favicon.ico"}. @@ -21296,129 +21997,131 @@ La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string head-include -The content of the file specified with this option will be included verbatim -in the HTML HEAD section on all pages. +Le contenu du fichier spécifié dans cette option sera inclus directement +dans la section HEAD HTML de toutes les pages. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string header -The content of the file specified with this option will be included verbatim -at the top of all pages. +Le contenu du fichier spécifié avec cette option sera inclus directement au +début de toutes les pages. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} file-object include -Name of a configfile to include before the rest of the current config- file -is parsed. +Nom d'un fichier de configuration à inclure avant que le reste du fichier de +configuration actuel ne soit analysé. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string index-header -The content of the file specified with this option will be included verbatim -above the repository index. +Le contenu du fichier spécifié avec cette option sera inclus directement au +dessus de l'index des dépôts. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string index-info -The content of the file specified with this option will be included verbatim -below the heading on the repository index page. +Le contenu du fichier spécifié avec cette option sera inclus directement en +dessous de l'en-tête sur la page d'index du dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean local-time? -Flag which, if set to @samp{#t}, makes cgit print commit and tag times in -the servers timezone. +Drapeau qui, s'il vaut @samp{#t}, fera afficher à cgit l'heure et la date de +commit et de tag dans le fuseau horaire du serveur. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} file-object logo -URL which specifies the source of an image which will be used as a logo on -all cgit pages. +URL qui spécifie la source d'une image utilisé comme logo sur toutes les +pages cgit. La valeur par défaut est @samp{"/share/cgit/cgit.png"}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string logo-link -URL loaded when clicking on the cgit logo image. +URL chargée lors du clic sur l'image du logo de cgit. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} file-object owner-filter -Command which will be invoked to format the Owner column of the main page. +Commande qui sera invoquée pour formater la colonne propriétaire sur la page +principale. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer max-atom-items -Number of items to display in atom feeds view. +Nombre d'éléments à afficher dans la vue des flux atom. La valeur par défaut est @samp{10}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer max-commit-count -Number of entries to list per page in "log" view. +Nombre d'éléments à lister par page dans la vue « log ». La valeur par défaut est @samp{50}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer max-message-length -Number of commit message characters to display in "log" view. +Nombre caractères de messages de commit à afficher dans la vue « log ». La valeur par défaut est @samp{80}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer max-repo-count -Specifies the number of entries to list per page on the repository index -page. +Spécifie le nombre d'éléments à lister par page sur la page de l'index des +dépôts. La valeur par défaut est @samp{50}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer max-repodesc-length -Specifies the maximum number of repo description characters to display on -the repository index page. +Spécifie le nombre maximum de caractères de description de dépôts à afficher +sur la page d'index des dépôts. La valeur par défaut est @samp{80}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer max-blob-size -Specifies the maximum size of a blob to display HTML for in KBytes. +Spécifie la taille maximale d'un blob pour lequel afficher du HTML en +kilo-octets. La valeur par défaut est @samp{0}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string max-stats -Maximum statistics period. Valid values are @samp{week},@samp{month}, -@samp{quarter} and @samp{year}. +Période de statistiques maximale. Les valeurs valides sont @samp{week}, +@samp{month}, @samp{quarter} et @samp{year}. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} mimetype-alist mimetype -Mimetype for the specified filename extension. +Type mime pour l'extension de fichier spécifiée. La valeur par défaut est @samp{((gif "image/gif") (html "text/html") (jpg "image/jpeg") (jpeg "image/jpeg") (pdf "application/pdf") (png "image/png") @@ -21427,131 +22130,132 @@ La valeur par défaut est @samp{((gif "image/gif") (html "text/html") (jpg @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} file-object mimetype-file -Specifies the file to use for automatic mimetype lookup. +Spécifie le fichier à utiliser pour la recherche automatique de type mime. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string module-link -Text which will be used as the formatstring for a hyperlink when a submodule -is printed in a directory listing. +Texte qui sera utilisé comme chaîne de formatage pour un lien hypertexte +lorsqu'un sous-module est affiché dans la liste du répertoire. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean nocache? -If set to the value @samp{#t} caching will be disabled. +Si la valeur est @samp{#t}, le cache est désactivé. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean noplainemail? -If set to @samp{#t} showing full author email addresses will be disabled. +Si la valeur est @samp{#t}, l'affichage des adresse de courriel des auteurs +sera désactivé. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean noheader? -Flag which, when set to @samp{#t}, will make cgit omit the standard header -on all pages. +Drapeau qui, s'il vaut @samp{#t}, fera omettre à cgit l'en-tête standard sur +toutes les pages. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} project-list project-list -A list of subdirectories inside of @code{repository-directory}, relative to -it, that should loaded as Git repositories. An empty list means that all -subdirectories will be loaded. +UNe liste de sous-répertoires dans @code{repository-directory}, relativement +à lui, qui devrait être chargé comme des dépôts Git. Une liste vide +signifie que tous les sous-répertoires seront chargés. La valeur par défaut est @samp{()}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} file-object readme -Text which will be used as default value for @code{cgit-repo-readme}. +Texte utilisé comme valeur par défaut pour @code{cgit-repo-readme}. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean remove-suffix? -If set to @code{#t} and @code{repository-directory} is enabled, if any -repositories are found with a suffix of @code{.git}, this suffix will be -removed for the URL and name. +Si la valeur est @code{#t} et que @code{repository-directory} est activé, si +un dépôt avec un suffixe de @code{.git} est trouvé, ce suffixe sera supprimé +de l'URL et du nom. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer renamelimit -Maximum number of files to consider when detecting renames. +Nombre maximum de fichiers à considérer lors de la détection des renommages. La valeur par défaut est @samp{-1}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string repository-sort -The way in which repositories in each section are sorted. +La manière dont les dépôt de chaque section sont rangés. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} robots-list robots -Text used as content for the @code{robots} meta-tag. +Texte utilisé comme contenu du méta-attribut @code{robots}. La valeur par défaut est @samp{("noindex" "nofollow")}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string root-desc -Text printed below the heading on the repository index page. +Texte affiché en dessous de l'en-tête de la page d'index des dépôts. La valeur par défaut est @samp{"a fast webinterface for the git dscm"}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string root-readme -The content of the file specified with this option will be included verbatim -below thef "about" link on the repository index page. +Le contenu du fichier spécifié avec cette option sera inclus directement en +dessous du lien « à propos » sur la page d'index du dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string root-title -Text printed as heading on the repository index page. +Texte affiché sur la page d'index des dépôts. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean scan-hidden-path -If set to @samp{#t} and repository-directory is enabled, -repository-directory will recurse into directories whose name starts with a -period. Otherwise, repository-directory will stay away from such -directories, considered as "hidden". Note that this does not apply to the -".git" directory in non-bare repos. +Si la valeur est @samp{#t} et que repository-directory est activé, +repository-directory recherchera de manière récursive dans les répertoires +dont le nom commence par un point. Sinon, repository-directory restera hors +de ces répertoires, considérés comme « cachés ». Remarquez que cela ne +s'applique pas au répertoire « .git » dans le dépôts. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} list snapshots -Text which specifies the default set of snapshot formats that cgit generates -links for. +Texte qui spécifie l'ensemble des formats d'archives par défaut pour +lesquelles cgit générera un lien. La valeur par défaut est @samp{()}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} repository-directory repository-directory -Name of the directory to scan for repositories (represents +Nom du répertoire à scanner pour trouver les dépôts (représente @code{scan-path}). La valeur par défaut est @samp{"/srv/git"}. @@ -21559,328 +22263,329 @@ La valeur par défaut est @samp{"/srv/git"}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string section -The name of the current repository section - all repositories defined after -this option will inherit the current section name. +Le nom de la section de dépôts actuelle — tous les dépôts définis après ce +point hériterons du nom de section actuel. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string section-sort -Flag which, when set to @samp{1}, will sort the sections on the repository -listing by name. +Drapeau qui, s'il vaut @samp{1}, triera les sections dans la liste des +dépôts par nom. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer section-from-path -A number which, if defined prior to repository-directory, specifies how many -path elements from each repo path to use as a default section name. +Un nombre qui, s'il est défini avant repository-directory, spécifier combien +d'éléments de chemin de chaque chemin de dépôt utiliser comme nom de section +par défaut. La valeur par défaut est @samp{0}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} boolean side-by-side-diffs? -If set to @samp{#t} shows side-by-side diffs instead of unidiffs per -default. +Si la valeur est @samp{#t}, afficher des diffs côte à côte au lieu des +unidiffs par défaut. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} file-object source-filter -Specifies a command which will be invoked to format plaintext blobs in the -tree view. +Spécifie une commande qui sera invoquée pour formater les blobs en texte +brut dans la vue de l'arborescence. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer summary-branches -Specifies the number of branches to display in the repository "summary" -view. +Spécifie le nombre de branches à afficher dans la vue de résumé du dépôt. La valeur par défaut est @samp{10}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer summary-log -Specifies the number of log entries to display in the repository "summary" -view. +Spécifie le nombre d'élément du journal à afficher dans la vue résumé du +dépôt. La valeur par défaut est @samp{10}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} integer summary-tags -Specifies the number of tags to display in the repository "summary" view. +Spécifie le nombre de tags à afficher dans la vue résumé du dépôt. La valeur par défaut est @samp{10}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string strict-export -Filename which, if specified, needs to be present within the repository for -cgit to allow access to that repository. +Nom de fichier qui, s'il est spécifié, doit être présent dans le dépôt pour +que cgit accorde l'accès à ce dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} string virtual-root -URL which, if specified, will be used as root for all cgit links. +URL qui, si elle est spécifiée, sera utilisée comme racine pour tous les +liens cgit. La valeur par défaut est @samp{"/"}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} repository-cgit-configuration-list repositories -A list of @dfn{cgit-repo} records to use with config. +Une liste d'enregistrements @dfn{cgit-repo} à utiliser avec config. La valeur par défaut est @samp{()}. Les champs de @code{repository-cgit-configuration} disponibles sont : @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-list snapshots -A mask of snapshot formats for this repo that cgit generates links for, -restricted by the global @code{snapshots} setting. +Un masque de formats d'archives pour ce dépôt pour lesquelles cgit générera +un lien, restreint par le paramètre @code{snapshots} global. La valeur par défaut est @samp{()}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-file-object source-filter -Override the default @code{source-filter}. +Modifie le @code{source-filter} par défaut. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string url -The relative URL used to access the repository. +URL relative utilisée pour accéder au dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-file-object about-filter -Override the default @code{about-filter}. +Modifie le paramètre @code{about-filter} par défaut. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string branch-sort -Flag which, when set to @samp{age}, enables date ordering in the branch ref -list, and when set to @samp{name} enables ordering by branch name. +Drapeau qui, s'il vaut @samp{age}, active le tri par date dans la liste des +branches, et lorsqu'il vaut @samp{name}, le tri par nom. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-list clone-url -A list of URLs which can be used to clone repo. +Un liste d'URL qui peuvent être utilisées pour cloner ce dépôt. La valeur par défaut est @samp{()}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-file-object commit-filter -Override the default @code{commit-filter}. +Modifie le paramètre @code{commit-filter} par défaut. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string commit-sort -Flag which, when set to @samp{date}, enables strict date ordering in the -commit log, and when set to @samp{topo} enables strict topological ordering. +Drapeau qui, s'il vaut @samp{date}, active le tri par date strict dans le +messages de commit, et le tri topologique strict lorsqu'il vaut @samp{topo}. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string defbranch -The name of the default branch for this repository. If no such branch -exists in the repository, the first branch name (when sorted) is used as -default instead. By default branch pointed to by HEAD, or "master" if there -is no suitable HEAD. +Le nom de la branche par défaut de ce dépôt. Si cette branche n'existe pas +dans le dépôt, le premier nom de branche (trié) sera utilisé par défaut. +Par défaut la branche pointée par HEAD, ou « master » s'il n'y a pas de HEAD +convenable. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string desc -The value to show as repository description. +La valeur à afficher comme description du dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string homepage -The value to show as repository homepage. +La valeur à afficher comme page d'accueil du dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-file-object email-filter -Override the default @code{email-filter}. +Modifie le paramètre @code{email-filter} par défaut. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-commit-graph? -A flag which can be used to disable the global setting -@code{enable-commit-graph?}. +Un drapeau qui peut être utilisé pour désactiver le paramètre +@code{enable-commit-graph?} global. La valeur par défaut est @samp{disabled}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-log-filecount? -A flag which can be used to disable the global setting -@code{enable-log-filecount?}. +Un drapeau qui peut être utilisé pour désactiver le paramètre +@code{enable-log-filecount?} global. La valeur par défaut est @samp{disabled}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-log-linecount? -A flag which can be used to disable the global setting -@code{enable-log-linecount?}. +Un drapeau qui peut être utilisé pour désactiver le paramètre +@code{enable-log-linecount?} global. La valeur par défaut est @samp{disabled}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-remote-branches? -Flag which, when set to @code{#t}, will make cgit display remote branches in -the summary and refs views. +Drapeau qui, s'il vaut @samp{#t}, fera afficher les branches distantes dans +les vues du résumé et des références. La valeur par défaut est @samp{disabled}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-subject-links? -A flag which can be used to override the global setting -@code{enable-subject-links?}. +Un drapeau qui peut être utilisé pour modifier le paramètre +@code{enable-subject-links?} global. La valeur par défaut est @samp{disabled}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-html-serving? -A flag which can be used to override the global setting -@code{enable-html-serving?}. +Un drapeau qui peut être utilisé pour modifier le paramètre +@code{enable-html-serving?} global. La valeur par défaut est @samp{disabled}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-boolean hide? -Flag which, when set to @code{#t}, hides the repository from the repository -index. +Drapeau qui, s'il vaut @code{#t}, cache le dépôt de l'index des dépôts. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-boolean ignore? -Flag which, when set to @samp{#t}, ignores the repository. +Drapeau qui, s'il vaut @code{#t}, ignore le dépôt. La valeur par défaut est @samp{#f}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-file-object logo -URL which specifies the source of an image which will be used as a logo on -this repo’s pages. +URL qui spécifie la source d'une image qui sera utilisée comme logo sur les +pages de ce dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string logo-link -URL loaded when clicking on the cgit logo image. +URL chargée lors du clic sur l'image du logo de cgit. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-file-object owner-filter -Override the default @code{owner-filter}. +Modifie le paramètre @code{owner-filter} par défaut. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string module-link -Text which will be used as the formatstring for a hyperlink when a submodule -is printed in a directory listing. The arguments for the formatstring are -the path and SHA1 of the submodule commit. +Texte qui sera utilisé comme chaîne de formatage pour un lien hypertexte +lorsqu'un sous-module est affiché dans une liste de fichiers. Les arguments +pour la chaîne de formatage sont le chemin et le SHA1 du commit du +sous-module. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} module-link-path module-link-path -Text which will be used as the formatstring for a hyperlink when a submodule -with the specified subdirectory path is printed in a directory listing. +Texte qui sera utilisé comme chaîne de formatage lorsqu'un sous-module avec +un chemin spécifié sera affiché dans une liste de fichiers. La valeur par défaut est @samp{()}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string max-stats -Override the default maximum statistics period. +Modifie la période de statistique maximale par défaut. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string name -The value to show as repository name. +La valeur à afficher comme nom de dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string owner -A value used to identify the owner of the repository. +Une valeur utilisée pour identifier le propriétaire du dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string path -An absolute path to the repository directory. +Un chemin absolu vers le répertoire du dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string readme -A path (relative to repo) which specifies a file to include verbatim as the -"About" page for this repo. +Un chemin (relatif au dépôt) qui spécifie un fichier à inclure directement +comme page « À propos » pour ce dépôt. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string section -The name of the current repository section - all repositories defined after -this option will inherit the current section name. +Le nom de la section de dépôts actuelle — tous les dépôts définis après ce +point hériterons du nom de section actuel. La valeur par défaut est @samp{""}. @end deftypevr @deftypevr {paramètre de @code{repository-cgit-configuration}} repo-list extra-options -Extra options will be appended to cgitrc file. +Options supplémentaires ajoutées à la fin du fichier cgitrc. La valeur par défaut est @samp{()}. @@ -21889,7 +22594,7 @@ La valeur par défaut est @samp{()}. @end deftypevr @deftypevr {paramètre de @code{cgit-configuration}} list extra-options -Extra options will be appended to cgitrc file. +Options supplémentaires ajoutées à la fin du fichier cgitrc. La valeur par défaut est @samp{()}. @@ -21898,23 +22603,24 @@ La valeur par défaut est @samp{()}. @c %end of fragment -However, it could be that you just want to get a @code{cgitrc} up and -running. In that case, you can pass an @code{opaque-cgit-configuration} as -a record to @code{cgit-service-type}. As its name indicates, an opaque -configuration does not have easy reflective capabilities. +Cependant, vous pourriez vouloir simplement récupérer un @code{cgitrc} et +l'utiliser. Dans ce cas, vous pouvez passer un +@code{opaque-cgit-configuration} comme enregistrement à +@code{cgit-service-type}. Comme son nom l'indique, une configuration opaque +n'a pas de capacité de réflexion facile. Les champs de @code{opaque-cgit-configuration} disponibles sont : @deftypevr {paramètre de @code{opaque-cgit-configuration}} package cgit -The cgit package. +Le paquet cgit. @end deftypevr @deftypevr {paramètre de @code{opaque-cgit-configuration}} string string -The contents of the @code{cgitrc}, as a string. +Le contenu de @code{cgitrc}, en tant que chaîne de caractère. @end deftypevr -For example, if your @code{cgitrc} is just the empty string, you could -instantiate a cgit service like this: +Par exemple, si votre @code{cgitrc} est juste la chaîne vide, vous pouvez +instancier un service cgit ainsi : @example (service cgit-service-type @@ -21926,14 +22632,14 @@ instantiate a cgit service like this: @cindex service Gitolite @cindex Git, hébergement -@uref{http://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git -repositories on a central server. +@uref{http://gitolite.com/gitolite/, Gitolite} est un outil pour héberger +des dépôts Git sur un serveur central. -Gitolite can handle multiple repositories and users, and supports flexible -configuration of the permissions for the users on the repositories. +Gitolite peut gérer plusieurs dépôts et utilisateurs et supporte une +configuration flexible des permissions pour les utilisateurs sur ces dépôts. -The following example will configure Gitolite using the default @code{git} -user, and the provided SSH public key. +L'exemple suivant configure Gitolite en utilisant l'utilisateur @code{git} +par défaut et la clef SSH fournie. @example (service gitolite-service-type @@ -21943,18 +22649,18 @@ user, and the provided SSH public key. "ssh-rsa AAAA... guix@@example.com")))) @end example -Gitolite is configured through a special admin repository which you can -clone, for example, if you setup Gitolite on @code{example.com}, you would -run the following command to clone the admin repository. +Gitolite est configuré via un dépôt d'administration spécial que vous pouvez +cloner. Par exemple, si vous hébergez Gitolite sur @code{example.com}, vous +pouvez lancer la commande suivante pour cloner le dépôt d'administration : @example git clone git@@example.com:gitolite-admin @end example -When the Gitolite service is activated, the provided @code{admin-pubkey} -will be inserted in to the @file{keydir} directory in the gitolite-admin -repository. If this results in a change in the repository, it will be -committed using the message ``gitolite setup by GNU Guix''. +Lorsque le service Gitolite est activé, la clef @code{admin-pubkey} fournie +sera insérée dans le répertoire @file{keydir} du dépôt gitolite-admin. Si +cela change le dépôt, un commit sera effectué avec le message « gitolite +setup by GNU Guix ». @deftp {Type de données} gitolite-configuration Type de données représentant la configuration de @@ -21965,8 +22671,8 @@ Type de données représentant la configuration de Le paquet Gitolite à utiliser. @item @code{user} (par défaut : @var{git}) -User to use for Gitolite. This will be user that you use when accessing -Gitolite over SSH. +Utilisateur pour utiliser Gitolite. Cela sera l'utilisateur à utiliser pour +accéder à Gitolite par SSH. @item @code{group} (par défaut : @var{git}) Groupe à utiliser pour Gitolite. @@ -21983,7 +22689,8 @@ Un objet « simili-fichier » (@pxref{G-Expressions, file-like objects}) utilisé pour paramétrer Gitolite. Il sera inséré dans le répertoire @file{keydir} dans le dépôt gitolite-admin. -To specify the SSH key as a string, use the @code{plain-file} function. +Pour spécifier la clef SSH comme chaîne de caractère, utilisez la fonction +@code{plain-file}. @example (plain-file "yourname.pub" "ssh-rsa AAAA... guix@@example.com") @@ -21997,40 +22704,43 @@ Type de données représentant le fichier RC de Gitolite. @table @asis @item @code{umask} (par défaut : @code{#o0077}) -This controls the permissions Gitolite sets on the repositories and their -contents. +Cela contrôle les permissions que Gitolite propose sur les dépôts et leur +contenu. -A value like @code{#o0027} will give read access to the group used by -Gitolite (by default: @code{git}). This is necessary when using Gitolite -with software like cgit or gitweb. +Une valeur comme @code{#o0027} donnera accès en lecture au groupe utilisé +par Gitolite (par défaut : @code{git}). Cel aest nécessaire lorsque vous +utilise Gitolite avec un logiciel comme cgit ou gitweb. @item @code{git-config-keys} (par défaut : @code{""}) -Gitolite allows you to set git config values using the "config" -keyword. This setting allows control over the config keys to accept. +Gitolite vous permet de modifier les configurations git avec le mot-clef « +config ». Ce paramètre vous permet de contrôler les clefs de configuration +acceptables. @item @code{roles} (par défaut : @code{'(("READERS" . 1) ("WRITERS" . ))}) -Set the role names allowed to be used by users running the perms command. +Indique les noms des rôles qui peuvent être utilisés par les utilisateurs +avec la commande perms. @item @code{enable} (par défaut : @code{'("help" "desc" "info" "perms" "writable" "ssh-authkeys" "git-config" "daemon" "gitweb")}) -This setting controls the commands and features to enable within Gitolite. +Ce paramètre contrôle les commandes et les fonctionnalités à activer dans +Gitolite. @end table @end deftp @node Services de jeu -@subsubsection Services de jeu +@subsection Services de jeu -@subsubheading The Battle for Wesnoth Service +@subsubheading Le service de la Bataille pour Wesnoth @cindex wesnothd -@uref{https://wesnoth.org, The Battle for Wesnoth} is a fantasy, turn based -tactical strategy game, with several single player campaigns, and -multiplayer games (both networked and local). +@uref{https://wesnoth.org, La Bataille pour Wesnoth} est un jeu de stratégie +en tour par tour dans un univers fantastique, avec plusieurs campagnes solo +et des parties multijoueurs (en réseau et en local). @defvar {Variable Scheme} wesnothd-service-type -Service type for the wesnothd service. Its value must be a -@code{wesnothd-configuration} object. To run wesnothd in the default -configuration, instantiate it as: +Type de service pour le service wesnothd. Sa valeur doit être un objet +@code{wesnothd-configuration}. Pour lancer wesnothd avec la configuration +par défaut, instanciez-le ainsi : @example (service wesnothd-service-type) @@ -22038,29 +22748,29 @@ configuration, instantiate it as: @end defvar @deftp {Type de données} wesnothd-configuration -Data type representing the configuration of @command{wesnothd}. +Type de donées représentant la configuration de @command{wesnothd}. @table @asis @item @code{package} (par défaut : @code{wesnoth-server}) -The wesnoth server package to use. +Le paquet de serveur de wesnoth à utiliser. @item @code{port} (par défaut : @code{15000}) -The port to bind the server to. +Le pour sur lequel lier le serveur. @end table @end deftp @node Services divers -@subsubsection Services divers +@subsection Services divers -@cindex fingerprint +@cindex empreinte digitale @subsubheading Service d'empreintes digitales Le module @code{(gnu services fingerprint)} fournit un service DBus pour lire et identifier les empreintes digitales via un lecteur d'empreinte. @defvr {Variable Scheme} fprintd-service-type -The service type for @command{fprintd}, which provides the fingerprint -reading capability. +Le type de service pour @command{fprintd}, qui fournit des capacités de +lecture d'empreinte. @example (service fprintd-service-type) @@ -22068,15 +22778,15 @@ reading capability. @end defvr @cindex sysctl -@subsubheading System Control Service +@subsubheading Service de contrôle du système -The @code{(gnu services sysctl)} provides a service to configure kernel -parameters at boot. +Le module @code{(gnu services sysctl)} fournit un service pour configurer +les paramètres du noyau au démarrage. @defvr {Variable Scheme} sysctl-service-type -The service type for @command{sysctl}, which modifies kernel parameters -under @file{/proc/sys/}. To enable IPv4 forwarding, it can be instantiated -as: +Le type de service pour @command{sysctl}, qui modifie les paramètres du +noyau dans @file{/proc/sys/}. Pour activer le transfert d'IPv4, vous pouvez +l'instancier ainsi : @example (service sysctl-service-type @@ -22086,26 +22796,25 @@ as: @end defvr @deftp {Type de données} sysctl-configuration -The data type representing the configuration of @command{sysctl}. +Le type de données représentant la configuration de @command{sysctl}. @table @asis @item @code{sysctl} (par défaut : @code{(file-append procps "/sbin/sysctl"}) -The @command{sysctl} executable to use. +L'exécutable @command{sysctl} à utiliser. @item @code{settings} (par défaut : @code{'()}) -An association list specifies kernel parameters and their values. +Une liste d'association spécifiant les paramètres du noyau et leur valeur. @end table @end deftp @cindex pcscd -@subsubheading PC/SC Smart Card Daemon Service +@subsubheading Service du démon PC/SC Smart Card -The @code{(gnu services security-token)} module provides the following -service to run @command{pcscd}, the PC/SC Smart Card Daemon. -@command{pcscd} is the daemon program for pcsc-lite and the MuscleCard -framework. It is a resource manager that coordinates communications with -smart card readers, smart cards and cryptographic tokens that are connected -to the system. +Le module @code{(gnu services security-token)} fournit le service suivant +qui lance @command{pcscd}, le démon PC/SC Smart Card. @command{pcscd} est +le démon pour pcsc-lite et MuscleCard. C'est un gestionnaire de ressource +qui coordonne les communications avec les lecteurs de smart cards, les smart +cards et les jetons cryptographiques connectés au système. @defvr {Variable Scheme} pcscd-service-type Le type de service pour le service @command{pcscd}. Sa valeur doit être un @@ -22124,120 +22833,129 @@ Type de données représentant la configuration de @command{pcscd}. @item @code{pcsc-lite} (par défaut : @code{pcsc-lite}) Le paquet pcsc-lite qui fournit pcscd. @item @code{usb-drivers} (par défaut : @code{(list ccid)}) -List of packages that provide USB drivers to pcscd. Drivers are expected to -be under @file{pcsc/drivers} in the store directory of the package. +Liste des paquets qui fournissent des pilotes USB à pcscd. Les pilotes +doivent être dans @file{pcsc/drivers} dans le répertoire du dépôt du paquet. @end table @end deftp @cindex lirc -@subsubheading Lirc Service +@subsubheading Service Lirc -The @code{(gnu services lirc)} module provides the following service. +Le module @code{(gnu services lirc)} fournit le service suivant. @deffn {Procédure Scheme} lirc-service [#:lirc lirc] @ - [#:device #f] [#:driver #f] [#:config-file #f] @ [#:extra-options '()] -Return a service that runs @url{http://www.lirc.org,LIRC}, a daemon that -decodes infrared signals from remote controls. + [#:device #f] [#:driver #f] [#:config-file #f] @ +[#:extra-options '()] +Renvoie un service qui lance @url{http://www.lirc.org,LIRC}, un démon qui +décode les signaux infrarouges des télécommandes. -Optionally, @var{device}, @var{driver} and @var{config-file} (configuration -file name) may be specified. See @command{lircd} manual for details. +Éventuellement, @var{device}, @var{driver} et @var{config-file} (le nom du +fichier de configuration) peuvent être spécifiés. Voir le manuel de +@command{lircd} pour plus de détails. -Finally, @var{extra-options} is a list of additional command-line options -passed to @command{lircd}. +Enfin, @var{extra-options} est une liste d'options de la ligne de commande +supplémentaires à passer à @command{lircd}. @end deffn @cindex spice -@subsubheading Spice Service +@subsubheading Service Spice -The @code{(gnu services spice)} module provides the following service. +Le module @code{(gnu services spice)} fournit le service suivant. @deffn {Procédure Scheme} spice-vdagent-service [#:spice-vdagent] -Returns a service that runs @url{http://www.spice-space.org,VDAGENT}, a -daemon that enables sharing the clipboard with a vm and setting the guest -display resolution when the graphical console window resizes. +Renvoie un service qui lance @url{http://www.spice-space.org,VDAGENT}, un +démon qui permet le partage du presse-papier avec une vm et de configurer la +résolution d'affichage du client lorsque la fenêtre de la console graphique +est redimensionnée. @end deffn -@subsubsection Dictionary Services -@cindex dictionary -The @code{(gnu services dict)} module provides the following service: +@subsection Services de dictionnaires +@cindex dictionnaire +Le module @code{(gnu services dict)} fournit le service suivant : @deffn {Procédure Scheme} dicod-service [#:config (dicod-configuration)] -Return a service that runs the @command{dicod} daemon, an implementation of -DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}). +Renvoie un service qui lance le démon @command{dicod}, une implémentation du +serveur DICT (@pxref{Dicod,,, dico, GNU Dico Manual}). -The optional @var{config} argument specifies the configuration for -@command{dicod}, which should be a @code{} object, by -default it serves the GNU Collaborative International Dictonary of English. +L'argument @var{config} facultatif spécifie la configuration pour +@command{dicod}, qui devrait être un objet @code{}, par +défaut il sert le dictionnaire international collaboratif de GNU pour +l'anglais. -You can add @command{open localhost} to your @file{~/.dico} file to make -@code{localhost} the default server for @command{dico} client -(@pxref{Initialization File,,, dico, GNU Dico Manual}). +Vous pouvez ajouter @command{open localhost} à votre fichier @file{~/.dico} +pour faire de @code{localhost} le serveur par défaut du client +@command{dico} (@pxref{Initialization File,,, dico, GNU Dico Manual}). @end deffn @deftp {Type de données} dicod-configuration -Data type representing the configuration of dicod. +Type de données représentant la configuration de dicod. @table @asis @item @code{dico} (par défaut : @var{dico}) -Package object of the GNU Dico dictionary server. +Objet de paquet du serveur de dictionnaire GNU Dico. @item @code{interfaces} (par défaut : @var{'("localhost")}) -This is the list of IP addresses and ports and possibly socket file names to -listen to (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico -Manual}). +C'est la liste des adresses IP et des ports et éventuellement des noms de +fichiers de socket sur lesquels écouter (@pxref{Server Settings, +@code{listen} directive,, dico, GNU Dico Manual}). @item @code{handlers} (par défaut : @var{'()}) -List of @code{} objects denoting handlers (module instances). +Liste des objets @code{} qui définissent des gestionnaires +(des instances de modules). @item @code{databases} (par défaut : @var{(list %dicod-database:gcide)}) -List of @code{} objects denoting dictionaries to be served. +Liste d'objets @code{} qui définissent des dictionnaires à +servir. @end table @end deftp @deftp {Type de données} dicod-handler -Data type representing a dictionary handler (module instance). +Type de données représentant un gestionnaire de dictionnaire (instance de +module). @table @asis @item @code{name} -Name of the handler (module instance). +Nom du gestionnaire (instance de module). @item @code{module} (par défaut : @var{#f}) -Name of the dicod module of the handler (instance). If it is @code{#f}, the -module has the same name as the handler. (@pxref{Modules,,, dico, GNU Dico -Manual}). +Nom du module dicod du gestionnaire (instance). Si la valeur est @code{#f}, +le module a le même nom que le gestionnaire. (@pxref{Modules,,, dico, GNU +Dico Manual}). @item @code{options} -List of strings or gexps representing the arguments for the module handler +Liste de chaînes ou de gexps représentant les arguments pour le gestionnaire +de module. @end table @end deftp @deftp {Type de données} dicod-database -Data type representing a dictionary database. +Type de données représentant une base de données de dictionnaire. @table @asis @item @code{name} -Name of the database, will be used in DICT commands. +Nom de la base de données, qui sera utilisée dans les commande DICT. @item @code{handler} -Name of the dicod handler (module instance) used by this database -(@pxref{Handlers,,, dico, GNU Dico Manual}). +Nom du gestionnaire dicod (instance de module) utilisé par cette base de +données (@pxref{Handlers,,, dico, GNU Dico Manual}). @item @code{complex?} (par défaut : @var{#f}) -Whether the database configuration complex. The complex configuration will -need a corresponding @code{} object, otherwise not. +Indique si la configuration est pour une base de données complexe. La +configuration complexe a besoin d'un objet @code{} +correspondant, sinon inutile. @item @code{options} -List of strings or gexps representing the arguments for the database -(@pxref{Databases,,, dico, GNU Dico Manual}). +Liste de chaînes ou de gexps représentant les arguments pour la base de +données (@pxref{Databases,,, dico, GNU Dico Manual}). @end table @end deftp @defvr {Variable Scheme} %dicod-database:gcide -A @code{} object serving the GNU Collaborative International -Dictionary of English using the @code{gcide} package. +Un objet @code{} servant le dictionnaire international +collaboratif en anglais via le paquet @code{gcide}. @end defvr -The following is an example @code{dicod-service} configuration. +Voici un exemple de configuration de @code{dicod-service}. @example (dicod-service #:config @@ -22255,91 +22973,127 @@ The following is an example @code{dicod-service} configuration. %dicod-database:gcide)))) @end example +@cindex Docker +@subsubheading Docker Service + +The @code{(gnu services docker)} module provides the following service. + +@defvr {Scheme Variable} docker-service-type + +This is the type of the service that runs +@url{http://www.docker.com,Docker}, a daemon that can execute application +bundles (sometimes referred to as ``containers'') in isolated environments. + +@end defvr + +@deftp {Data Type} docker-configuration +This is the data type representing the configuration of Docker and +Containerd. + +@table @asis + +@item @code{package} (default: @code{docker}) +The Docker package to use. + +@item @code{containerd} (default: @var{containerd}) +The Containerd package to use. + +@end table +@end deftp + @node Programmes setuid -@subsection Programmes setuid +@section Programmes setuid -@cindex setuid programs -Some programs need to run with ``root'' privileges, even when they are -launched by unprivileged users. A notorious example is the @command{passwd} -program, which users can run to change their password, and which needs to -access the @file{/etc/passwd} and @file{/etc/shadow} files---something -normally restricted to root, for obvious security reasons. To address that, -these executables are @dfn{setuid-root}, meaning that they always run with -root privileges (@pxref{How Change Persona,,, libc, The GNU C Library -Reference Manual}, for more info about the setuid mechanism.) +@cindex programmes setuid +Certains programmes doivent être lancés avec les privilèges « root » même +lorsqu'ils sont lancés par un utilisateur non privilégié. Un exemple +notoire est le programme @command{passwd}, que les utilisateurs peuvent +appeler pour modifier leur mot de passe et qui doit accéder à +@file{/etc/passwd} et @file{/etc/shadow} — ce qui est normalement réservé à +root, pour des raisons de sécurité évidentes. Pour contourner cela, ces +exécutables sont @dfn{setuid-root}, ce qui signifie qu'ils seront toujours +lancés avec les privilèges root (@pxref{How Change Persona,,, libc, The GNU +C Library Reference Manual}, pour plus d'informations sur le mécanisme +setuid). -The store itself @emph{cannot} contain setuid programs: that would be a -security issue since any user on the system can write derivations that -populate the store (@pxref{Le dépôt}). Thus, a different mechanism is -used: instead of changing the setuid bit directly on files that are in the -store, we let the system administrator @emph{declare} which programs should -be setuid root. +Le dépôt lui-même ne @emph{peut pas} contenir de programmes setuid ; cela +serait un problème de sécurité puisque n'importe quel utilisateur du système +peut écrire une dérivation qui rempli le dépôt (@pxref{Le dépôt}). Donc, +un mécanisme différent est utilisé : au lieu de changer le bit setuid +directement sur les fichiers qui sont dans le dépôt, nous laissons à +l'administrateur système le soit de @emph{déclarer} les programmes qui +devraient être setuid root. -The @code{setuid-programs} field of an @code{operating-system} declaration -contains a list of G-expressions denoting the names of programs to be -setuid-root (@pxref{Utiliser le système de configuration}). For instance, the -@command{passwd} program, which is part of the Shadow package, can be -designated by this G-expression (@pxref{G-Expressions}): +Le champ @code{setuid-programs} d'une déclaration @code{operating-system} +contient une liste de G-expressions qui dénotent les noms des programmes à +rendre setuid-root (@pxref{Utiliser le système de configuration}). Par exemple, +le programme @command{passwd}, qui fait partie du paquet Shadow, peut être +désigné par cette G-expression (@pxref{G-Expressions}) : @example #~(string-append #$shadow "/bin/passwd") @end example -A default set of setuid programs is defined by the @code{%setuid-programs} -variable of the @code{(gnu system)} module. +Un ensemble de programmes par défaut est défini par la variable +@code{%setuid-programs} du module @code{(gnu system)}. @defvr {Variable Scheme} %setuid-programs -A list of G-expressions denoting common programs that are setuid-root. +Une liste de G-expressions qui dénotent les programmes communément +setuid-root. -The list includes commands such as @command{passwd}, @command{ping}, -@command{su}, and @command{sudo}. +La liste inclus des commandes comme @command{passwd}, @command{ping}, +@command{su} et @command{sudo}. @end defvr -Under the hood, the actual setuid programs are created in the -@file{/run/setuid-programs} directory at system activation time. The files -in this directory refer to the ``real'' binaries, which are in the store. +Sous le capot, les programmes setuid sont créés dans le répertoire +@file{/run/setuid-programs} au moment de l'activation du système. Les +fichiers dans ce répertoire se réfèrent aux « vrais » binaires, qui sont +dans le dépot. @node Certificats X.509 -@subsection Certificats X.509 +@section Certificats X.509 -@cindex HTTPS, certificates -@cindex X.509 certificates +@cindex HTTPS, certificats +@cindex certificats X.509 @cindex TLS -Web servers available over HTTPS (that is, HTTP over the transport-layer -security mechanism, TLS) send client programs an @dfn{X.509 certificate} -that the client can then use to @emph{authenticate} the server. To do that, -clients verify that the server's certificate is signed by a so-called -@dfn{certificate authority} (CA). But to verify the CA's signature, clients -must have first acquired the CA's certificate. +Les serveurs web disponibles par HTTPS (c'est-à-dire HTTP sur le mécanisme +de la couche de transport sécurisée, TLS) envoient aux clients un +@dfn{certificat X.509} que les clients peuvent utiliser pour +@emph{authentifier} le serveur. Pour cela, les clients vérifient que le +certificat du serveur est signé par une @dfn{autorité de certification} (AC +ou CA). Mais pour vérifier la signature de la CA, les clients doivent +d'abord avoir récupéré le certificat de la CA. -Web browsers such as GNU@tie{}IceCat include their own set of CA -certificates, such that they are able to verify CA signatures -out-of-the-box. +Les navigateurs web comme GNU@tie{}IceCat incluent leur propre liste de +certificats, pour qu'ils puissent vérifier les signatures des CA +directement. -However, most other programs that can talk HTTPS---@command{wget}, -@command{git}, @command{w3m}, etc.---need to be told where CA certificates -can be found. +Cependant, la plupart des autres programmes qui peuvent parler HTTPS — +@command{wget}, @command{git}, @command{w3m}, etc — doivent savoir où +trouver les certificats des CA. @cindex @code{nss-certs} -In GuixSD, this is done by adding a package that provides certificates to -the @code{packages} field of the @code{operating-system} declaration -(@pxref{Référence de système d'exploitation}). GuixSD includes one such package, +In Guix, this is done by adding a package that provides certificates to the +@code{packages} field of the @code{operating-system} declaration +(@pxref{Référence de système d'exploitation}). Guix includes one such package, @code{nss-certs}, which is a set of CA certificates provided as part of Mozilla's Network Security Services. -Note that it is @emph{not} part of @var{%base-packages}, so you need to -explicitly add it. The @file{/etc/ssl/certs} directory, which is where most -applications and libraries look for certificates by default, points to the -certificates installed globally. +Remarquez qu'il ne fait @emph{pas} partie de @var{%base-packages}, donc vous +devez explicitement l'ajouter. Le répertoire @file{/etc/ssl/certs}, là où +la plupart des applications et bibliothèques vont rechercher les certificats +par défaut, pointe vers les certificats installés globalement. -Unprivileged users, including users of Guix on a foreign distro, can also -install their own certificate package in their profile. A number of -environment variables need to be defined so that applications and libraries -know where to find them. Namely, the OpenSSL library honors the -@code{SSL_CERT_DIR} and @code{SSL_CERT_FILE} variables. Some applications -add their own environment variables; for instance, the Git version control -system honors the certificate bundle pointed to by the @code{GIT_SSL_CAINFO} -environment variable. Thus, you would typically run something like: +Les utilisateurs non privilégiés, dont les utilisateurs de Guix sur une +distro externe, peuvent aussi installer leur propre paquet de certificats +dans leur profil. Un certain nombre de variables d'environnement doivent +être définies pour que les applications et les bibliothèques puissent les +trouver. En particulier, la bibliothèque OpenSSL honore les variables +@code{SSL_CERT_DIR} et @code{SSL_CERT_FILE}. Certaines applications +ajoutent leurs propres variables, par exemple le système de contrôle de +version Git honore le lot de certificats pointé par la variable +d'environnement @code{GIT_SSL_CAINFO}. Ainsi, vous lanceriez quelque chose +comme ceci : @example $ guix package -i nss-certs @@ -22348,107 +23102,110 @@ $ export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt" $ export GIT_SSL_CAINFO="$SSL_CERT_FILE" @end example -As another example, R requires the @code{CURL_CA_BUNDLE} environment -variable to point to a certificate bundle, so you would have to run -something like this: +Un autre exemple serait R, qui requière que la variable d'environnement +@code{CURL_CA_BUNDLE} pointe sur le lot de certificats, donc vous lanceriez +quelque chose comme ceci : @example $ guix package -i nss-certs $ export CURL_CA_BUNDLE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt" @end example -For other applications you may want to look up the required environment -variable in the relevant documentation. +Pour d'autres applications vous pourriez avoir besoin de chercher la +variable d'environnement requise dans leur documentation. @node Name Service Switch -@subsection Name Service Switch +@section Name Service Switch @cindex name service switch @cindex NSS -The @code{(gnu system nss)} module provides bindings to the configuration -file of the libc @dfn{name service switch} or @dfn{NSS} (@pxref{NSS -Configuration File,,, libc, The GNU C Library Reference Manual}). In a -nutshell, the NSS is a mechanism that allows libc to be extended with new -``name'' lookup methods for system databases, which includes host names, -service names, user accounts, and more (@pxref{Name Service Switch, System +Le module @code{(gnu system nss)} fournit des liaisons pour le fichier de +configuration du @dfn{name service switch} ou @dfn{NSS} de la libc +(@pxref{NSS Configuration File,,, libc, The GNU C Library Reference +Manual}). En résumé, NSS est un mécanisme qui permet à la libc d'être +étendue avec de nouvelles méthodes de résolution de « noms » dans les bases +de données du système, comme les noms d'hôtes, les noms des services, les +comptes utilisateurs et bien plus (@pxref{Name Service Switch, System Databases and Name Service Switch,, libc, The GNU C Library Reference Manual}). -The NSS configuration specifies, for each system database, which lookup -method is to be used, and how the various methods are chained together---for -instance, under which circumstances NSS should try the next method in the -list. The NSS configuration is given in the @code{name-service-switch} -field of @code{operating-system} declarations (@pxref{Référence de système d'exploitation, @code{name-service-switch}}). +La configuration de NSS spécifie, pour chaque base de données du système, +quelle méthode de résolution utiliser, et comment les diverses méthodes sont +enchaînées — par exemple, sous certaines circonstances, NSS devrait essayer +la méthode suivante de la liste. La configuration de NSS est donnée dans le +champ @code{name-service-switch} de la déclaration @code{operating-system} +(@pxref{Référence de système d'exploitation, @code{name-service-switch}}). @cindex nss-mdns -@cindex .local, host name lookup -As an example, the declaration below configures the NSS to use the -@uref{http://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns} -back-end}, which supports host name lookups over multicast DNS (mDNS) for -host names ending in @code{.local}: +@cindex .local, résolution de nom d'hôte +Par exemple, la déclation ci-dessous configure NSS pour utiliser le +@uref{http://0pointer.de/lennart/projects/nss-mdns/, moteur +@code{nss-mdns}}, qui supporte la résolution de nom d'hôte sur le DNS +multicast (mDNS) pour les noms d'hôtes terminant par @code{.local} : @example (name-service-switch (hosts (list %files ;first, check /etc/hosts - ;; If the above did not succeed, try - ;; with 'mdns_minimal'. + ;; Si ce qui précède n'a pas fonctionné, essayer + ;; avec « mdns_minimal ». (name-service (name "mdns_minimal") - ;; 'mdns_minimal' is authoritative for - ;; '.local'. When it returns "not found", - ;; no need to try the next methods. + ;; « mdns_minimal » fait autorité pour + ;; « .local ». Lorsqu'il renvoie « pas trouvé », + ;; inutile d'essayer la méthode suivante. (reaction (lookup-specification (not-found => return)))) - ;; Then fall back to DNS. + ;; Puis revenir sur DNS. (name-service (name "dns")) - ;; Finally, try with the "full" 'mdns'. + ;; Enfin, essayer avec « mdns complet ». (name-service (name "mdns"))))) @end example -Do not worry: the @code{%mdns-host-lookup-nss} variable (see below) -contains this configuration, so you will not have to type it if all you want -is to have @code{.local} host lookup working. +Ne vous inquiétez pas : la variable @code{%mdns-host-lookup-nss} (voir plus +bas) contient cette configuration, donc vous n'avez pas besoin de tout taper +si vous voulez simplement que la résolution de nom en @code{.local} +fonctionne. Note that, in this case, in addition to setting the @code{name-service-switch} of the @code{operating-system} declaration, you -also need to use @code{avahi-service} (@pxref{Services réseau, -@code{avahi-service}}), or @var{%desktop-services}, which includes it +also need to use @code{avahi-service-type} (@pxref{Services réseau, +@code{avahi-service-type}}), or @var{%desktop-services}, which includes it (@pxref{Services de bureaux}). Doing this makes @code{nss-mdns} accessible to the name service cache daemon (@pxref{Services de base, @code{nscd-service}}). -For convenience, the following variables provide typical NSS configurations. +Pour votre confort, les variables suivantes contiennent des configurations +NSS typiques. @defvr {Variable Scheme} %default-nss -This is the default name service switch configuration, a -@code{name-service-switch} object. +C'est la configuration NSS par défaut, un objet @code{name-service-switch}. @end defvr @defvr {Variable Scheme} %mdns-host-lookup-nss -This is the name service switch configuration with support for host name -lookup over multicast DNS (mDNS) for host names ending in @code{.local}. +C'est la configuration NSS avec le support de la résolution de noms sur DNS +multicast (mDNS) pour les noms d'hôtes en @code{.local}. @end defvr -The reference for name service switch configuration is given below. It is a -direct mapping of the configuration file format of the C library , so please -refer to the C library manual for more information (@pxref{NSS Configuration -File,,, libc, The GNU C Library Reference Manual}). Compared to the -configuration file format of libc NSS, it has the advantage not only of -adding this warm parenthetic feel that we like, but also static checks: you -will know about syntax errors and typos as soon as you run @command{guix +La référence pour la configuration de NSS est donnée ci-dessous. C'est une +correspondance directe avec le format de fichier de la bibliothèque C, donc +référez-vous au manuel de la bibliothèque C pour plus d'informations +(@pxref{NSS Configuration File,,, libc, The GNU C Library Reference +Manual}). Comparé au format de fichier de configuration de NSS, cette +configuration a l'avantage non seulement d'ajouter ces bonnes vieilles +parenthèses, mais aussi des vérifications statiques ; vous saurez s'il y a +des erreurs de syntaxe et des coquilles dès que vous lancerez @command{guix system}. @deftp {Type de données} name-service-switch -This is the data type representation the configuration of libc's name -service switch (NSS). Each field below represents one of the supported -system databases. +C'est le type de données représentant la configuration de NSS. Chaque champ +ci-dessous représente l'un des système de bases de données supportés. @table @code @item aliases @@ -22464,30 +23221,30 @@ system databases. @itemx rpc @itemx services @itemx shadow -The system databases handled by the NSS. Each of these fields must be a -list of @code{} objects (see below). +Les bases de données du système gérées par NSS. Chaque champ doit être une +liste d'objets @code{} (voir plus bas). @end table @end deftp @deftp {Type de données} name-service -This is the data type representing an actual name service and the associated -lookup action. +C'est le type de données représentant un service de noms et l'action de +résolution associée. @table @code @item name -A string denoting the name service (@pxref{Services in the NSS +Une chaîne dénotant le service de nom (@pxref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual}). -Note that name services listed here must be visible to nscd. This is -achieved by passing the @code{#:name-services} argument to -@code{nscd-service} the list of packages providing the needed name services +Remarquez que les services de dnoms listés ici doivent être visibles à +nscd. Cela se fait en passant la liste des paquets fournissant les services +de noms à l'argument @code{#:name-services} de @code{nscd-service} (@pxref{Services de base, @code{nscd-service}}). @item reaction -An action specified using the @code{lookup-specification} macro +Une action spécifiée par la macro @code{lookup-specification} (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library -Reference Manual}). For example: +Reference Manual}). Par exemple : @example (lookup-specification (unavailable => continue) @@ -22497,23 +23254,24 @@ Reference Manual}). For example: @end deftp @node Disque de RAM initial -@subsection Disque de RAM initial +@section Disque de RAM initial @cindex initrd @cindex disque de RAM initial -For bootstrapping purposes, the Linux-Libre kernel is passed an @dfn{initial -RAM disk}, or @dfn{initrd}. An initrd contains a temporary root file system -as well as an initialization script. The latter is responsible for mounting -the real root file system, and for loading any kernel modules that may be -needed to achieve that. +Pour le démarrage, on passe au noyau Linux-Libre un @dfn{disque de RAM +initial} ou @dfn{initrd}. Un initrd contient un système de fichier racine +temporaire ainsi qu'un script d'initialisation. Ce dernier est responsable +du montage du vrai système de fichier racine et du chargement des modules du +noyau qui peuvent être nécessaires à cette tâche. -The @code{initrd-modules} field of an @code{operating-system} declaration -allows you to specify Linux-libre kernel modules that must be available in -the initrd. In particular, this is where you would list modules needed to -actually drive the hard disk where your root partition is---although the -default value of @code{initrd-modules} should cover most use cases. For -example, assuming you need the @code{megaraid_sas} module in addition to the -default modules to be able to access your root file system, you would write: +Le champ @code{initrd-modules} d'une déclaration @code{operating-system} +vous permet de spécifier les modules du noyau Linux-Libre qui doivent être +disponibles dans l'initrd. En particulier, c'est là où vous devez lister +les modules requis pour effectivement piloter le disque dur où se trouve la +partition racine — bien que la valeur par défaut de @code{initrd-modules} +couvre la plupart des cas. Par exemple, en supposant que vous ayez besoin +du module @code{megaraid_sas} en plus des modules par défaut pour accéder à +votre système de fichiers racine, vous écririez : @example (operating-system @@ -22522,372 +23280,388 @@ default modules to be able to access your root file system, you would write: @end example @defvr {Variable Scheme} %base-initrd-modules -This is the list of kernel modules included in the initrd by default. +C'est la liste des modules du noyau inclus dans l'initrd par défaut. @end defvr -Furthermore, if you need lower-level customization, the @code{initrd} field -of an @code{operating-system} declaration allows you to specify which initrd -you would like to use. The @code{(gnu system linux-initrd)} module provides -three ways to build an initrd: the high-level @code{base-initrd} procedure -and the low-level @code{raw-initrd} and @code{expression->initrd} -procedures. +En plus, si vous avez besoin de paramétrages plus bas niveau, le champ +@code{initrd} d'une déclaration @code{operating-system} vous permet de +spécifier quel initrd vous voudriez utiliser. Le module @code{(gnu system +linux-initrd)} fournit trois manières de construire un initrd : la procédure +@code{base-initrd} de haut niveau et les procédures @code{raw-initrd} et +@code{expression->initrd} de bas niveau. -The @code{base-initrd} procedure is intended to cover most common uses. For -example, if you want to add a bunch of kernel modules to be loaded at boot -time, you can define the @code{initrd} field of the operating system -declaration like this: +La procédure @code{base-initrd} est conçue pour couvrir la plupart des +usages courants. Par exemple, si vous voulez ajouter des modules du noyau à +charger au démarrage, vous pouvez définir le champ @code{initrd} de votre +déclaration de système d'exploitation ainsi : @example (initrd (lambda (file-systems . rest) - ;; Create a standard initrd but set up networking - ;; with the parameters QEMU expects by default. + ;; Crée un initrd standard mais paramètre le réseau + ;; avec les paramètres que QEMU attend par défaut. (apply base-initrd file-systems #:qemu-networking? #t rest))) @end example -The @code{base-initrd} procedure also handles common use cases that involves -using the system as a QEMU guest, or as a ``live'' system with volatile root -file system. +La procédure @code{base-initrd} gère aussi les cas d'utilisation courants +qui concernent l'utilisation du système comme client QEMU, ou comme un +système « live » avec un système de fichier racine volatile. -The @code{base-initrd} procedure is built from @code{raw-initrd} procedure. -Unlike @code{base-initrd}, @code{raw-initrd} doesn't do anything high-level, -such as trying to guess which kernel modules and packages should be included -to the initrd. An example use of @code{raw-initrd} is when a user has a -custom Linux kernel configuration and default kernel modules included by -@code{base-initrd} are not available. +La procédure @code{base-initrd} est construite à partir de la procédure +@code{raw-initrd}. Contrairement à @code{base-initrd}, @code{raw-initrd} ne +fait rien à haut-niveau, comme essayer de deviner les modules du noyau et +les paquets qui devraient être inclus dans l'initrd. Un exemple +d'utilisation de @code{raw-initrd} serait si un utilisateur a une +configuration personnalisée du noyau Linux et que les modules du noyau +inclus par défaut par @code{base-initrd} ne sont pas disponibles. -The initial RAM disk produced by @code{base-initrd} or @code{raw-initrd} -honors several options passed on the Linux kernel command line (that is, -arguments passed @i{via} the @code{linux} command of GRUB, or the -@code{-append} option of QEMU), notably: +Le disque de RAM initial produit par @code{base-initrd} ou @code{raw-initrd} +honore plusieurs options passées par la ligne de commande du noyau Linux +(c'est-à-dire les arguments passés via la commande @code{linux} de GRUB ou +l'option @code{-append} de QEMU), notamment : @table @code @item --load=@var{boot} -Tell the initial RAM disk to load @var{boot}, a file containing a Scheme -program, once it has mounted the root file system. +Dit au disque de RAM initial de charger @var{boot}, un fichier contenant un +programme Scheme, une fois qu'il a monté le système de fichier racine. -GuixSD uses this option to yield control to a boot program that runs the +Guix uses this option to yield control to a boot program that runs the service activation programs and then spawns the GNU@tie{}Shepherd, the initialization system. @item --root=@var{root} -Mount @var{root} as the root file system. @var{root} can be a device name -like @code{/dev/sda1}, a file system label, or a file system UUID. +Monte @var{root} comme système de fichier racine. @var{root} peut être un +nom de périphérique comme @code{/dev/sda1}, une étiquette de système de +fichiers ou un UUID de système de fichiers. @item --system=@var{système} -Have @file{/run/booted-system} and @file{/run/current-system} point to -@var{system}. +S'assure que @file{/run/booted-system} et @file{/run/current-system} +pointent vers @var{system}. @item modprobe.blacklist=@var{modules}@dots{} -@cindex module, black-listing -@cindex black list, of kernel modules -Instruct the initial RAM disk as well as the @command{modprobe} command -(from the kmod package) to refuse to load @var{modules}. @var{modules} must -be a comma-separated list of module names---e.g., @code{usbkbd,9pnet}. +@cindex module, black-list +@cindex black-list, des modules du noyau +Dit au disque de RAM initial ainsi qu'à la commande @command{modprobe} (du +paquet kmod) de refuser de charger @var{modules}. @var{modules} doit être +une liste de noms de modules séparés par des virgules — p.@: ex.@: +@code{usbkbd,9pnet}. @item --repl -Start a read-eval-print loop (REPL) from the initial RAM disk before it -tries to load kernel modules and to mount the root file system. Our -marketing team calls it @dfn{boot-to-Guile}. The Schemer in you will love -it. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, -for more information on Guile's REPL. +Démarre une boucle lecture-évaluation-affichage (REPL) depuis le disque de +RAM initial avant qu'il n'essaye de charger les modules du noyau et de +monter le système de fichiers racine. Notre équipe commerciale appelle cela +@dfn{boot-to-Guile}. Le Schemeur en vous va adorer. @xref{Using Guile +Interactively,,, guile, GNU Guile Reference Manual}, pour plus d'information +sur le REPL de Guile. @end table -Now that you know all the features that initial RAM disks produced by -@code{base-initrd} and @code{raw-initrd} provide, here is how to use it and -customize it further. +Maintenant que vous connaissez toutes les fonctionnalités des disques de RAM +initiaux produits par @code{base-initrd} et @code{raw-initrd}, voici comment +l'utiliser le personnalisé plus avant. @cindex initrd @cindex disque de RAM initial @deffn {Procédure Scheme} raw-initrd @var{file-systems} @ - [#:linux-modules '()] [#:mapped-devices '()] @ [#:helper-packages '()] -[#:qemu-networking? #f] [#:volatile-root? #f] Return a derivation that -builds a raw initrd. @var{file-systems} is a list of file systems to be -mounted by the initrd, possibly in addition to the root file system -specified on the kernel command line via @code{--root}. @var{linux-modules} -is a list of kernel modules to be loaded at boot time. @var{mapped-devices} -is a list of device mappings to realize before @var{file-systems} are -mounted (@pxref{Périphériques mappés}). @var{helper-packages} is a list of -packages to be copied in the initrd. It may include @code{e2fsck/static} or -other packages needed by the initrd to check the root file system. + [#:linux-modules '()] [#:mapped-devices '()] @ +[#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] +Renvoie une dérivation qui construit un initrd. @var{file-systems} est une +liste de systèmes de fichiers à monter par l'initrd, éventuellement en plus +du système de fichier racine spécifié sur la ligne de commande du noyau via +@code{--root}. @var{linux-modules} est une liste de modules du noyau à +charger au démarrage. @var{mapped-devices} est une liste de correspondances +de périphériques à réaliser avant que les @var{file-systems} ne soient +montés (@pxref{Périphériques mappés}). @var{helper-packages} est une liste de +paquets à copier dans l'initrd. Elle peut inclure @code{e2fsck/static} ou +d'autres paquets requis par l'initrd pour vérifier le système de fichiers +racine. -When @var{qemu-networking?} is true, set up networking with the standard -QEMU parameters. When @var{virtio?} is true, load additional modules so -that the initrd can be used as a QEMU guest with para-virtualized I/O -drivers. +Lorsque @var{qemu-networking?} est vrai, paramètre le réseau avec les +paramètres QEMU standards. Lorsque @var{virtio?} est vrai, charge des +modules supplémentaires pour que l'initrd puisse être utilisé comme client +QEMU avec les pilotes I/O para-virtualisés. -When @var{volatile-root?} is true, the root file system is writable but any -changes to it are lost. +Lorsque @var{volatile-root?} est vrai, le système de fichier racine est +inscriptible mais tous les changements seront perdus. @end deffn @deffn {Procédure Scheme} base-initrd @var{file-systems} @ - [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f]@ -[#:linux-modules '()] Return as a file-like object a generic initrd, with -kernel modules taken from @var{linux}. @var{file-systems} is a list of -file-systems to be mounted by the initrd, possibly in addition to the root -file system specified on the kernel command line via @code{--root}. -@var{mapped-devices} is a list of device mappings to realize before -@var{file-systems} are mounted. + [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f] @ +[#:linux-modules '()] +Renvoie un objet simili-fichier contenant un initrd générique, avec les +modules du noyau de @var{linux}. @var{file-systems} est une liste de +systèmes de fichiers à monter par l'initrd, éventuellement en plus du +système de fichiers racine spécifié sur la ligne de commande du noyau via +@code{--root}. @var{mapped-devices} est une liste de correspondances de +périphériques à réaliser avant de monter les @var{file-systems}. -@var{qemu-networking?} and @var{volatile-root?} behaves as in +@var{qemu-networking?} et @var{volatile-root?} se comportent comme pour @code{raw-initrd}. -The initrd is automatically populated with all the kernel modules necessary -for @var{file-systems} and for the given options. Additional kernel modules -can be listed in @var{linux-modules}. They will be added to the initrd, and -loaded at boot time in the order in which they appear. +L'initrd est automatiquement remplie avec tous les modules du noyau requis +pour @var{file-systems} et pour les options données. On peut lister des +modules supplémentaires dans @var{linux-modules}. Ils seront ajoutés à +l'initrd et chargés au démarrage dans l'ordre dans lequel ils apparaissent. @end deffn -Needless to say, the initrds we produce and use embed a statically-linked -Guile, and the initialization program is a Guile program. That gives a lot -of flexibility. The @code{expression->initrd} procedure builds such an -initrd, given the program to run in that initrd. +Inutile de le dire, les initrds que nous produisons et utilisons incluent +une version de Guile liée statiquement, et le programme d'initialisation est +un programme Guile. Cela donne beaucoup de flexibilité. La procédure +@code{expression->initrd} construit un tel initrd, étant donné le programme +à lancer dans cet initrd. @deffn {Procédure Scheme} expression->initrd @var{exp} @ - [#:guile %guile-static-stripped] [#:name "guile-initrd"] Return as a -file-like object a Linux initrd (a gzipped cpio archive) containing -@var{guile} and that evaluates @var{exp}, a G-expression, upon booting. All -the derivations referenced by @var{exp} are automatically copied to the -initrd. + [#:guile %guile-static-stripped] [#:name "guile-initrd"] +Renvoie un objet simili-fichier contenant un initrd Linux (une archive cpio +compressée avec gzip) contenant @var{guile} et qui évalue @var{exp}, une +G-expression, au démarrage. Toutes les dérivations référencées par +@var{exp} sont automatiquement copiées dans l'initrd. @end deffn @node Configuration du chargeur d'amorçage -@subsection Configuration du chargeur d'amorçage +@section Configuration du chargeur d'amorçage @cindex bootloader -@cindex boot loader +@cindex chargeur d'amorçage -The operating system supports multiple bootloaders. The bootloader is -configured using @code{bootloader-configuration} declaration. All the -fields of this structure are bootloader agnostic except for one field, -@code{bootloader} that indicates the bootloader to be configured and -installed. +Le système d'exploitation supporte plusieurs chargeurs d'amorçage. La +configuration du chargeur d'amorçage se fait avec la déclaration +@code{bootloader-configuration}. Tous les champs de cette structure sont +indépendants du chargeur d'amorçage sauf un, @code{bootloader} qui indique +le chargeur d'amorçage à configurer et à installer. -Some of the bootloaders do not honor every field of -@code{bootloader-configuration}. For instance, the extlinux bootloader does -not support themes and thus ignores the @code{theme} field. +Certains chargeurs d'amorçage ne respectent pas tous les champs de +@code{bootloader-configuration}. Par exemple, le chargeur d'amorçage +extlinux ne supporte pas les thèmes et ignore donc le champ @code{theme}. @deftp {Type de données} bootloader-configuration -The type of a bootloader configuration declaration. +Le type d'une déclaration de configuration de chargeur d'amorçage. @table @asis @item @code{bootloader} -@cindex EFI, bootloader -@cindex UEFI, bootloader -@cindex BIOS, bootloader -The bootloader to use, as a @code{bootloader} object. For now -@code{grub-bootloader}, @code{grub-efi-bootloader}, -@code{extlinux-bootloader} and @code{u-boot-bootloader} are supported. +@cindex EFI, chargeur d'amorçage +@cindex UEFI, chargeur d'amorçage +@cindex BIOS, chargeur d'amorçage +Le chargeur d'amorçage à utiliser, comme objet @code{bootloader}. Pour +l'instant @code{grub-bootloader}, @code{grub-efi-bootloader}, +@code{extlinux-bootloader} et @code{u-boot-bootloader} sont supportés. @vindex grub-efi-bootloader -@code{grub-efi-bootloader} allows to boot on modern systems using the -@dfn{Unified Extensible Firmware Interface} (UEFI). This is what you should -use if the installation image contains a @file{/sys/firmware/efi} directory -when you boot it on your system. +@code{grub-efi-bootloader} permet de démarrer sur un système moderne qui +utilise l'UEFI (@dfn{Unified Extensible Firmware Interface}). C'est ce que +vous devriez utiliser si l'image d'installation contient un répertoire +@file{/sys/firmware/efi} lorsque vous démarrez dessus sur votre machine. @vindex grub-bootloader -@code{grub-bootloader} allows you to boot in particular Intel-based machines -in ``legacy'' BIOS mode. +@code{grub-bootloader} vous permet de démarrer en particulier sur des +machines Intel en mode BIOS « legacy ». @cindex ARM, chargeurs d'amorçage @cindex AArch64, chargeurs d'amorçage -Available bootloaders are described in @code{(gnu bootloader @dots{})} -modules. In particular, @code{(gnu bootloader u-boot)} contains definitions -of bootloaders for a wide range of ARM and AArch64 systems, using the -@uref{http://www.denx.de/wiki/U-Boot/, U-Boot bootloader}. +Les chargeurs d'amorçage disponibles sont décrits dans les modules +@code{(gnu bootloader @dots{})}. En particulier, @code{(gnu bootloader +u-boot)} contient des définitions de chargeurs d'amorçage pour une large +gamme de systèmes ARM et AArch, à l'aide du +@uref{http://www.denx.de/wiki/U-Boot/, chargeur d'amorçage U-Boot} @item @code{target} -This is a string denoting the target onto which to install the bootloader. +C'est une chaîne qui dénote la cible sur laquelle installer le chargeur +d'amorçage. -The interpretation depends on the bootloader in question. For -@code{grub-bootloader}, for example, it should be a device name understood -by the bootloader @command{installer} command, such as @code{/dev/sda} or -@code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}). For -@code{grub-efi-bootloader}, it should be the mount point of the EFI file -system, usually @file{/boot/efi}. +L'interprétation dépend du chargeur d'amorçage en question. Pour +@code{grub-bootloader} par exemple, cela devrait être un nom de périphérique +compris par la commande @command{installer} du chargeur d'amorçage, comme +@code{/dev/sda} ou @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU +GRUB Manual}). Pour @code{grub-efi-bootloader}, cela devrait être le point +de montage du système de fichiers EFI, typiquement @file{/boot/efi}. @item @code{menu-entries} (par défaut : @code{()}) -A possibly empty list of @code{menu-entry} objects (see below), denoting -entries to appear in the bootloader menu, in addition to the current system -entry and the entry pointing to previous system generations. +Une liste éventuellement vide d'objets @code{menu-entry} (voir plus bas), +dénotant les entrées qui doivent apparaître dans le menu du chargeur +d'amorçage, en plus de l'entrée pour le système actuel et l'entrée pointant +vers les générations précédentes. @item @code{default-entry} (par défaut : @code{0}) -The index of the default boot menu entry. Index 0 is for the entry of the -current system. +L'index de l'entrée du menu de démarrage par défaut. L'index 0 correspond +au système actuel. @item @code{timeout} (par défaut : @code{5}) -The number of seconds to wait for keyboard input before booting. Set to 0 -to boot immediately, and to -1 to wait indefinitely. +Le nombre de secondes à attendre une entrée clavier avant de démarrer. +Indiquez 0 pour démarre immédiatement, et -1 pour attendre indéfiniment. @item @code{theme} (par défaut : @var{#f}) -The bootloader theme object describing the theme to use. If no theme is -provided, some bootloaders might use a default theme, that's true for GRUB. +L'objet de thème du chargeur d'amorçage décrivant le thème utilisé. Si +aucun thème n'est fournit, certains chargeurs d'amorçage peuvent utiliser un +thème par défaut, c'est le cas de GRUB. @item @code{terminal-outputs} (par défaut : @code{'gfxterm}) -The output terminals used for the bootloader boot menu, as a list of -symbols. GRUB accepts the values: @code{console}, @code{serial}, -@code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, -@code{morse}, and @code{pkmodem}. This field corresponds to the GRUB -variable @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple configuration,,, -grub,GNU GRUB manual}). +Les terminaux de sortie utilisés par le menu de démarrage du chargeur +d'amorçage, en tant que liste de symboles. GRUB accepte les valeurs +@code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{gfxterm}, +@code{vga_text}, @code{mda_text}, @code{morse} et @code{pkmodem}. Ce champ +correspond à la variable GRUB @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple +configuration,,, grub,GNU GRUB manual}). @item @code{terminal-inputs} (par défaut : @code{'()}) -The input terminals used for the bootloader boot menu, as a list of -symbols. For GRUB, the default is the native platform terminal as -determined at run-time. GRUB accepts the values: @code{console}, -@code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard}, and -@code{usb_keyboard}. This field corresponds to the GRUB variable -@code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, grub,GNU GRUB -manual}). +Les terminaux d'entrée utilisés par le menu de démarrage du chargeur +d'amorçage, en tant que liste de symboles. Pour GRUB, la valeur par défaut +est le terminal natif de la plate-forme déterminé à l'exécution. GRUB +accepte les valeurs @code{console}, @code{serial}, @code{serial_@{0-3@}}, +@code{at_keyboard} et @code{usb_keyboard}. Ce champ correspond à la +variable GRUB @code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, +grub,GNU GRUB manual}). @item @code{serial-unit} (par défaut : @code{#f}) -The serial unit used by the bootloader, as an integer from 0 to 3. For -GRUB, it is chosen at run-time; currently GRUB chooses 0, which corresponds -to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual}). +L'unitié série utilisée par le chargeur d'amorçage, en tant qu'entier entre +0 et 3. Pour GRUB, il est choisi à l'exécution ; actuellement GRUB choisi +0, ce qui correspond à COM1 (@pxref{Serial terminal,,, grub,GNU GRUB +manual}). @item @code{serial-speed} (par défaut : @code{#f}) -The speed of the serial interface, as an integer. For GRUB, the default -value is chosen at run-time; currently GRUB chooses 9600@tie{}bps -(@pxref{Serial terminal,,, grub,GNU GRUB manual}). +La vitesse de l'interface série, en tant qu'entier. Pour GRUB, la valeur +par défaut est choisie à l'exécution ; actuellement GRUB choisi +9600@tie{}bps (@pxref{Serial terminal,,, grub,GNU GRUB manual}). @end table @end deftp @cindex dual boot -@cindex boot menu -Should you want to list additional boot menu entries @i{via} the -@code{menu-entries} field above, you will need to create them with the -@code{menu-entry} form. For example, imagine you want to be able to boot -another distro (hard to imagine!), you can define a menu entry along these -lines: +@cindex menu de démarrage +Si vous voulez lister des entrées du menu de démarrage supplémentaires via +le champ @code{menu-entries} ci-dessus, vous devrez les créer avec la forme +@code{menu-entry}. Par exemple, imaginons que vous souhaitiez pouvoir +démarrer sur une autre distro (c'est difficile à concevoir !), vous pourriez +alors définir une entrée du menu comme ceci : @example (menu-entry - (label "The Other Distro") + (label "L'autre distro") (linux "/boot/old/vmlinux-2.6.32") (linux-arguments '("root=/dev/sda2")) (initrd "/boot/old/initrd")) @end example -Details below. +Les détails suivent. @deftp {Type de données} menu-entry -The type of an entry in the bootloader menu. +Le type d'une entrée dans le menu du chargeur d'amorçage. @table @asis @item @code{label} -The label to show in the menu---e.g., @code{"GNU"}. +L'étiquette à montrer dans le menu — p.@: ex.@: @code{"GNU"}. @item @code{linux} -The Linux kernel image to boot, for example: +L'image du noyau Linux à démarrer, par exemple : @example (file-append linux-libre "/bzImage") @end example -For GRUB, it is also possible to specify a device explicitly in the file -path using GRUB's device naming convention (@pxref{Naming convention,,, -grub, GNU GRUB manual}), for example: +Pour GRUB, il est aussi possible de spécifier un périphérique explicitement +dans le chemin de fichier avec la convention de nommage de GRUB +(@pxref{Naming convention,,, grub, GNU GRUB manual}), par exemple : @example "(hd0,msdos1)/boot/vmlinuz" @end example -If the device is specified explicitly as above, then the @code{device} field -is ignored entirely. +Si le périphérique est spécifié explicitement comme au-dessus, le champ +@code{device} est complètement ignoré. @item @code{linux-arguments} (par défaut : @code{()}) -The list of extra Linux kernel command-line arguments---e.g., -@code{("console=ttyS0")}. +La liste des arguments de la ligne de commande du noyau supplémentaires — +p.@: ex.@: @code{("console=ttyS0")}. @item @code{initrd} -A G-Expression or string denoting the file name of the initial RAM disk to -use (@pxref{G-Expressions}). +Une G-expression ou une chaîne dénotant le nom de fichier du disque de RAM +initial à utiliser (@pxref{G-Expressions}). @item @code{device} (par défaut : @code{#f}) -The device where the kernel and initrd are to be found---i.e., for GRUB, -@dfn{root} for this menu entry (@pxref{root,,, grub, GNU GRUB manual}). +Le périphérique où le noyau et l'initrd se trouvent — c.-à-d.@: pour GRUB, +l'option @dfn{root} de cette entrée de menu (@pxref{root,,, grub, GNU GRUB +manual}). -This may be a file system label (a string), a file system UUID (a -bytevector, @pxref{Systèmes de fichiers}), or @code{#f}, in which case the -bootloader will search the device containing the file specified by the -@code{linux} field (@pxref{search,,, grub, GNU GRUB manual}). It must -@emph{not} be an OS device name such as @file{/dev/sda1}. +Cela peut être une étiquette de système de fichiers (une chaîne), un UUID de +système de fichiers (un vecteur d'octets, @pxref{Systèmes de fichiers}) ou +@code{#f}, auquel cas le chargeur d'amorçage recherchera le périphérique +contenant le fichier spécifié par le champ @code{linux} (@pxref{search,,, +grub, GNU GRUB manual}). Cela ne doit @emph{pas} être un nom de +périphérique donné par l'OS comme @file{/dev/sda1}. @end table @end deftp @c FIXME: Write documentation once it's stable. -Fow now only GRUB has theme support. GRUB themes are created using the -@code{grub-theme} form, which is not documented yet. +Pour l'instant seul GRUB supporte les thèmes. On crée un thème GRUB avec la +forme @code{grub-theme}, qui n'est pas encore documentée. @defvr {Variable Scheme} %default-theme -This is the default GRUB theme used by the operating system if no -@code{theme} field is specified in @code{bootloader-configuration} record. +C'est le thème par défaut de GRUB utilisé par le système d'exploitation si +aucun champ @code{theme} n'est spécifié dans l'enregistrement +@code{bootloader-configuration}. -It comes with a fancy background image displaying the GNU and Guix logos. +Il contient une image de fond sympathique avec les logos de GNU et de Guix. @end defvr @node Invoquer guix system -@subsection Invoquer @code{guix system} +@section Invoquer @code{guix system} -Once you have written an operating system declaration as seen in the -previous section, it can be @dfn{instantiated} using the @command{guix -system} command. The synopsis is: +Une fois que vous avez écrit une déclaration de système d'exploitation comme +nous l'avons vu dans les sections précédentes, elle peut être instanciée +avec la commande @command{guix system}. Voici le résumé de la commande : @example guix system @var{options}@dots{} @var{action} @var{file} @end example -@var{file} must be the name of a file containing an @code{operating-system} -declaration. @var{action} specifies how the operating system is -instantiated. Currently the following values are supported: +@var{file} doit être le nom d'un fichier contenant une déclaration +@code{operating-system}. @var{action} spécifie comme le système +d'exploitation est instancié. Actuellement les valeurs suivantes sont +supportées : @table @code @item search -Display available service type definitions that match the given regular -expressions, sorted by relevance: +Affiche les définitions des types de services disponibles qui correspondent +aux expressions régulières données, triées par pertinence. @example $ guix system search console font name: console-fonts -location: gnu/services/base.scm:729:2 +location: gnu/services/base.scm:773:2 extends: shepherd-root -description: Install the given fonts on the specified ttys (fonts are -+ per virtual console on GNU/Linux). The value of this service is a list -+ of tty/font pairs like: +description: Installe des polices données sur les ttys spécifiés (les polices sont par console virtuelle sous GNU/Linux). la valeur de ces service est une liste de paires ++ de tty/police comme ceci : + + '(("tty1" . "LatGrkCyr-8x16")) -relevance: 20 +relevance: 16 name: mingetty -location: gnu/services/base.scm:1048:2 +location: gnu/services/base.scm:1144:2 extends: shepherd-root -description: Provide console login using the `mingetty' program. -relevance: 2 +description: Fournit la connexion en console avec le programme `mingetty'. +relevance: 4 name: login -location: gnu/services/base.scm:775:2 +location: gnu/services/base.scm:819:2 extends: pam -description: Provide a console log-in service as specified by its -+ configuration value, a `login-configuration' object. -relevance: 2 +description: Fournit un service de connexion en console tel que spécifié par sa valeur de configuration, un objet `login-configuration'. +relevance: 4 @dots{} @end example -As for @command{guix package --search}, the result is written in -@code{recutils} format, which makes it easy to filter the output -(@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual}). +Comme pour @command{guix package --search}, le résultat est écrit au format +@code{recutils}, ce qui rend facile le filtrage de la sortie (@pxref{Top, +GNU recutils databases,, recutils, GNU recutils manual}). @item reconfigure Build the operating system described in @var{file}, activate it, and switch to it@footnote{This action (and the related actions @code{switch-generation} -and @code{roll-back}) are usable only on systems already running GuixSD.}. +and @code{roll-back}) are usable only on systems already running Guix +System.}. This effects all the configuration specified in @var{file}: user accounts, system services, global package list, setuid programs, etc. The command @@ -22896,168 +23670,217 @@ running; if a service is currently running this command will arrange for it to be upgraded the next time it is stopped (e.g.@: by @code{herd stop X} or @code{herd restart X}). -This command creates a new generation whose number is one greater than the -current generation (as reported by @command{guix system list-generations}). -If that generation already exists, it will be overwritten. This behavior -mirrors that of @command{guix package} (@pxref{Invoquer guix package}). +Cette commande crée une nouvelle génération dont le numéro est un de plus +que la génération actuelle (rapportée par @command{guix system +list-generations}). Si cette génération existe déjà, elle sera réécrite. +Ce comportement correspond à celui de @command{guix package} +(@pxref{Invoquer guix package}). -It also adds a bootloader menu entry for the new OS configuration, ---unless -@option{--no-bootloader} is passed. For GRUB, it moves entries for older -configurations to a submenu, allowing you to choose an older system -generation at boot time should you need it. +Elle ajoute aussi une entrée de menu du chargeur d'amorçage pour la nouvelle +configuration, à moins que @option{--no-bootloader} ne soit passé. Pour +GRUB, elle déplace les entrées pour les anciennes configurations dans un +sous-menu, ce qui vous permet de choisir une ancienne génération au +démarrage si vous en avez besoin. @quotation Remarque @c The paragraph below refers to the problem discussed at @c . -It is highly recommended to run @command{guix pull} once before you run -@command{guix system reconfigure} for the first time (@pxref{Invoquer guix pull}). Failing to do that you would see an older version of Guix once -@command{reconfigure} has completed. +Il est grandement recommandé de lancer @command{guix pull} une fois avant de +lancer @command{guix system reconfigure} pour la première fois +(@pxref{Invoquer guix pull}). Sans cela, vous verriez une version plus +ancienne de Guix une fois @command{reconfigure} terminé. @end quotation @item switch-generation @cindex générations -Switch to an existing system generation. This action atomically switches -the system profile to the specified system generation. It also rearranges -the system's existing bootloader menu entries. It makes the menu entry for -the specified system generation the default, and it moves the entries for -the other generatiors to a submenu, if supported by the bootloader being -used. The next time the system boots, it will use the specified system -generation. +Passe à une génération existante du système. Cette action change +automatiquement le profil système vers la génération spécifiée. Elle +réarrange aussi les entrées existantes du menu du chargeur d'amorçage du +système. Elle fait de l'entrée du menu pour la génération spécifiée +l'entrée par défaut et déplace les entrées pour les autres générations dans +un sous-menu, si cela est supporté par le chargeur d'amorçage utilisé. Lors +du prochain démarrage du système, la génération du système spécifiée sera +utilisée. -The bootloader itself is not being reinstalled when using this command. -Thus, the installed bootloader is used with an updated configuration file. +Le chargeur d'amorçage lui-même n'est pas réinstallé avec cette commande. +Ainsi, le chargeur d'amorçage est utilisé avec un fichier de configuration +plus à jour. -The target generation can be specified explicitly by its generation number. -For example, the following invocation would switch to system generation 7: +La génération cible peut être spécifiée explicitement par son numéro de +génération. Par exemple, l'invocation suivante passerait à la génération 7 +du système : @example guix system switch-generation 7 @end example -The target generation can also be specified relative to the current -generation with the form @code{+N} or @code{-N}, where @code{+3} means ``3 -generations ahead of the current generation,'' and @code{-1} means ``1 -generation prior to the current generation.'' When specifying a negative -value such as @code{-1}, you must precede it with @code{--} to prevent it -from being parsed as an option. For example: +La génération cible peut aussi être spécifiée relativement à la génération +actuelle avec la forme @code{+N} ou @code{-N}, où @code{+3} signifie « trois +générations après la génération actuelle » et @code{-1} signifie « une +génération précédent la génération actuelle ». Lorsque vous spécifiez un +nombre négatif comme @code{-1}, il doit être précédé de @code{--} pour +éviter qu'il ne soit compris comme une option. Par exemple : @example guix system switch-generation -- -1 @end example -Currently, the effect of invoking this action is @emph{only} to switch the -system profile to an existing generation and rearrange the bootloader menu -entries. To actually start using the target system generation, you must -reboot after running this action. In the future, it will be updated to do -the same things as @command{reconfigure}, like activating and deactivating -services. +Actuellement, l'effet de l'invocation de cette action est @emph{uniquement} +de passer au profil du système vers une autre génération existante et de +réarranger le menu du chargeur d'amorçage. Pour vraiment commencer à +utiliser la génération spécifiée, vous devez redémarrer après avoir lancé +cette action. Dans le futur, elle sera corrigée pour faire la même chose +que @command{reconfigure}, comme réactiver et désactiver les services. -This action will fail if the specified generation does not exist. +Cette action échouera si la génération spécifiée n'existe pas. @item roll-back @cindex revenir en arrière -Switch to the preceding system generation. The next time the system boots, -it will use the preceding system generation. This is the inverse of -@command{reconfigure}, and it is exactly the same as invoking -@command{switch-generation} with an argument of @code{-1}. +Passe à la génération précédente du système. Au prochain démarrage, la +génération précédente sera utilisée. C'est le contraire de +@command{reconfigure}, et c'est exactement comme invoquer +@command{switch-generation} avec pour argument @code{-1}. -Currently, as with @command{switch-generation}, you must reboot after -running this action to actually start using the preceding system generation. +Actuellement, comme pour @command{switch-generation}, vous devez redémarrer +après avoir lancé cette action pour vraiment démarrer sur la génération +précédente du système. + +@item delete-generations +@cindex deleting system generations +@cindex saving space +Delete system generations, making them candidates for garbage collection +(@pxref{Invoquer guix gc}, for information on how to run the ``garbage +collector''). + +This works in the same way as @command{guix package --delete-generations} +(@pxref{Invoquer guix package, @code{--delete-generations}}). With no +arguments, all system generations but the current one are deleted: + +@example +guix system delete-generations +@end example + +You can also select the generations you want to delete. The example below +deletes all the system generations that are more than two month old: + +@example +guix system delete-generations 2m +@end example + +Running this command automatically reinstalls the bootloader with an updated +list of menu entries---e.g., the ``old generations'' sub-menu in GRUB no +longer lists the generations that have been deleted. @item build -Build the derivation of the operating system, which includes all the -configuration files and programs needed to boot and run the system. This -action does not actually install anything. +Construit la dérivation du système d'exploitation, ce qui comprend tous les +fichiers de configuration et les programmes requis pour démarrer et lancer +le système. Cette action n'installe rien. @item init Populate the given directory with all the files necessary to run the operating system specified in @var{file}. This is useful for first-time -installations of GuixSD. For instance: +installations of Guix System. For instance: @example guix system init my-os-config.scm /mnt @end example -copies to @file{/mnt} all the store items required by the configuration -specified in @file{my-os-config.scm}. This includes configuration files, -packages, and so on. It also creates other essential files needed for the -system to operate correctly---e.g., the @file{/etc}, @file{/var}, and -@file{/run} directories, and the @file{/bin/sh} file. +copie tous les éléments du dépôt requis par la configuration spécifiée dans +@file{my-os-config.scm} dans @file{/mnt}. Cela comprend les fichiers de +configuration, les paquets, etc. Elle crée aussi d'autres fichiers +essentiels requis pour que le système fonctionne correctement — p.@: ex.@: +les répertoires @file{/etc}, @file{/var} et @file{/run} et le fichier +@file{/bin/sh}. -This command also installs bootloader on the target specified in -@file{my-os-config}, unless the @option{--no-bootloader} option was passed. +Cette commande installe aussi le chargeur d'amorçage sur la cible spécifiée +dans @file{my-os-config}, à moins que l'option @option{--no-bootloader} ne +soit passée. @item vm -@cindex virtual machine +@cindex machine virtuelle @cindex VM @anchor{guix system vm} Build a virtual machine that contains the operating system declared in -@var{file}, and return a script to run that virtual machine (VM). Arguments -given to the script are passed to QEMU as in the example below, which -enables networking and requests 1@tie{}GiB of RAM for the emulated machine: +@var{file}, and return a script to run that virtual machine (VM). + +@quotation Remarque +The @code{vm} action and others below can use KVM support in the Linux-libre +kernel. Specifically, if the machine has hardware virtualization support, +the corresponding KVM kernel module should be loaded, and the +@file{/dev/kvm} device node must exist and be readable and writable by the +user and by the build users of the daemon (@pxref{Réglages de l'environnement de construction}). +@end quotation + +Arguments given to the script are passed to QEMU as in the example below, +which enables networking and requests 1@tie{}GiB of RAM for the emulated +machine: @example $ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user @end example -The VM shares its store with the host system. +La VM partage sont dépôt avec le système hôte. -Additional file systems can be shared between the host and the VM using the -@code{--share} and @code{--expose} command-line options: the former -specifies a directory to be shared with write access, while the latter -provides read-only access to the shared directory. +Vous pouvez partager des fichiers supplémentaires entre l'hôte et la VM avec +les options en ligne de commande @code{--share} et @code{--expose} : la +première spécifie un répertoire à partager avec accès en écriture, tandis +que le deuxième fournit un accès en lecture-seule au répertoire partagé. -The example below creates a VM in which the user's home directory is -accessible read-only, and where the @file{/exchange} directory is a -read-write mapping of @file{$HOME/tmp} on the host: +L'exemple ci-dessous crée une VM dans laquelle le répertoire personnel de +l'utilisateur est accessible en lecture-seule, et où le répertoire +@file{/exchange} est une correspondance en lecture-écriture à +@file{$HOME/tmp} sur l'hôte : @example guix system vm my-config.scm \ --expose=$HOME --share=$HOME/tmp=/exchange @end example -On GNU/Linux, the default is to boot directly to the kernel; this has the -advantage of requiring only a very tiny root disk image since the store of -the host can then be mounted. +Sur GNU/Linux, le comportement par défaut consiste à démarrer directement +sur le noyau ; cela a l'avantage de n'avoir besoin que d'une toute petite +image disque puisque le dépôt de l'hôte peut ensuite être monté. -The @code{--full-boot} option forces a complete boot sequence, starting with -the bootloader. This requires more disk space since a root image containing -at least the kernel, initrd, and bootloader data files must be created. The -@code{--image-size} option can be used to specify the size of the image. +L'option @code{--full-boot} force une séquence de démarrage complète, en +commençant par le chargeur d'amorçage. Cela requiert plus d'espace disque +puisqu'une image racine contenant au moins le noyau, l'initrd et les +fichiers de données du chargeur d'amorçage doit être créé. On peut utiliser +l'option @code{--image-size} pour spécifier la taille de l'image. -@cindex System images, creation in various formats -@cindex Creating system images in various formats +@cindex Images système, création en divers formats +@cindex Créer des images systèmes sous différents formats @item vm-image @itemx disk-image @itemx docker-image -Return a virtual machine, disk image, or Docker image of the operating -system declared in @var{file} that stands alone. By default, @command{guix -system} estimates the size of the image needed to store the system, but you -can use the @option{--image-size} option to specify a value. Docker images -are built to contain exactly what they need, so the @option{--image-size} -option is ignored in the case of @code{docker-image}. +Renvoie une machine virtuelle, une image disque ou une image Docker du +système d'exploitation déclaré dans @var{file} qui se suffit à elle-même. +Par défaut, @command{guix system} estime la taille de l'image requise pour +stocker le système, mais vous pouvez utiliser l'option @option{--image-size} +pour spécifier une valeur. Les images Docker sont construites pour contenir +exactement ce dont elles ont besoin, donc l'option @option{--image-size} est +ignorée dans le cas de @code{docker-image}. -You can specify the root file system type by using the -@option{--file-system-type} option. It defaults to @code{ext4}. +Vous pouvez spécifier le type de système de fichiers racine avec l'option +@option{--file-system-type}. La valeur par défaut est @code{ext4}. When using @code{vm-image}, the returned image is in qcow2 format, which the -QEMU emulator can efficiently use. @xref{Lancer GuixSD dans une VM}, for more +QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for more information on how to run the image in a virtual machine. -When using @code{disk-image}, a raw disk image is produced; it can be copied -as is to a USB stick, for instance. Assuming @code{/dev/sdc} is the device -corresponding to a USB stick, one can copy the image to it using the -following command: +Lorsque vous utilisez @code{disk-image}, une image disque brute est produite +; elle peut être copiée telle quelle sur un périphérique USB. En supposant +que @code{/dev/sdc} est le périphérique correspondant à une clef USB, on +peut copier l'image dessus avec la commande suivante : @example # dd if=$(guix system disk-image my-os.scm) of=/dev/sdc @end example -When using @code{docker-image}, a Docker image is produced. Guix builds the -image from scratch, not from a pre-existing Docker base image. As a result, -it contains @emph{exactly} what you define in the operating system -configuration file. You can then load the image and launch a Docker -container using commands like the following: +En utilisant @code{docker-image}, on produit une image Docker. Guix +construit l'image de zéro, et non à partir d'une image Docker de base +pré-existante. En conséquence, elle contient @emph{exactly} ce que vous +avez défini dans le fichier de configuration du système. Vous pouvez +ensuite charger l'image et lancer un conteneur Docker avec des commande +comme : @example image_id="$(docker load < guixsd-docker-image.tar.gz)" @@ -23067,27 +23890,29 @@ docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\ @end example This command starts a new Docker container from the specified image. It -will boot the GuixSD system in the usual manner, which means it will start -any services you have defined in the operating system configuration. -Depending on what you run in the Docker container, it may be necessary to -give the container additional permissions. For example, if you intend to -build software using Guix inside of the Docker container, you may need to -pass the @option{--privileged} option to @code{docker run}. +will boot the Guix system in the usual manner, which means it will start any +services you have defined in the operating system configuration. Depending +on what you run in the Docker container, it may be necessary to give the +container additional permissions. For example, if you intend to build +software using Guix inside of the Docker container, you may need to pass the +@option{--privileged} option to @code{docker run}. @item conteneur -Return a script to run the operating system declared in @var{file} within a -container. Containers are a set of lightweight isolation mechanisms -provided by the kernel Linux-libre. Containers are substantially less -resource-demanding than full virtual machines since the kernel, shared -objects, and other resources can be shared with the host system; this also -means they provide thinner isolation. +Renvoie un script qui lance le système d'exploitation déclaré dans +@var{file} dans un conteneur. Les conteneurs sont un ensemble de mécanismes +d'isolation légers fournis par le noyau Linux-libre. Les conteneurs sont +substantiellement moins gourmands en ressources que les machines virtuelles +complètes car le noyau, les objets partagés et d'autres ressources peuvent +être partagés avec le système hôte ; cela signifie aussi une isolation moins +complète. -Currently, the script must be run as root in order to support more than a -single user and group. The container shares its store with the host system. +Actuellement, le script doit être lancé en root pour pouvoir supporter plus +d'un utilisateur et d'un groupe. Le conteneur partage son dépôt avec le +système hôte. -As with the @code{vm} action (@pxref{guix system vm}), additional file -systems to be shared between the host and container can be specified using -the @option{--share} and @option{--expose} options: +Comme avec l'action @code{vm} (@pxref{guix system vm}), des systèmes de +fichiers supplémentaires peuvent être partagés entre l'hôte et le conteneur +avec les options @option{--share} et @option{--expose} : @example guix system container my-config.scm \ @@ -23095,52 +23920,53 @@ guix system container my-config.scm \ @end example @quotation Remarque -This option requires Linux-libre 3.19 or newer. +Cette option requiert Linux-libre ou supérieur. @end quotation @end table -@var{options} can contain any of the common build options (@pxref{Options de construction communes}). In addition, @var{options} can contain one of the -following: +@var{options} peut contenir n'importe quelle option commune de construction +(@pxref{Options de construction communes}). En plus, @var{options} peut contenir l'une +de ces options : @table @option @item --expression=@var{expr} @itemx -e @var{expr} Consider the operating-system @var{expr} evaluates to. This is an alternative to specifying a file which evaluates to an operating system. -This is used to generate the GuixSD installer @pxref{Construire l'image d'installation}). +This is used to generate the Guix system installer @pxref{Construire l'image d'installation}). @item --system=@var{système} @itemx -s @var{système} -Attempt to build for @var{system} instead of the host system type. This -works as per @command{guix build} (@pxref{Invoquer guix build}). +Essaye de construire pour @var{system} au lieu du type du système hôte. +Cela fonction comme pour @command{guix build} (@pxref{Invoquer guix build}). @item --derivation @itemx -d -Return the derivation file name of the given operating system without -building anything. +Renvoie le nom du fichier de dérivation du système d'exploitation donné sans +rien construire. @item --file-system-type=@var{type} @itemx -t @var{type} -For the @code{disk-image} action, create a file system of the given -@var{type} on the image. +Pour l'action @code{disk-image}, crée un système de fichier du @var{type} +donné sur l'image. -When this option is omitted, @command{guix system} uses @code{ext4}. +Lorsque cette option est omise, @command{guix system} utilise @code{ext4}. -@cindex ISO-9660 format -@cindex CD image format -@cindex DVD image format -@code{--file-system-type=iso9660} produces an ISO-9660 image, suitable for -burning on CDs and DVDs. +@cindex format ISO-9660 +@cindex format d'image de CD +@cindex format d'image de DVD +@code{--file-system-type=iso9660} produit une image ISO-9660, qu'il est +possible de graver sur un CD ou un DVD. @item --image-size=@var{size} -For the @code{vm-image} and @code{disk-image} actions, create an image of -the given @var{size}. @var{size} may be a number of bytes, or it may -include a unit as a suffix (@pxref{Block size, size specifications,, +Pour les actions @code{vm-image} et @code{disk-image}, crée une image de la +taille donnée @var{size}. @var{size} peut être un nombre d'octets ou +contenir un suffixe d'unité (@pxref{Block size, size specifications,, coreutils, GNU Coreutils}). -When this option is omitted, @command{guix system} computes an estimate of -the image size as a function of the size of the system declared in +Lorsque cette option est omise, @command{guix system} calcule une estimation +de la taille de l'image en fonction de la taille du système déclaré dans @var{file}. @item --root=@var{fichier} @@ -23149,59 +23975,58 @@ Fait de @var{fichier} un lien symbolique vers le résultat, et l'enregistre en tant que racine du ramasse-miettes. @item --skip-checks -Skip pre-installation safety checks. +Passe les vérifications de sécurité avant l'installation. -By default, @command{guix system init} and @command{guix system reconfigure} -perform safety checks: they make sure the file systems that appear in the -@code{operating-system} declaration actually exist (@pxref{Systèmes de fichiers}), -and that any Linux kernel modules that may be needed at boot time are listed -in @code{initrd-modules} (@pxref{Disque de RAM initial}). Passing this option -skips these tests altogether. +Par défaut, @command{guix system init} et @command{guix system reconfigure} +effectuent des vérifications de sécurité : ils s'assurent que les systèmes +de fichiers qui apparaissent dans la déclaration @code{operating-system} +existent vraiment (@pxref{Systèmes de fichiers}) et que les modules de noyau Linux +qui peuvent être requis au démarrage sont listés dans @code{initrd-modules} +(@pxref{Disque de RAM initial}). Passer cette option saute ces vérifications +complètement. +@cindex on-error +@cindex on-error strategy +@cindex error strategy @item --on-error=@var{strategy} -Apply @var{strategy} when an error occurs when reading @var{file}. -@var{strategy} may be one of the following: +Applique @var{strategy} lorsqu'une erreur arrive lors de la lecture de +@var{file}. @var{strategy} peut être l'une des valeurs suivantes : @table @code @item nothing-special -Report the error concisely and exit. This is the default strategy. +Rapporte l'erreur de manière concise et quitte. C'est la stratégie par +défaut. @item backtrace -Likewise, but also display a backtrace. +Pareil, mais affiche aussi une trace de débogage. @item debug -Report the error and enter Guile's debugger. From there, you can run -commands such as @code{,bt} to get a backtrace, @code{,locals} to display -local variable values, and more generally inspect the state of the program. -@xref{Debug Commands,,, guile, GNU Guile Reference Manual}, for a list of -available debugging commands. +Rapporte l'erreur et entre dans le débogueur Guile. À partir de là, vous +pouvez lancer des commandes comme @code{,bt} pour obtenir une trace de +débogage, @code{,locals} pour afficher les valeurs des variables locales et +plus généralement inspecter l'état du programme. @xref{Debug Commands,,, +guile, GNU Guile Reference Manual}, pour une liste de commandes de débogage +disponibles. @end table @end table -@quotation Remarque -All the actions above, except @code{build} and @code{init}, can use KVM -support in the Linux-libre kernel. Specifically, if the machine has -hardware virtualization support, the corresponding KVM kernel module should -be loaded, and the @file{/dev/kvm} device node must exist and be readable -and writable by the user and by the build users of the daemon (@pxref{Réglages de l'environnement de construction}). -@end quotation - Once you have built, configured, re-configured, and re-re-configured your -GuixSD installation, you may find it useful to list the operating system +Guix installation, you may find it useful to list the operating system generations available on disk---and that you can choose from the bootloader boot menu: @table @code @item list-generations -List a summary of each generation of the operating system available on disk, -in a human-readable way. This is similar to the @option{--list-generations} -option of @command{guix package} (@pxref{Invoquer guix package}). +Affiche un résumé de chaque génération du système d'exploitation disponible +sur le disque, dans un format lisible pour un humain. C'est similaire à +l'option @option{--list-generations} de @command{guix package} +(@pxref{Invoquer guix package}). -Optionally, one can specify a pattern, with the same syntax that is used in -@command{guix package --list-generations}, to restrict the list of -generations displayed. For instance, the following command displays -generations that are up to 10 days old: +Éventuellement, on peut spécifier un motif, avec la même syntaxe utilisée +pour @command{guix package --list-generations}, pour restreindre la liste +des générations affichées. Par exemple, la commande suivante affiche les +générations de moins de 10 jours : @example $ guix system list-generations 10d @@ -23209,39 +24034,43 @@ $ guix system list-generations 10d @end table -The @command{guix system} command has even more to offer! The following -sub-commands allow you to visualize how your system services relate to each -other: +La commande @command{guix system} a même plus à proposer ! Les +sous-commandes suivantes vous permettent de visualiser comme vos services +systèmes sont liés les uns aux autres : @anchor{system-extension-graph} @table @code @item extension-graph -Emit in Dot/Graphviz format to standard output the @dfn{service extension -graph} of the operating system defined in @var{file} (@pxref{Composition de services}, for more information on service extensions.) +Affiche le @dfn{graphe d'extension des services} du système d'exploitation +défini dans @var{file} au format Dot/Graphviz sur la sortie standard +(@pxref{Composition de services}, pour plus d'informations sur l'extension des +services). -The command: +La commande : @example $ guix system extension-graph @var{file} | dot -Tpdf > services.pdf @end example -produces a PDF file showing the extension relations among services. +produit un fichier PDF montrant les relations d'extension entre les +services. @anchor{system-shepherd-graph} @item shepherd-graph -Emit in Dot/Graphviz format to standard output the @dfn{dependency graph} of -shepherd services of the operating system defined in @var{file}. -@xref{Services Shepherd}, for more information and for an example graph. +Affiche le @dfn{graphe de dépendance} des services shepherd du système +d'exploitation défini dans @var{file} au format Dot/Graphviz sur la sortie +standard. @xref{Services Shepherd}, pour plus d'informations et un exemple +de graphe. @end table -@node Lancer GuixSD dans une VM -@subsection Running GuixSD in a Virtual Machine +@node Running Guix in a VM +@section Running Guix in a Virtual Machine -@cindex virtual machine -To run GuixSD in a virtual machine (VM), one can either use the pre-built -GuixSD VM image distributed at +@cindex machine virtuelle +To run Guix in a virtual machine (VM), one can either use the pre-built Guix +VM image distributed at @indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.@var{system}.xz} , or build their own virtual machine image using @command{guix system vm-image} (@pxref{Invoquer guix system}). The returned image is in qcow2 @@ -23249,10 +24078,12 @@ format, which the @uref{http://qemu.org/, QEMU emulator} can efficiently use. @cindex QEMU -If you built your own image, you must copy it out of the store (@pxref{Le dépôt}) and give yourself permission to write to the copy before you can use -it. When invoking QEMU, you must choose a system emulator that is suitable -for your hardware platform. Here is a minimal QEMU invocation that will -boot the result of @command{guix system vm-image} on x86_64 hardware: +Si vous construisez votre propre image, vous devez la copier en dehors du +dépôt (@pxref{Le dépôt}) et vous donner la permission d'écrire sur la copie +avant de pouvoir l'utiliser. Lorsque vous invoquez QEMU, vous devez choisir +un émulateur système correspondant à votre plate-forme matérielle. Voici +une invocation minimale de QEMU qui démarrera le résultat de @command{guix +system vm-image} sur un matériel x8_64. @example $ qemu-system-x86_64 \ @@ -23260,84 +24091,85 @@ $ qemu-system-x86_64 \ -enable-kvm -m 256 /tmp/qemu-image @end example -Here is what each of these options means: +Voici la signification de ces options : @table @code @item qemu-system-x86_64 -This specifies the hardware platform to emulate. This should match the -host. +Cela spécifie la plate-forme matérielle à émuler. Elle doit correspondre à +l'hôte. @item -net user -Enable the unprivileged user-mode network stack. The guest OS can access -the host but not vice versa. This is the simplest way to get the guest OS -online. +Active la pile réseau non privilégiée en mode utilisateur. L'OS émulé peut +accéder à l'hôte mais pas l'inverse. C'est la manière la plus simple de +connecter le client. @item -net nic,model=virtio -You must create a network interface of a given model. If you do not create -a NIC, the boot will fail. Assuming your hardware platform is x86_64, you -can get a list of available NIC models by running -@command{qemu-system-x86_64 -net nic,model=help}. +Vous devez créer une interface réseau d'un modèle donné. Si vous ne créez +pas de NIC, le démarrage échouera. En supposant que votre plate-forme est +x86_64, vous pouvez récupérer une liste des modèles de NIC disponibles en +lançant @command{qemu-system-x86_64 -net nic,model=help}. @item -enable-kvm -If your system has hardware virtualization extensions, enabling the virtual -machine support (KVM) of the Linux kernel will make things run faster. +Si votre système a des extensions de virtualisation matérielle, activer le +support des machines virtuelles de Linux (KVM) accélérera les choses. @item -m 256 -RAM available to the guest OS, in mebibytes. Defaults to 128@tie{}MiB, -which may be insufficient for some operations. +RAM disponible sur l'OS émulé, en mébioctets. La valeur par défaut est +128@tie{}Mo, ce qui peut ne pas suffire pour certaines opérations. @item /tmp/qemu-image -The file name of the qcow2 image. +Le nom de fichier de l'image qcow2. @end table -The default @command{run-vm.sh} script that is returned by an invocation of -@command{guix system vm} does not add a @command{-net user} flag by -default. To get network access from within the vm add the -@code{(dhcp-client-service)} to your system definition and start the VM -using @command{`guix system vm config.scm` -net user}. An important caveat -of using @command{-net user} for networking is that @command{ping} will not -work, because it uses the ICMP protocol. You'll have to use a different -command to check for network connectivity, for example @command{guix +Le script @command{run-vm.sh} par défaut renvoyé par une invocation de +@command{guix system vm} n'ajoute pas le drapeau @command{-net user} par +défaut. Pour avoir accès au réseau dans la vm, ajoutez le +@code{(dhcp-client-service)} à votre définition et démarrez la VM avec +@command{`guix system vm config.scm` -net user}. Un problème important avec +@command{-net user} pour le réseau, est que @command{ping} ne fonctionnera +pas, car il utilise le protocole ICMP. Vous devrez utiliser une autre +commande pour vérifier la connectivité réseau, par exemple @command{guix download}. -@subsubsection Connecting Through SSH +@subsection Se connecter par SSH @cindex SSH @cindex serveur SSH -To enable SSH inside a VM you need to add a SSH server like -@code{(dropbear-service)} or @code{(lsh-service)} to your VM. The -@code{(lsh-service}) doesn't currently boot unsupervised. It requires you -to type some characters to initialize the randomness generator. In addition -you need to forward the SSH port, 22 by default, to the host. You can do -this with +Pour activer SSH dans une VM vous devez ajouter un serveur SSH comme +@code{(dropbear-service)} ou @code{(lsh-service)} à votre VM. Le service +@code{(lsh-service)} ne peut actuellement pas démarrer sans supervision. Il +a besoin que vous tapiez quelques caractères pour initialiser le générateur +d'aléatoire. En plus vous devez transférer le port 22, par défaut, à +l'hôte. Vous pouvez faire cela avec : @example `guix system vm config.scm` -net user,hostfwd=tcp::10022-:22 @end example -To connect to the VM you can run +Pour vous connecter à la VM vous pouvez lancer @example ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022 @end example -The @command{-p} tells @command{ssh} the port you want to connect to. -@command{-o UserKnownHostsFile=/dev/null} prevents @command{ssh} from -complaining every time you modify your @command{config.scm} file and the -@command{-o StrictHostKeyChecking=no} prevents you from having to allow a -connection to an unknown host every time you connect. +Le @command{-p} donne le port auquel vous voulez vous connecter à +@command{ssh}, @command{-o UserKnownHostsFile=/dev/null} évite que +@command{ssh} ne se plaigne à chaque fois que vous modifiez le fichier +@command{config.scm} et @command{-o StrictHostKeyChecking=no} évite que vous +n'ayez à autoriser une connexion à un hôte inconnu à chaque fois que vous +vous connectez. -@subsubsection Using @command{virt-viewer} with Spice +@subsection Utiliser @command{virt-viewer} avec Spice -As an alternative to the default @command{qemu} graphical client you can use -the @command{remote-viewer} from the @command{virt-viewer} package. To -connect pass the @command{-spice port=5930,disable-ticketing} flag to -@command{qemu}. See previous section for further information on how to do -this. +Alternativement au client graphique @command{qemu} par défaut vous pouvez +utiliser @command{remote-viewer} du paquet @command{virt-viewer}. Pour vous +connecter, passez le drapeau @command{-spice port=5930,disable-ticketing} à +@command{qemu}. Voir les sections précédentes pour plus d'informations sur +comment faire cela. -Spice also allows you to do some nice stuff like share your clipboard with -your VM. To enable that you'll also have to pass the following flags to -@command{qemu}: +Spice a aussi de chouettes fonctionnalités comme le partage de votre +presse-papier avec la VM. Pour activer cela vous devrez aussi passer les +drapeaux suivants à @command{qemu} : @example -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5 @@ -23346,14 +24178,14 @@ your VM. To enable that you'll also have to pass the following flags to name=com.redhat.spice.0 @end example -You'll also need to add the @pxref{Services divers, Spice service}. +Vous devrez aussi ajouter le @pxref{Services divers, Spice service}. @node Définir des services -@subsection Définir des services +@section Définir des services -The previous sections show the available services and how one can combine -them in an @code{operating-system} declaration. But how do we define them -in the first place? And what is a service anyway? +Les sections précédentes montrent les services disponibles et comment on +peut les combiner dans une déclaration @code{operating-system}. Mais, déjà, +comment les définir ? Et qu'est-ce qu'un service au fait ? @menu * Composition de services:: Le modèle de composition des services. @@ -23363,65 +24195,68 @@ in the first place? And what is a service anyway? @end menu @node Composition de services -@subsubsection Composition de services +@subsection Composition de services @cindex services -@cindex daemons -Here we define a @dfn{service} as, broadly, something that extends the -functionality of the operating system. Often a service is a process---a -@dfn{daemon}---started when the system boots: a secure shell server, a Web -server, the Guix build daemon, etc. Sometimes a service is a daemon whose -execution can be triggered by another daemon---e.g., an FTP server started -by @command{inetd} or a D-Bus service activated by @command{dbus-daemon}. -Occasionally, a service does not map to a daemon. For instance, the -``account'' service collects user accounts and makes sure they exist when -the system runs; the ``udev'' service collects device management rules and -makes them available to the eudev daemon; the @file{/etc} service populates -the @file{/etc} directory of the system. +@cindex démons +Ici nous définissons un @dfn{service} comme étant, assez largement, quelque +chose qui étend la fonctionnalité d'un système d'exploitation. Souvent un +service est un processus — un @dfn{démon} — démarré lorsque le système +démarre : un serveur ssh, un serveur web, le démon de construction de Guix, +etc. Parfois un service est un démon dont l'exécution peut être déclenchée +par un autre démon — p.@: ex.@: un serveur FTP démarré par @command{inetd} +ou un service D-Bus activé par @command{dbus-daemon}. Parfois, un service +ne correspond pas à un démon. Par exemple, le service « de comptes » +récupère la liste des comptes utilisateurs et s'assure qu'ils existent bien +lorsque le système est lancé ; le service « udev » récupère les règles de +gestion des périphériques et les rend disponible au démon eudev ; le service +@file{/etc} rempli le répertoire @file{/etc} du système. -@cindex service extensions -GuixSD services are connected by @dfn{extensions}. For instance, the secure -shell service @emph{extends} the Shepherd---the GuixSD initialization +@cindex extensions de service +Guix system services are connected by @dfn{extensions}. For instance, the +secure shell service @emph{extends} the Shepherd---the initialization system, running as PID@tie{}1---by giving it the command lines to start and stop the secure shell daemon (@pxref{Services réseau, -@code{lsh-service}}); the UPower service extends the D-Bus service by -passing it its @file{.service} specification, and extends the udev service -by passing it device management rules (@pxref{Services de bureaux, +@code{openssh-service-type}}); the UPower service extends the D-Bus service +by passing it its @file{.service} specification, and extends the udev +service by passing it device management rules (@pxref{Services de bureaux, @code{upower-service}}); the Guix daemon service extends the Shepherd by passing it the command lines to start and stop the daemon, and extends the account service by passing it a list of required build user accounts (@pxref{Services de base}). -All in all, services and their ``extends'' relations form a directed acyclic -graph (DAG). If we represent services as boxes and extensions as arrows, a -typical system might provide something like this: +En définitive, les services et leurs relation « d'extensions » forment un +graphe orienté acyclique (DAG). Si nous représentons les services comme des +boîtes et les extensions comme des flèches, un système typique pourrait +fournir quelque chose comme cela : -@image{images/service-graph,,5in,Typical service extension graph.} +@image{images/service-graph,,5in,Graphe d'extension des services typique.} -@cindex system service -At the bottom, we see the @dfn{system service}, which produces the directory -containing everything to run and boot the system, as returned by the -@command{guix system build} command. @xref{Référence de service}, to learn -about the other service types shown here. @xref{system-extension-graph, the -@command{guix system extension-graph} command}, for information on how to -generate this representation for a particular operating system definition. +@cindex service système +En bas, on voit le @dfn{service système} qui produit le répertoire contenant +tout et lançant et démarrant le système, renvoyé par la commande +@command{guix system build}. @xref{Référence de service}, pour apprendre les +autres types de services montrés ici. @xref{system-extension-graph, the +@command{guix system extension-graph} command}, pour plus d'informations sur +la manière de générer cette représentation pour une définition de système +d'exploitation particulière. -@cindex service types +@cindex types de services Technically, developers can define @dfn{service types} to express these relations. There can be any number of services of a given type on the system---for instance, a system running two instances of the GNU secure -shell server (lsh) has two instances of @var{lsh-service-type}, with +shell server (lsh) has two instances of @code{lsh-service-type}, with different parameters. -The following section describes the programming interface for service types -and services. +La section suivante décrit l'interface de programmation des types de +services et des services. @node Types service et services -@subsubsection Types service et services +@subsection Types service et services -A @dfn{service type} is a node in the DAG described above. Let us start -with a simple example, the service type for the Guix build daemon -(@pxref{Invoquer guix-daemon}): +Un @dfn{type de service} est un nœud dans le DAG décrit plus haut. +Commençons avec un exemple simple, le type de service pour le démon de +construction de Guix (@pxref{Invoquer guix-daemon}) : @example (define guix-service-type @@ -23435,44 +24270,45 @@ with a simple example, the service type for the Guix build daemon @end example @noindent -It defines three things: +Il définit trois choses : @enumerate @item -A name, whose sole purpose is to make inspection and debugging easier. +Un nom, dont le seul but de rendre l'inspection et le débogage plus faciles. @item -A list of @dfn{service extensions}, where each extension designates the -target service type and a procedure that, given the parameters of the -service, returns a list of objects to extend the service of that type. +Une liste d'@dfn{extensions de services}, où chaque extension désigne le +type de service cible et une procédure qui, étant donné les paramètres du +service, renvoie une liste d'objets pour étendre le service de ce type. -Every service type has at least one service extension. The only exception -is the @dfn{boot service type}, which is the ultimate service. +Chaque type de service a au moins une extension de service. La seule +exception est le @dfn{type de service boot}, qui est le service ultime. @item -Optionally, a default value for instances of this type. +Éventuellement, une valeur par défaut pour les instances de ce type. @end enumerate -In this example, @var{guix-service-type} extends three services: +Dans cet exemple, @var{guix-service-type} étend trois services : @table @var @item shepherd-root-service-type -The @var{guix-shepherd-service} procedure defines how the Shepherd service -is extended. Namely, it returns a @code{} object that -defines how @command{guix-daemon} is started and stopped (@pxref{Services Shepherd}). +La procédure @var{guix-shepherd-service} définit comment le service du +Shepherd est étendu. En fait, elle renvoie un objet +@code{} qui définit comment @command{guix-daemon} est +démarré et stoppé (@pxref{Services Shepherd}). @item account-service-type -This extension for this service is computed by @var{guix-accounts}, which -returns a list of @code{user-group} and @code{user-account} objects -representing the build user accounts (@pxref{Invoquer guix-daemon}). +Cette extension pour ce service est calculée par @var{guix-accounts}, qui +renvoie une liste d'objets @code{user-group} et @code{user-account} +représentant les comptes des utilisateurs de construction (@pxref{Invoquer guix-daemon}). @item activation-service-type -Here @var{guix-activation} is a procedure that returns a gexp, which is a -code snippet to run at ``activation time''---e.g., when the service is -booted. +Ici, @var{guix-activation} est une procédure qui renvoie une gexp, qui est +un bout de code qui s'exécute au moment de l'activation — p.@: ex.@: lorsque +le service est démarré. @end table -A service of this type is instantiated like this: +Un service de ce type est instancié de cette manière : @example (service guix-service-type @@ -23481,22 +24317,23 @@ A service of this type is instantiated like this: (use-substitutes? #f))) @end example -The second argument to the @code{service} form is a value representing the -parameters of this specific service instance. -@xref{guix-configuration-type, @code{guix-configuration}}, for information -about the @code{guix-configuration} data type. When the value is omitted, -the default value specified by @code{guix-service-type} is used: +Le deuxième argument de la forme @code{service} est une valeur représentant +les paramètres de cet instance spécifique du service. +@xref{guix-configuration-type, @code{guix-configuration}}, pour plus +d'informations sur le type de données @code{guix-configuration}. Lorsque la +valeur est omise, la valeur par défaut spécifiée par +@code{guix-service-type} est utilisée : @example (service guix-service-type) @end example -@var{guix-service-type} is quite simple because it extends other services -but is not extensible itself. +@var{guix-service-type} est très simple car il étend d'autres services mais +ne peut pas être étendu. @c @subsubsubsection Extensible Service Types -The service type for an @emph{extensible} service looks like this: +Le type de service pour un service @emph{extensible} ressemble à ceci : @example (define udev-service-type @@ -23505,98 +24342,100 @@ The service type for an @emph{extensible} service looks like this: (list (service-extension shepherd-root-service-type udev-shepherd-service))) - (compose concatenate) ;concatenate the list of rules + (compose concatenate) ; concatène la liste des règles (extend (lambda (config rules) (match config (($ udev initial-rules) (udev-configuration - (udev udev) ;the udev package to use + (udev udev) ; le paquet udev à utiliser (rules (append initial-rules rules))))))))) @end example -This is the service type for the -@uref{https://wiki.gentoo.org/wiki/Project:Eudev, eudev device management -daemon}. Compared to the previous example, in addition to an extension of -@var{shepherd-root-service-type}, we see two new fields: +C'est le type de service pour le +@uref{https://wiki.gentoo.org/wiki/Project:Eudev, le démon de gestion des +périphériques eudev}. Comparé à l'exemple précédent, en plus d'une +extension de @var{shepherd-root-service-type}, on trouve deux nouveaux +champs : @table @code @item compose -This is the procedure to @dfn{compose} the list of extensions to services of -this type. +C'est la procédure pour @dfn{composer} la liste des extensions de services +de ce type. -Services can extend the udev service by passing it lists of rules; we -compose those extensions simply by concatenating them. +Les services peuvent étendre le service udev en lui passant des listes de +règles ; on compose ces extensions simplement en les concaténant. @item extend -This procedure defines how the value of the service is @dfn{extended} with -the composition of the extensions. +Cette procédure définie comme la valeur du service est @dfn{étendue} avec la +composition des extensions. -Udev extensions are composed into a list of rules, but the udev service -value is itself a @code{} record. So here, we extend -that record by appending the list of rules it contains to the list of -contributed rules. +Les extensions Udev sont composés en une liste de règles, mais la valeur du +service udev est elle-même un enregistrement @code{}. +Donc ici, nous étendons cet enregistrement en ajoutant la liste des règle +contribuées à la liste des règles qu'il contient déjà. @item description -This is a string giving an overview of the service type. The string can -contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}). The -@command{guix system search} command searches these strings and displays -them (@pxref{Invoquer guix system}). +C'est une chaîne donnant un aperçu du type de service. Elle peut contenir +du balisage Texinfo (@pxref{Overview,,, texinfo, GNU Texinfo}). La commande +@command{guix system search} permet de rechercher dans ces chaînes et de les +afficher (@pxref{Invoquer guix system}). @end table -There can be only one instance of an extensible service type such as -@var{udev-service-type}. If there were more, the @code{service-extension} -specifications would be ambiguous. +Il ne peut y avoir qu'une instance d'un type de service extensible comme +@var{udev-service-type}. S'il y en avait plus, les spécification +@code{service-extension} seraient ambiguës. -Still here? The next section provides a reference of the programming -interface for services. +Toujours ici ? La section suivante fournit une référence de l'interface de +programmation des services. @node Référence de service -@subsubsection Référence de service +@subsection Référence de service -We have seen an overview of service types (@pxref{Types service et services}). This section provides a reference on how to manipulate services -and service types. This interface is provided by the @code{(gnu services)} -module. +Nous avons vu un résumé des types de services (@pxref{Types service et services}). Cette section fournit une référence sur la manière de manipuler +les services et les types de services. Cette interface est fournie par le +module @code{(gnu services)}. @deffn {Procédure Scheme} service @var{type} [@var{value}] -Return a new service of @var{type}, a @code{} object (see -below.) @var{value} can be any object; it represents the parameters of this -particular service instance. +Renvoie un nouveau service de type @var{type}, un objet +@code{} (voir plus bas). @var{value}peut être n'importe quel +objet ; il représente les paramètres de cette instance particulière du +service. -When @var{value} is omitted, the default value specified by @var{type} is -used; if @var{type} does not specify a default value, an error is raised. +Lorsque @var{value} est omise, la valeur par défaut spécifiée par @var{type} +est utilisée ; si @var{type} ne spécifie pas de valeur par défaut, une +erreur est levée. -For instance, this: +Par exemple ceci : @example (service openssh-service-type) @end example @noindent -is equivalent to this: +est équivalent à ceci : @example (service openssh-service-type (openssh-configuration)) @end example -In both cases the result is an instance of @code{openssh-service-type} with -the default configuration. +Dans les deux cas le résultat est une instance de +@code{openssh-service-type} avec la configuration par défaut. @end deffn @deffn {Procédure Scheme} service? @var{obj} -Return true if @var{obj} is a service. +Renvoie vrai si @var{obj} est un service. @end deffn @deffn {Procédure Scheme} service-kind @var{service} -Return the type of @var{service}---i.e., a @code{} object. +Renvoie le type de @var{service} — c.-à-d.@: un objet @code{}. @end deffn @deffn {Procédure Scheme} service-value @var{service} -Return the value associated with @var{service}. It represents its -parameters. +Renvoie la valeur associée à @var{service}. Elle représente ses paramètres. @end deffn -Here is an example of how a service is created and manipulated: +Voici un exemple de la manière dont un service est créé et manipulé : @example (define s @@ -23614,102 +24453,105 @@ Here is an example of how a service is created and manipulated: @result{} #t @end example -The @code{modify-services} form provides a handy way to change the -parameters of some of the services of a list such as @var{%base-services} -(@pxref{Services de base, @code{%base-services}}). It evaluates to a list of -services. Of course, you could always use standard list combinators such as -@code{map} and @code{fold} to do that (@pxref{SRFI-1, List Library,, guile, -GNU Guile Reference Manual}); @code{modify-services} simply provides a more -concise form for this common pattern. +La forme @code{modify-services} fournit une manière pratique de modifier les +paramètres de certains services d'une liste comme @var{%base-services} +(@pxref{Services de base, @code{%base-services}}). Elle s'évalue en une liste +de services. Bien sûr, vous pouvez toujours utiliser les combinateurs de +liste standards comme @code{map} et @code{fold} pour cela (@pxref{SRFI-1, +List Library,, guile, GNU Guile Reference Manual}) ; @code{modify-services} +fournit simplement une manière plus concise pour ce besoin commun. -@deffn {Scheme Syntax} modify-services @var{services} @ +@deffn {Syntaxe Scheme} modify-services @var{services} @ (@var{type} @var{variable} => @var{body}) @dots{} -Modify the services listed in @var{services} according to the given -clauses. Each clause has the form: +Modifie les services listés dans @var{services} en fonction des clauses +données. Chaque clause à la forme : @example (@var{type} @var{variable} => @var{body}) @end example -where @var{type} is a service type---e.g., @code{guix-service-type}---and -@var{variable} is an identifier that is bound within the @var{body} to the -service parameters---e.g., a @code{guix-configuration} instance---of the -original service of that @var{type}. +où @var{type} est un type de service — p.@: ex.@: @code{guix-service-type} — +et @var{variable} est un identifiant lié dans @var{body} aux paramètres du +service — p.@: ex.@: une instance de @code{guix-configuration} — du service +original de ce @var{type}. -The @var{body} should evaluate to the new service parameters, which will be -used to configure the new service. This new service will replace the -original in the resulting list. Because a service's service parameters are -created using @code{define-record-type*}, you can write a succinct -@var{body} that evaluates to the new service parameters by using the -@code{inherit} feature that @code{define-record-type*} provides. +La variable @var{body} devrait s'évaluer en de nouveaux paramètres de +service, qui seront utilisés pour configurer le nouveau service. Ce nouveau +service remplacera l'original dans la liste qui en résulte. Comme les +paramètres d'un service sont créés avec @code{define-record-type*}, vous +pouvez écrire un @var{body} court qui s'évalue en de nouveaux paramètres +pour le services en utilisant @code{inherit}, fourni par +@code{define-record-type*}. -@xref{Utiliser le système de configuration}, for example usage. +@xref{Utiliser le système de configuration} pour des exemples d'utilisation. @end deffn -Next comes the programming interface for service types. This is something -you want to know when writing new service definitions, but not necessarily -when simply looking for ways to customize your @code{operating-system} -declaration. +Suit l'interface de programmation des types de services. Vous devrez la +connaître pour écrire de nouvelles définitions de services, mais pas +forcément lorsque vous cherchez des manières simples de personnaliser votre +déclaration @code{operating-system}. @deftp {Type de données} service-type @cindex type de service -This is the representation of a @dfn{service type} (@pxref{Types service et services}). +C'est la représentation d'un @dfn{type de service} (@pxref{Types service et services}). @table @asis @item @code{name} -This is a symbol, used only to simplify inspection and debugging. +C'est un symbole, utilisé seulement pour simplifier l'inspection et le +débogage. @item @code{extensions} -A non-empty list of @code{} objects (see below). +Une liste non-vide d'objets @code{} (voir plus bas). @item @code{compose} (par défaut : @code{#f}) -If this is @code{#f}, then the service type denotes services that cannot be -extended---i.e., services that do not receive ``values'' from other -services. +S'il s'agit de @code{#f}, le type de service dénote des services qui ne +peuvent pas être étendus — c.-à-d.@: qui ne reçoivent pas de « valeurs » +d'autres services. -Otherwise, it must be a one-argument procedure. The procedure is called by -@code{fold-services} and is passed a list of values collected from -extensions. It may return any single value. +Sinon, ce doit être une procédure à un argument. La procédure est appelée +par @code{fold-services} et on lui passe une liste de valeurs collectées par +les extensions. Elle peut renvoyer n'importe quelle valeur simple. @item @code{extend} (par défaut : @code{#f}) -If this is @code{#f}, services of this type cannot be extended. +Si la valeur est @code{#f}, les services de ce type ne peuvent pas être +étendus. -Otherwise, it must be a two-argument procedure: @code{fold-services} calls -it, passing it the initial value of the service as the first argument and -the result of applying @code{compose} to the extension values as the second -argument. It must return a value that is a valid parameter value for the -service instance. +Sinon, il doit s'agir 'une procédure à deux arguments : @code{fold-services} +l'appelle et lui passe la valeur initiale du service comme premier argument +et le résultat de l'application de @code{compose} sur les valeurs +d'extension en second argument. Elle doit renvoyer une valeur qui est une +valeur de paramètre valide pour l'instance du service. @end table -@xref{Types service et services}, for examples. +@xref{Types service et services}, pour des exemples. @end deftp @deffn {Procédure Scheme} service-extension @var{target-type} @ - @var{compute} Return a new extension for services of type -@var{target-type}. @var{compute} must be a one-argument procedure: -@code{fold-services} calls it, passing it the value associated with the -service that provides the extension; it must return a valid value for the -target service. + @var{compute} +Renvoie une nouvelle extension pour les services de type @var{target-type}. +@var{compute} doit être une procédure à un argument : @code{fold-services} +l'appelle et lui passe la valeur associée au service qui fournit cette +extension ; elle doit renvoyer une valeur valide pour le service cible. @end deffn @deffn {Procédure Scheme} service-extension? @var{obj} -Return true if @var{obj} is a service extension. +Renvoie vrai si @var{obj} est une extension de service. @end deffn -Occasionally, you might want to simply extend an existing service. This -involves creating a new service type and specifying the extension of -interest, which can be verbose; the @code{simple-service} procedure provides -a shorthand for this. +Parfois, vous voudrez simplement étendre un service existant. Cela implique +de créer un nouveau type de service et de spécifier l'extension qui vous +intéresse, ce qui peut être assez verbeux ; la procédure +@code{simple-service} fournit un raccourci pour ce cas. @deffn {Procédure Scheme} simple-service @var{name} @var{target} @var{value} -Return a service that extends @var{target} with @var{value}. This works by -creating a singleton service type @var{name}, of which the returned service -is an instance. +Renvoie un service qui étend @var{target} avec @var{value}. Cela fonctionne +en créant un type de service singleton @var{name}, dont le service renvoyé +est une instance. -For example, this extends mcron (@pxref{Exécution de tâches planifiées}) with an -additional job: +Par exemple, cela étend mcron (@pxref{Exécution de tâches planifiées}) avec une +tâche supplémentaire : @example (simple-service 'my-mcron-job mcron-service-type @@ -23717,219 +24559,230 @@ additional job: @end example @end deffn -At the core of the service abstraction lies the @code{fold-services} -procedure, which is responsible for ``compiling'' a list of services down to -a single directory that contains everything needed to boot and run the -system---the directory shown by the @command{guix system build} command -(@pxref{Invoquer guix system}). In essence, it propagates service -extensions down the service graph, updating each node parameters on the way, -until it reaches the root node. +Au cœur de l'abstraction des services se cache la procédure +@code{fold-services}, responsable de la « compilation » d'une liste de +services en un répertoire unique qui contient tout ce qui est nécessaire au +démarrage et à l'exécution du système — le répertoire indiqué par la +commande @command{guix system build} (@pxref{Invoquer guix system}). En +soit, elle propage les extensions des services le long du graphe des +services, en mettant à jour chaque paramètre des nœuds sur son chemin, +jusqu'à atteindre le nœud racine. @deffn {Procédure Scheme} fold-services @var{services} @ - [#:target-type @var{system-service-type}] Fold @var{services} by propagating -their extensions down to the root of type @var{target-type}; return the root -service adjusted accordingly. + [#:target-type @var{system-service-type}] +Replie @var{services} en propageant leurs extensions jusqu'à la racine de +type @var{target-type} ; renvoie le service racine ajusté de cette manière. @end deffn -Lastly, the @code{(gnu services)} module also defines several essential -service types, some of which are listed below. +Enfin, le module @code{(gnu services)} définie aussi divers types de +services essentiels, dont certains sont listés ci-dessous. @defvr {Variable Scheme} system-service-type -This is the root of the service graph. It produces the system directory as -returned by the @command{guix system build} command. +C'est la racine du graphe des services. Il produit le répertoire du système +renvoyé par la commande @command{guix system build}. @end defvr @defvr {Variable Scheme} boot-service-type -The type of the ``boot service'', which produces the @dfn{boot script}. The -boot script is what the initial RAM disk runs when booting. +Le type du service « boot », qui produit le @dfn{script de démarrage}. Le +script de démarrage est ce que le disque de RAM initial lance au démarrage. @end defvr @defvr {Variable Scheme} etc-service-type -The type of the @file{/etc} service. This service is used to create files -under @file{/etc} and can be extended by passing it name/file tuples such -as: +Le type du service @file{/etc}. Ce service est utilisé pour créer des +fichiers dans @file{/etc} et peut être étendu en lui passant des tuples +nom/fichier comme ceci : @example -(list `("issue" ,(plain-file "issue" "Welcome!\n"))) +(list `("issue" ,(plain-file "issue" "Bienvenue !\n"))) @end example -In this example, the effect would be to add an @file{/etc/issue} file -pointing to the given file. +Dans cet exemple, l'effet serait d'ajouter un fichier @file{/etc/issue} +pointant vers le fichier donné. @end defvr @defvr {Variable Scheme} setuid-program-service-type -Type for the ``setuid-program service''. This service collects lists of -executable file names, passed as gexps, and adds them to the set of -setuid-root programs on the system (@pxref{Programmes setuid}). +Le type du « service setuid ». Ce service récupère des listes de noms de +fichiers exécutables, passés en tant que gexps, et les ajoute à l'ensemble +des programmes setuid root sur le système (@pxref{Programmes setuid}). @end defvr @defvr {Variable Scheme} profile-service-type -Type of the service that populates the @dfn{system profile}---i.e., the -programs under @file{/run/current-system/profile}. Other services can -extend it by passing it lists of packages to add to the system profile. +De type du service qui rempli le @dfn{profil du système} — c.-à-d.@: les +programmes dans @file{/run/current-system/profile}. Les autres services +peuvent l'étendre en lui passant des listes de paquets à ajouter au profil +du système. @end defvr @node Services Shepherd -@subsubsection Services Shepherd +@subsection Services Shepherd @cindex services shepherd @cindex PID 1 -@cindex init system +@cindex système d'init The @code{(gnu services shepherd)} module provides a way to define services -managed by the GNU@tie{}Shepherd, which is the GuixSD initialization -system---the first process that is started when the system boots, also known -as PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual}). +managed by the GNU@tie{}Shepherd, which is the initialization system---the +first process that is started when the system boots, also known as +PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual}). -Services in the Shepherd can depend on each other. For instance, the SSH -daemon may need to be started after the syslog daemon has been started, -which in turn can only happen once all the file systems have been mounted. -The simple operating system defined earlier (@pxref{Utiliser le système de configuration}) results in a service graph like this: +Les services dans le Shepherd peuvent dépendre les uns des autres. Par +exemple, le démon SSH peut avoir besoin d'être démarré après le démon +syslog, qui à son tour doit être démarré après le montage des systèmes de +fichiers. Le système d'exploitation simple déclaré précédemment +(@pxref{Utiliser le système de configuration}) crée un graphe de service comme +ceci : -@image{images/shepherd-graph,,5in,Typical shepherd service graph.} +@image{images/shepherd-graph,,5in,Graphe de service typique du shepherd.} -You can actually generate such a graph for any operating system definition -using the @command{guix system shepherd-graph} command +Vous pouvez générer un tel graphe pour n'importe quelle définition de +système d'exploitation avec la commande @command{guix system shepherd-graph} (@pxref{system-shepherd-graph, @command{guix system shepherd-graph}}). -The @var{%shepherd-root-service} is a service object representing -PID@tie{}1, of type @var{shepherd-root-service-type}; it can be extended by -passing it lists of @code{} objects. +La variable @var{%shepherd-root-service} est un objet de service +représentant le PID@tie{}1, de type @var{shepherd-root-service-type} ; il +peut être étendu en lui passant des listes d'objets +@code{}. @deftp {Type de données} shepherd-service -The data type representing a service managed by the Shepherd. +Le type de données représentant un service géré par le Shepherd. @table @asis @item @code{provision} -This is a list of symbols denoting what the service provides. +C'est une liste de symboles dénotant ce que le service fournit. -These are the names that may be passed to @command{herd start}, -@command{herd status}, and similar commands (@pxref{Invoking herd,,, +Ce sont les noms qui peuvent être passés à @command{herd start}, +@command{herd status} et les commandes similaires (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}). @xref{Slots of services, the -@code{provides} slot,, shepherd, The GNU Shepherd Manual}, for details. +@code{provides} slot,, shepherd, The GNU Shepherd Manual}, pour plus de +détails. @item @code{requirements} (par défaut : @code{'()}) -List of symbols denoting the Shepherd services this one depends on. +Liste de symboles dénotant les services du Shepherd dont celui-ci dépend. @item @code{respawn?} (par défaut : @code{#t}) -Whether to restart the service when it stops, for instance when the -underlying process dies. +Indique s'il faut redémarrer le service lorsqu'il s'arrête, par exemple si +le processus sous-jacent meurt. @item @code{start} @itemx @code{stop} (par défaut : @code{#~(const #f)}) -The @code{start} and @code{stop} fields refer to the Shepherd's facilities -to start and stop processes (@pxref{Service De- and Constructors,,, -shepherd, The GNU Shepherd Manual}). They are given as G-expressions that -get expanded in the Shepherd configuration file (@pxref{G-Expressions}). +Les champs @code{start} et @code{stop} se réfèrent à la capacité du Shepherd +de démarrer et d'arrêter des processus (@pxref{Service De- and +Constructors,,, shepherd, The GNU Shepherd Manual}). Ils sont donnés comme +des G-expressions qui sont étendues dans le fichier de configuration du +Shepherd (@pxref{G-Expressions}). @item @code{actions} (par défaut : @code{'()}) @cindex action, des services Shepherd -This is a list of @code{shepherd-action} objects (see below) defining -@dfn{actions} supported by the service, in addition to the standard -@code{start} and @code{stop} actions. Actions listed here become available -as @command{herd} sub-commands: +C'est une liste d'objets @code{shepherd-action} (voir plus bas) définissant +des @dfn{actions} supportées par le service, en plus des actions +@code{start} et @code{stop} standards. Les actions listées ici sont +disponibles en tant que sous-commande de @command{herd}. @example herd @var{action} @var{service} [@var{arguments}@dots{}] @end example @item @code{documentation} -A documentation string, as shown when running: +Une chaîne de documentation, montrée lorsqu'on lance : @example herd doc @var{service-name} @end example -where @var{service-name} is one of the symbols in @var{provision} +où @var{service-name} est l'un des symboles dans @var{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}). @item @code{modules} (par défaut : @var{%default-modules}) -This is the list of modules that must be in scope when @code{start} and -@code{stop} are evaluated. +C'est la liste des modules qui doivent être dans le contexte lorsque +@code{start} et @code{stop} sont évalués. @end table @end deftp @deftp {Type de données} shepherd-action -This is the data type that defines additional actions implemented by a -Shepherd service (see above). +C'est le type de données qui définie des actions supplémentaires +implémentées par un service Shepherd (voir au-dessus). @table @code @item name Symbole nommant l'action @item documentation -This is a documentation string for the action. It can be viewed by running: +C'est une chaîne de documentation pour l'action. Elle peut être consultée +avec : @example herd doc @var{service} action @var{action} @end example @item procedure -This should be a gexp that evaluates to a procedure of at least one -argument, which is the ``running value'' of the service (@pxref{Slots of -services,,, shepherd, The GNU Shepherd Manual}). +Cela devrait être une gexp qui s'évalue en une procédure à au moins un +argument, la « valeur de lancement » du service (@pxref{Slots of services,,, +shepherd, The GNU Shepherd Manual}). @end table -The following example defines an action called @code{say-hello} that kindly -greets the user: +L'exemple suivant définie une action nommée @code{dire-bonjour} qui salue +amicalement l'utilisateur : @example (shepherd-action - (name 'say-hello) - (documentation "Say hi!") + (name 'dire-bonjour) + (documentation "Dit salut !") (procedure #~(lambda (running . args) - (format #t "Hello, friend! arguments: ~s\n" + (format #t "Salut, l'ami ! arguments : ~s\n" args) #t))) @end example -Assuming this action is added to the @code{example} service, then you can -do: +En supposant que cette action est ajoutée dans le service @code{example}, +vous pouvez écrire : @example -# herd say-hello example -Hello, friend! arguments: () -# herd say-hello example a b c -Hello, friend! arguments: ("a" "b" "c") +# herd dire-bonjour example +Salut, l'ami ! arguments : () +# herd dire-bonjour example a b c +Salut, l'ami ! arguments : ("a" "b" "c") @end example -This, as you can see, is a fairly sophisticated way to say hello. -@xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, for more -info on actions. +Comme vous pouvez le voir, c'est une manière assez sophistiquée de dire +bonjour. @xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, +pour plus d'informations sur les actions. @end deftp @defvr {Variable Scheme} shepherd-root-service-type -The service type for the Shepherd ``root service''---i.e., PID@tie{}1. +Le type de service pour le « service racine » du Shepherd — c.-à-d.@: le +PID@tie{}1. -This is the service type that extensions target when they want to create -shepherd services (@pxref{Types service et services}, for an example). -Each extension must pass a list of @code{}. +C'est le type de service que les extensions ciblent lorqu'elles veulent +créer un service shepherd (@pxref{Types service et services}, pour un +exemple). Chaque extension doit passer une liste de +@code{}. @end defvr @defvr {Variable Scheme} %shepherd-root-service -This service represents PID@tie{}1. +Ce service représente le PID@tie{}1. @end defvr @node Documentation -@section Documentation +@chapter Documentation -@cindex documentation, searching for -@cindex searching for documentation -@cindex Info, documentation format -@cindex man pages -@cindex manual pages -In most cases packages installed with Guix come with documentation. There -are two main documentation formats: ``Info'', a browseable hypertext format -used for GNU software, and ``manual pages'' (or ``man pages''), the linear -documentation format traditionally found on Unix. Info manuals are accessed -with the @command{info} command or with Emacs, and man pages are accessed -using @command{man}. +@cindex documentation, recherche +@cindex chercher de la documentation +@cindex Info, format de documentation +@cindex man, pages de manuel +@cindex pages de manuel +Dans la plupart des cas les paquets installés avec Guix ont une +documentation. Il y a deux formats de documentation principaux : « Info », +un format hypertexte navigable utilisé par les logiciels GNU et les « pages +de manuel » (ou « pages de man »), le format de documentation linéaire +traditionnel chez Unix. Les manuels Info sont disponibles via la commande +@command{info} ou avec Emacs, et les pages de man sont accessibles via la +commande @command{man}. -You can look for documentation of software installed on your system by -keyword. For example, the following command searches for information about -``TLS'' in Info manuals: +Vous pouvez chercher de la documentation pour les logiciels installés sur +votre système par mot-clef. Par exemple, la commande suivante recherche des +informations sur « TLS » dans les manuels Info : @example $ info -k TLS @@ -23941,7 +24794,7 @@ $ info -k TLS @end example @noindent -The command below searches for the same keyword in man pages: +La commande suivante recherche le même mot-clef dans les pages de man : @example $ man -k TLS @@ -23950,40 +24803,42 @@ certtool (1) - GnuTLS certificate tool @dots {} @end example -These searches are purely local to your computer so you have the guarantee -that documentation you find corresponds to what you have actually installed, -you can access it off-line, and your privacy is respected. +Ces recherches sont purement locales à votre ordinateur donc vous savez que +la documentation trouvée correspond à ce qui est effectivement installé, +vous pouvez y accéder hors ligne et votre vie privée est préservée. -Once you have these results, you can view the relevant documentation by -running, say: +Une fois que vous avez ces résultats, vous pouvez visualiser la +documentation appropriée avec, disons : @example $ info "(gnutls)Core TLS API" @end example @noindent -or: +ou : @example $ man certtool @end example -Info manuals contain sections and indices as well as hyperlinks like those -found in Web pages. The @command{info} reader (@pxref{Top, Info reader,, -info-stnd, Stand-alone GNU Info}) and its Emacs counterpart (@pxref{Misc -Help,,, emacs, The GNU Emacs Manual}) provide intuitive key bindings to -navigate manuals. @xref{Getting Started,,, info, Info: An Introduction}, -for an introduction to Info navigation. +Les manuels Info contiennent des sections et des indexs ainsi que des +hyperliens comme ce qu'on trouve sur les pages Web. Le lecteur +@command{info} (@pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}) +et sa contre-partie dans Emacs (@pxref{Misc Help,,, emacs, The GNU Emacs +Manual}) fournissent des raccourcis claviers intuitifs pour naviguer dans +les manuels @xref{Getting Started,,, info, Info: An Introduction} pour +trouver une introduction sur la navigation dans info. @node Installer les fichiers de débogage -@section Installer les fichiers de débogage +@chapter Installer les fichiers de débogage -@cindex debugging files -Program binaries, as produced by the GCC compilers for instance, are -typically written in the ELF format, with a section containing -@dfn{debugging information}. Debugging information is what allows the -debugger, GDB, to map binary code to source code; it is required to debug a -compiled program in good conditions. +@cindex fichiers de débogage +Les binaires des programmes, produits par les compilateurs GCC par exemple, +sont typiquement écrits au format ELF, avec une section contenant des +@dfn{informations de débogage}. Les informations de débogage sont ce qui +permet au débogueur, GDB, de relier le code binaire et le code source ; +elles sont requises pour déboguer un programme compilé dans de bonnes +conditions. Le problème avec les informations de débogage est qu'elles prennent pas mal de place sur le disque. Par exemple, les informations de débogage de la @@ -23994,76 +24849,79 @@ pas empêcher le débogage — en particulier, dans le système GNU, qui devrait faciliter pour ses utilisateurs l'exercice de leurs libertés (@pxref{Distribution GNU}). -Thankfully, the GNU Binary Utilities (Binutils) and GDB provide a mechanism -that allows users to get the best of both worlds: debugging information can -be stripped from the binaries and stored in separate files. GDB is then -able to load debugging information from those files, when they are available +Heureusement, les utilitaires binaires de GNU (Binutils) et GDB fournissent +un mécanisme qui permet aux utilisateurs d'avoir le meilleur des deux mondes +: les informations de débogage peuvent être nettoyées des binaires et +stockées dans des fichiers séparés. GDB peut ensuite charger les +informations de débogage depuis ces fichiers, lorsqu'elles sont disponibles (@pxref{Separate Debug Files,,, gdb, Debugging with GDB}). -The GNU distribution takes advantage of this by storing debugging -information in the @code{lib/debug} sub-directory of a separate package -output unimaginatively called @code{debug} (@pxref{Des paquets avec plusieurs résultats}). Users can choose to install the @code{debug} output of a package -when they need it. For instance, the following command installs the -debugging information for the GNU C Library and for GNU Guile: +La distribution GNU se sert de cela pour stocker les informations de +débogage dans le sous-répertoire @code{lib/debug} d'une sortie séparée du +paquet appelée sans grande imagination @code{debug} (@pxref{Des paquets avec plusieurs résultats}). Les utilisateurs peuvent choisir d'installer la sortie +@code{debug} d'un paquet lorsqu'ils en ont besoin. Par exemple, la commande +suivante installe les informations de débogage pour la bibliothèque C de GNU +et pour GNU Guile. @example guix package -i glibc:debug guile:debug @end example -GDB must then be told to look for debug files in the user's profile, by -setting the @code{debug-file-directory} variable (consider setting it from -the @file{~/.gdbinit} file, @pxref{Startup,,, gdb, Debugging with GDB}): +On doit ensuite dire à GDB de chercher les fichiers de débogage dans le +profil de l'utilisateur, en remplissant la variable +@code{debug-file-directory} (vous pourriez aussi l'instancier depuis le +fichier @file{~/.gdbinit}, @pxref{Startup,,, gdb, Debugging with GDB}) : @example (gdb) set debug-file-directory ~/.guix-profile/lib/debug @end example -From there on, GDB will pick up debugging information from the @code{.debug} -files under @file{~/.guix-profile/lib/debug}. +À partir de maintenant, GDB récupérera les informations de débogage dans les +fichiers @code{.debug} de @file{~/.guix-profile/lib/debug}. -In addition, you will most likely want GDB to be able to show the source -code being debugged. To do that, you will have to unpack the source code of -the package of interest (obtained with @code{guix build --source}, -@pxref{Invoquer guix build}), and to point GDB to that source directory -using the @code{directory} command (@pxref{Source Path, @code{directory},, -gdb, Debugging with GDB}). +EN plus, vous voudrez sans doute que GDB puisse montrer le code source +débogué. Pour cela, vous devrez désarchiver le code source du paquet qui +vous intéresse (obtenu via @code{guix build --source}, @pxref{Invoquer guix build}) et pointer GDB vers ce répertoire des sources avec la commande +@code{directory} (@pxref{Source Path, @code{directory},, gdb, Debugging with +GDB}). @c XXX: keep me up-to-date -The @code{debug} output mechanism in Guix is implemented by the -@code{gnu-build-system} (@pxref{Systèmes de construction}). Currently, it is -opt-in---debugging information is available only for the packages with -definitions explicitly declaring a @code{debug} output. This may be changed -to opt-out in the future if our build farm servers can handle the load. To -check whether a package has a @code{debug} output, use @command{guix package ---list-available} (@pxref{Invoquer guix package}). +Le mécanisme de la sortie @code{debug} dans Guix est implémenté par le +@code{gnu-build-system} (@pxref{Systèmes de construction}). Actuellement, ce n'est pas +obligatoire — les informations de débogage sont disponibles uniquement si +les définitions déclarent explicitement une sortie @code{debug}. Cela +pourrait être modifié tout en permettant aux paquets de s'en passer dans le +futur si nos serveurs de construction peuvent tenir la charge. Pour +vérifier si un paquet a une sortie @code{debug}, utilisez @command{guix +package --list-available} (@pxref{Invoquer guix package}). @node Mises à jour de sécurité -@section Mises à jour de sécurité +@chapter Mises à jour de sécurité -@cindex security updates +@cindex mises à jour de sécurité @cindex vulnérabilités -Occasionally, important security vulnerabilities are discovered in software -packages and must be patched. Guix developers try hard to keep track of -known vulnerabilities and to apply fixes as soon as possible in the -@code{master} branch of Guix (we do not yet provide a ``stable'' branch -containing only security updates.) The @command{guix lint} tool helps -developers find out about vulnerable versions of software packages in the -distribution: +Parfois, des vulnérabilités importantes sont découvertes dans les paquets +logiciels et doivent être corrigées. Les développeurs de Guix essayent de +suivre les vulnérabilités connues et d'appliquer des correctifs aussi vite +que possible dans la branche @code{master} de Guix (nous n'avons pas encore +de branche « stable » contenant seulement des mises à jour de sécurité). +L'outil @command{guix lint} aide les développeurs à trouver les versions +vulnérables des paquets logiciels dans la distribution. @smallexample $ guix lint -c cve -gnu/packages/base.scm:652:2: glibc@@2.21: probably vulnerable to CVE-2015-1781, CVE-2015-7547 -gnu/packages/gcc.scm:334:2: gcc@@4.9.3: probably vulnerable to CVE-2015-5276 -gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probably vulnerable to CVE-2016-1923, CVE-2016-1924 +gnu/packages/base.scm:652:2: glibc@@2.21: probablement vulnérable à CVE-2015-1781, CVE-2015-7547 +gnu/packages/gcc.scm:334:2: gcc@@4.9.3: probablement vulnérable à CVE-2015-5276 +gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probablement vulnérable à CVE-2016-1923, CVE-2016-1924 @dots{} @end smallexample -@xref{Invoquer guix lint}, for more information. +@xref{Invoquer guix lint}, pour plus d'informations. @quotation Remarque -As of version @value{VERSION}, the feature described below is considered -``beta''. +À la version @value{VERSION}, la fonctionnalité ci-dessous est considérée +comme « bêta ». @end quotation Guix suit une discipline de gestion de paquets fonctionnelle @@ -24076,20 +24934,22 @@ d'être reconstruite. Cela aide d'utiliser des binaires pré-construits temps de souhaité. @cindex greffes -To address this, Guix implements @dfn{grafts}, a mechanism that allows for -fast deployment of critical updates without the costs associated with a -whole-distribution rebuild. The idea is to rebuild only the package that -needs to be patched, and then to ``graft'' it onto packages explicitly -installed by the user and that were previously referring to the original -package. The cost of grafting is typically very low, and order of -magnitudes lower than a full rebuild of the dependency chain. +Pour corriger cela, Guix implémente les @dfn{greffes}, un mécanisme qui +permet un déploiement rapide des mises à jour de sécurité critiques sans le +coût associé à une reconstruction complète de la distribution. L'idée est +de reconstruire uniquement le paquet qui doit être corrigé puis de le « +greffer » sur les paquets qui sont explicitement installés par l'utilisateur +et qui se référaient avant au paquet d'origine. Le coût d'une greffe est +typiquement très bas, et plusieurs ordres de grandeurs moins élevé que de +reconstruire tout la chaîne de dépendance. -@cindex replacements of packages, for grafts -For instance, suppose a security update needs to be applied to Bash. Guix -developers will provide a package definition for the ``fixed'' Bash, say -@var{bash-fixed}, in the usual way (@pxref{Définition des paquets}). Then, the -original package definition is augmented with a @code{replacement} field -pointing to the package containing the bug fix: +@cindex remplacement de paquet, pour les greffes +Par exemple, supposons qu'une mise à jour de sécurité doive être appliquée à +Bash. Les développeurs de Guix fourniront une définition de paquet pour le +Bash « corrigé », disons @var{bash-fixed}, de la manière habituelle +(@pxref{Définition des paquets}). Ensuite, la définition originale du paquet est +augmentée avec un champ @code{replacement} qui pointe vers le paquet +contenant le correctif de sécurité : @example (define bash @@ -24099,44 +24959,44 @@ pointing to the package containing the bug fix: (replacement bash-fixed))) @end example -From there on, any package depending directly or indirectly on Bash---as -reported by @command{guix gc --requisites} (@pxref{Invoquer guix gc})---that -is installed is automatically ``rewritten'' to refer to @var{bash-fixed} -instead of @var{bash}. This grafting process takes time proportional to the -size of the package, usually less than a minute for an ``average'' package -on a recent machine. Grafting is recursive: when an indirect dependency -requires grafting, then grafting ``propagates'' up to the package that the -user is installing. +À partir de maintenant, tout paquet dépendant directement ou indirectement +de Bash — rapporté par @command{guix gc --requisites} (@pxref{Invoquer guix gc}) — installé est automatiquement « réécrit » pour se référer à +@var{bash-fixed} au lieu de @var{bash}. Ce processus de greffe prend du +temps en proportion de la taille du paquet, typiquement moins d'une minute +pour un paquet de taille « moyenne » sur une machine récente. La greffe est +récursive : lorsqu'une dépendance indirecte a besoin d'être greffée, la +greffe se « propage » jusqu'au paquet que l'utilisateur installe. -Currently, the length of the name and version of the graft and that of the -package it replaces (@var{bash-fixed} and @var{bash} in the example above) -must be equal. This restriction mostly comes from the fact that grafting -works by patching files, including binary files, directly. Other -restrictions may apply: for instance, when adding a graft to a package -providing a shared library, the original shared library and its replacement -must have the same @code{SONAME} and be binary-compatible. +Actuellement la longueur du nom et la version de la greffe et du paquet +qu'il remplace (@var{bash-fixed} et @var{bash} dans l'exemple ci-dessus) +doivent être identiques. Cette restriction vient surtout du fait que la +greffe fonctionne en corrigeant les fichiers, dont des fichiers binaires, +directement. D'autres restrictions peuvent apparaître : par exemple, si +vous ajoutez une greffe à un paquet fournissant une bibliothèque partagée, +la bibliothèque partagée originale et son remplacement doivent avoir le même +@code{SONAME} et être compatibles au niveau binaire. -The @option{--no-grafts} command-line option allows you to forcefully avoid -grafting (@pxref{Options de construction communes, @option{--no-grafts}}). Thus, the -command: +L'option en ligne de commande @option{--no-grafts} vous permet d'éviter les +greffes (@pxref{Options de construction communes, @option{--no-grafts}}). Donc la +commande : @example guix build bash --no-grafts @end example @noindent -returns the store file name of the original Bash, whereas: +renvoie le nom de fichier dans les dépôt du Bash original, alors que : @example guix build bash @end example @noindent -returns the store file name of the ``fixed'', replacement Bash. This allows -you to distinguish between the two variants of Bash. +renvoie le nom de fichier du Bash « corrigé » de remplacement. Cela vous +permet de distinguer les deux variantes de Bash. -To verify which Bash your whole profile refers to, you can run -(@pxref{Invoquer guix gc}): +Pour vérifier à quel Bash votre profil se réfère, vous pouvez lancer +(@pxref{Invoquer guix gc}) : @example guix gc -R `readlink -f ~/.guix-profile` | grep bash @@ -24144,554 +25004,62 @@ guix gc -R `readlink -f ~/.guix-profile` | grep bash @noindent @dots{} and compare the store file names that you get with those above. -Likewise for a complete GuixSD system generation: +Likewise for a complete Guix system generation: @example guix gc -R `guix system build my-config.scm` | grep bash @end example -Lastly, to check which Bash running processes are using, you can use the -@command{lsof} command: +Enfin, pour vérifier quelles processus Bash lancés vous utilisez, vous +pouvez utiliser la commande @command{lsof} : @example lsof | grep /gnu/store/.*bash @end example -@node Modules de paquets -@section Modules de paquets - -From a programming viewpoint, the package definitions of the GNU -distribution are provided by Guile modules in the @code{(gnu packages -@dots{})} name space@footnote{Note that packages under the @code{(gnu -packages @dots{})} module name space are not necessarily ``GNU packages''. -This module naming scheme follows the usual Guile module naming convention: -@code{gnu} means that these modules are distributed as part of the GNU -system, and @code{packages} identifies modules that define packages.} -(@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual}). For -instance, the @code{(gnu packages emacs)} module exports a variable named -@code{emacs}, which is bound to a @code{} object (@pxref{Définition des paquets}). - -The @code{(gnu packages @dots{})} module name space is automatically scanned -for packages by the command-line tools. For instance, when running -@code{guix package -i emacs}, all the @code{(gnu packages @dots{})} modules -are scanned until one that exports a package object whose name is -@code{emacs} is found. This package search facility is implemented in the -@code{(gnu packages)} module. - -@cindex personnalisation, des paquets -@cindex package module search path -Users can store package definitions in modules with different names---e.g., -@code{(my-packages emacs)}@footnote{Note that the file name and module name -must match. For instance, the @code{(my-packages emacs)} module must be -stored in a @file{my-packages/emacs.scm} file relative to the load path -specified with @option{--load-path} or @code{GUIX_PACKAGE_PATH}. -@xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for -details.}. There are two ways to make these package definitions visible to -the user interfaces: - -@enumerate -@item -By adding the directory containing your package modules to the search path -with the @code{-L} flag of @command{guix package} and other commands -(@pxref{Options de construction communes}), or by setting the @code{GUIX_PACKAGE_PATH} -environment variable described below. - -@item -By defining a @dfn{channel} and configuring @command{guix pull} so that it -pulls from it. A channel is essentially a Git repository containing package -modules. @xref{Canaux}, for more information on how to define and use -channels. -@end enumerate - -@code{GUIX_PACKAGE_PATH} works similarly to other search path variables: - -@defvr {Environment Variable} GUIX_PACKAGE_PATH -This is a colon-separated list of directories to search for additional -package modules. Directories listed in this variable take precedence over -the own modules of the distribution. -@end defvr - -The distribution is fully @dfn{bootstrapped} and @dfn{self-contained}: each -package is built based solely on other packages in the distribution. The -root of this dependency graph is a small set of @dfn{bootstrap binaries}, -provided by the @code{(gnu packages bootstrap)} module. For more -information on bootstrapping, @pxref{Bootstrapping}. - -@node Consignes d'empaquetage -@section Consignes d'empaquetage - -@cindex packages, creating -The GNU distribution is nascent and may well lack some of your favorite -packages. This section describes how you can help make the distribution -grow. @xref{Contribuer}, for additional information on how you can help. - -Free software packages are usually distributed in the form of @dfn{source -code tarballs}---typically @file{tar.gz} files that contain all the source -files. Adding a package to the distribution means essentially two things: -adding a @dfn{recipe} that describes how to build the package, including a -list of other packages required to build it, and adding @dfn{package -metadata} along with that recipe, such as a description and licensing -information. - -In Guix all this information is embodied in @dfn{package definitions}. -Package definitions provide a high-level view of the package. They are -written using the syntax of the Scheme programming language; in fact, for -each package we define a variable bound to the package definition, and -export that variable from a module (@pxref{Modules de paquets}). However, -in-depth Scheme knowledge is @emph{not} a prerequisite for creating -packages. For more information on package definitions, @pxref{Définition des paquets}. - -Once a package definition is in place, stored in a file in the Guix source -tree, it can be tested using the @command{guix build} command -(@pxref{Invoquer guix build}). For example, assuming the new package is -called @code{gnew}, you may run this command from the Guix build tree -(@pxref{Lancer Guix avant qu'il ne soit installé}): - -@example -./pre-inst-env guix build gnew --keep-failed -@end example - -Using @code{--keep-failed} makes it easier to debug build failures since it -provides access to the failed build tree. Another useful command-line -option when debugging is @code{--log-file}, to access the build log. - -If the package is unknown to the @command{guix} command, it may be that the -source file contains a syntax error, or lacks a @code{define-public} clause -to export the package variable. To figure it out, you may load the module -from Guile to get more information about the actual error: - -@example -./pre-inst-env guile -c '(use-modules (gnu packages gnew))' -@end example - -Once your package builds correctly, please send us a patch -(@pxref{Contribuer}). Well, if you need help, we will be happy to help -you too. Once the patch is committed in the Guix repository, the new -package automatically gets built on the supported platforms by -@url{http://hydra.gnu.org/jobset/gnu/master, our continuous integration -system}. - -@cindex substituter -On peut obtenir la nouvelle définition du paquet simplement en lançant -@command{guix pull} (@pxref{Invoquer guix pull}). Lorsque -@code{hydra.gnu.org} a fini de construire le paquet, l'installation du -paquet y télécharge automatiquement les binaires (@pxref{Substituts}). La -seule intervention humaine requise est pendant la revue et l'application du -correctif. - - -@menu -* Liberté logiciel:: Ce que la distribution peut contenir. -* Conventions de nommage:: Qu'est-ce qu'un bon nom ? -* Numéros de version:: Lorsque le nom n'est pas suffisant. -* Synopsis et descriptions:: Aider les utilisateurs à trouver le bon - paquet. -* Modules python:: Un peu de comédie anglaise. -* Modules perl:: Petites perles. -* Paquets java:: Pause café. -* Polices de caractères:: À fond les fontes. -@end menu - -@node Liberté logiciel -@subsection Liberté logiciel - -@c Adapted from http://www.gnu.org/philosophy/philosophy.html. -@cindex free software -The GNU operating system has been developed so that users can have freedom -in their computing. GNU is @dfn{free software}, meaning that users have the -@url{http://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to -run the program, to study and change the program in source code form, to -redistribute exact copies, and to distribute modified versions. Packages -found in the GNU distribution provide only software that conveys these four -freedoms. - -In addition, the GNU distribution follow the -@url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,free -software distribution guidelines}. Among other things, these guidelines -reject non-free firmware, recommendations of non-free software, and discuss -ways to deal with trademarks and patents. - -Some otherwise free upstream package sources contain a small and optional -subset that violates the above guidelines, for instance because this subset -is itself non-free code. When that happens, the offending items are removed -with appropriate patches or code snippets in the @code{origin} form of the -package (@pxref{Définition des paquets}). This way, @code{guix build --source} -returns the ``freed'' source rather than the unmodified upstream source. - - -@node Conventions de nommage -@subsection Conventions de nommage - -@cindex package name -A package has actually two names associated with it: First, there is the -name of the @emph{Scheme variable}, the one following @code{define-public}. -By this name, the package can be made known in the Scheme code, for instance -as input to another package. Second, there is the string in the @code{name} -field of a package definition. This name is used by package management -commands such as @command{guix package} and @command{guix build}. - -Both are usually the same and correspond to the lowercase conversion of the -project name chosen upstream, with underscores replaced with hyphens. For -instance, GNUnet is available as @code{gnunet}, and SDL_net as -@code{sdl-net}. - -We do not add @code{lib} prefixes for library packages, unless these are -already part of the official project name. But @pxref{Modules python} and -@ref{Modules perl} for special rules concerning modules for the Python and -Perl languages. - -Font package names are handled differently, @pxref{Polices de caractères}. - - -@node Numéros de version -@subsection Numéros de version - -@cindex package version -We usually package only the latest version of a given free software -project. But sometimes, for instance for incompatible library versions, two -(or more) versions of the same package are needed. These require different -Scheme variable names. We use the name as defined in @ref{Conventions de nommage} -for the most recent version; previous versions use the same name, suffixed -by @code{-} and the smallest prefix of the version number that may -distinguish the two versions. - -The name inside the package definition is the same for all versions of a -package and does not contain any version number. - -For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as -follows: - -@example -(define-public gtk+ - (package - (name "gtk+") - (version "3.9.12") - ...)) -(define-public gtk+-2 - (package - (name "gtk+") - (version "2.24.20") - ...)) -@end example -If we also wanted GTK+ 3.8.2, this would be packaged as -@example -(define-public gtk+-3.8 - (package - (name "gtk+") - (version "3.8.2") - ...)) -@end example - -@c See , -@c for a discussion of what follows. -@cindex version number, for VCS snapshots -Occasionally, we package snapshots of upstream's version control system -(VCS) instead of formal releases. This should remain exceptional, because -it is up to upstream developers to clarify what the stable release is. Yet, -it is sometimes necessary. So, what should we put in the @code{version} -field? - -Clearly, we need to make the commit identifier of the VCS snapshot visible -in the version string, but we also need to make sure that the version string -is monotonically increasing so that @command{guix package --upgrade} can -determine which version is newer. Since commit identifiers, notably with -Git, are not monotonically increasing, we add a revision number that we -increase each time we upgrade to a newer snapshot. The resulting version -string looks like this: - -@example -2.0.11-3.cabba9e - ^ ^ ^ - | | `-- upstream commit ID - | | - | `--- Guix package revision - | -latest upstream version -@end example - -It is a good idea to strip commit identifiers in the @code{version} field -to, say, 7 digits. It avoids an aesthetic annoyance (assuming aesthetics -have a role to play here) as well as problems related to OS limits such as -the maximum shebang length (127 bytes for the Linux kernel.) It is best to -use the full commit identifiers in @code{origin}s, though, to avoid -ambiguities. A typical package definition may look like this: - -@example -(define my-package - (let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7") - (revision "1")) ;révision du paquet Guix - (package - (version (git-version "0.9" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "git://example.org/my-package.git") - (commit commit))) - (sha256 (base32 "1mbikn@dots{}")) - (file-name (git-file-name name version)))) - ;; @dots{} - ))) -@end example - -@node Synopsis et descriptions -@subsection Synopsis et descriptions - -@cindex package description -@cindex package synopsis -As we have seen before, each package in GNU@tie{}Guix includes a synopsis -and a description (@pxref{Définition des paquets}). Synopses and descriptions -are important: They are what @command{guix package --search} searches, and a -crucial piece of information to help users determine whether a given package -suits their needs. Consequently, packagers should pay attention to what -goes into them. - -Synopses must start with a capital letter and must not end with a period. -They must not start with ``a'' or ``the'', which usually does not bring -anything; for instance, prefer ``File-frobbing tool'' over ``A tool that -frobs files''. The synopsis should say what the package is---e.g., ``Core -GNU utilities (file, text, shell)''---or what it is used for---e.g., the -synopsis for GNU@tie{}grep is ``Print lines matching a pattern''. - -Keep in mind that the synopsis must be meaningful for a very wide audience. -For example, ``Manipulate alignments in the SAM format'' might make sense -for a seasoned bioinformatics researcher, but might be fairly unhelpful or -even misleading to a non-specialized audience. It is a good idea to come up -with a synopsis that gives an idea of the application domain of the -package. In this example, this might give something like ``Manipulate -nucleotide sequence alignments'', which hopefully gives the user a better -idea of whether this is what they are looking for. - -Descriptions should take between five and ten lines. Use full sentences, -and avoid using acronyms without first introducing them. Please avoid -marketing phrases such as ``world-leading'', ``industrial-strength'', and -``next-generation'', and avoid superlatives like ``the most -advanced''---they are not helpful to users looking for a package and may -even sound suspicious. Instead, try to be factual, mentioning use cases and -features. - -@cindex Texinfo markup, in package descriptions -Descriptions can include Texinfo markup, which is useful to introduce -ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks -(@pxref{Overview,,, texinfo, GNU Texinfo}). However you should be careful -when using some characters for example @samp{@@} and curly braces which are -the basic special characters in Texinfo (@pxref{Special Characters,,, -texinfo, GNU Texinfo}). User interfaces such as @command{guix package ---show} take care of rendering it appropriately. - -Synopses and descriptions are translated by volunteers -@uref{http://translationproject.org/domain/guix-packages.html, at the -Translation Project} so that as many users as possible can read them in -their native language. User interfaces search them and display them in the -language specified by the current locale. - -To allow @command{xgettext} to extract them as translatable strings, -synopses and descriptions @emph{must be literal strings}. This means that -you cannot use @code{string-append} or @code{format} to construct these -strings: - -@lisp -(package - ;; @dots{} - (synopsis "This is translatable") - (description (string-append "This is " "*not*" " translatable."))) -@end lisp - -Translation is a lot of work so, as a packager, please pay even more -attention to your synopses and descriptions as every change may entail -additional work for translators. In order to help them, it is possible to -make recommendations or instructions visible to them by inserting special -comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}): - -@example -;; TRANSLATORS: "X11 resize-and-rotate" should not be translated. -(description "ARandR is designed to provide a simple visual front end -for the X11 resize-and-rotate (RandR) extension. @dots{}") -@end example - - -@node Modules python -@subsection Modules python - -@cindex python -We currently package Python 2 and Python 3, under the Scheme variable names -@code{python-2} and @code{python} as explained in @ref{Numéros de version}. To -avoid confusion and naming clashes with other programming languages, it -seems desirable that the name of a package for a Python module contains the -word @code{python}. - -Some modules are compatible with only one version of Python, others with -both. If the package Foo compiles only with Python 3, we name it -@code{python-foo}; if it compiles only with Python 2, we name it -@code{python2-foo}. If it is compatible with both versions, we create two -packages with the corresponding names. - -If a project already contains the word @code{python}, we drop this; for -instance, the module python-dateutil is packaged under the names -@code{python-dateutil} and @code{python2-dateutil}. If the project name -starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as -described above. - -@subsubsection Specifying Dependencies -@cindex inputs, for Python packages - -Dependency information for Python packages is usually available in the -package source tree, with varying degrees of accuracy: in the -@file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini}. - -Your mission, when writing a recipe for a Python package, is to map these -dependencies to the appropriate type of ``input'' (@pxref{Référence de paquet, -inputs}). Although the @code{pypi} importer normally does a good job -(@pxref{Invoquer guix import}), you may want to check the following check -list to determine which dependency goes where. - -@itemize - -@item -We currently package Python 2 with @code{setuptools} and @code{pip} -installed like Python 3.4 has per default. Thus you don't need to specify -either of these as an input. @command{guix lint} will warn you if you do. - -@item -Python dependencies required at run time go into @code{propagated-inputs}. -They are typically defined with the @code{install_requires} keyword in -@file{setup.py}, or in the @file{requirements.txt} file. - -@item -Python packages required only at build time---e.g., those listed with the -@code{setup_requires} keyword in @file{setup.py}---or only for -testing---e.g., those in @code{tests_require}---go into -@code{native-inputs}. The rationale is that (1) they do not need to be -propagated because they are not needed at run time, and (2) in a -cross-compilation context, it's the ``native'' input that we'd want. - -Examples are the @code{pytest}, @code{mock}, and @code{nose} test -frameworks. Of course if any of these packages is also required at -run-time, it needs to go to @code{propagated-inputs}. - -@item -Anything that does not fall in the previous categories goes to -@code{inputs}, for example programs or C libraries required for building -Python packages containing C extensions. - -@item -If a Python package has optional dependencies (@code{extras_require}), it is -up to you to decide whether to add them or not, based on their -usefulness/overhead ratio (@pxref{Envoyer des correctifs, @command{guix size}}). - -@end itemize - - -@node Modules perl -@subsection Modules perl - -@cindex perl -Perl programs standing for themselves are named as any other package, using -the lowercase upstream name. For Perl packages containing a single class, -we use the lowercase class name, replace all occurrences of @code{::} by -dashes and prepend the prefix @code{perl-}. So the class @code{XML::Parser} -becomes @code{perl-xml-parser}. Modules containing several classes keep -their lowercase upstream name and are also prepended by @code{perl-}. Such -modules tend to have the word @code{perl} somewhere in their name, which -gets dropped in favor of the prefix. For instance, @code{libwww-perl} -becomes @code{perl-libwww}. - - -@node Paquets java -@subsection Paquets java - -@cindex java -Java programs standing for themselves are named as any other package, using -the lowercase upstream name. - -To avoid confusion and naming clashes with other programming languages, it -is desirable that the name of a package for a Java package is prefixed with -@code{java-}. If a project already contains the word @code{java}, we drop -this; for instance, the package @code{ngsjava} is packaged under the name -@code{java-ngs}. - -For Java packages containing a single class or a small class hierarchy, we -use the lowercase class name, replace all occurrences of @code{.} by dashes -and prepend the prefix @code{java-}. So the class @code{apache.commons.cli} -becomes package @code{java-apache-commons-cli}. - - -@node Polices de caractères -@subsection Polices de caractères - -@cindex polices -For fonts that are in general not installed by a user for typesetting -purposes, or that are distributed as part of a larger software package, we -rely on the general packaging rules for software; for instance, this applies -to the fonts delivered as part of the X.Org system or fonts that are part of -TeX Live. - -To make it easier for a user to search for fonts, names for other packages -containing only fonts are constructed as follows, independently of the -upstream package name. - -The name of a package containing only one font family starts with -@code{font-}; it is followed by the foundry name and a dash @code{-} if the -foundry is known, and the font family name, in which spaces are replaced by -dashes (and as usual, all upper case letters are transformed to lower -case). For example, the Gentium font family by SIL is packaged under the -name @code{font-sil-gentium}. - -For a package containing several font families, the name of the collection -is used in the place of the font family name. For instance, the Liberation -fonts consist of three families, Liberation Sans, Liberation Serif and -Liberation Mono. These could be packaged separately under the names -@code{font-liberation-sans} and so on; but as they are distributed together -under a common name, we prefer to package them together as -@code{font-liberation}. - -In the case where several formats of the same font family or font collection -are packaged separately, a short form of the format, prepended by a dash, is -added to the package name. We use @code{-ttf} for TrueType fonts, -@code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1 -fonts. - - - @node Bootstrapping -@section Bootstrapping +@chapter Bootstrapping @c Adapted from the ELS 2013 paper. -@cindex bootstrapping +@cindex bootstrap -Bootstrapping in our context refers to how the distribution gets built -``from nothing''. Remember that the build environment of a derivation -contains nothing but its declared inputs (@pxref{Introduction}). So there's -an obvious chicken-and-egg problem: how does the first package get built? -How does the first compiler get compiled? Note that this is a question of -interest only to the curious hacker, not to the regular user, so you can -shamelessly skip this section if you consider yourself a ``regular user''. +Dans notre contexte, le bootstrap se réfère à la manière dont la +distribution est construite « à partir de rien ». Rappelez-vous que +l'environnement de construction d'une dérivation ne contient rien d'autre +que les entrées déclarées (@pxref{Introduction}). Donc il y a un problème +évident de poule et d'œuf : comment le premier paquet est-il construit ? +Comment le premier compilateur est-il construit ? Remarquez que c'est une +question qui intéressera uniquement le hacker curieux, pas l'utilisateur +normal, donc vous pouvez sauter cette section sans avoir honte si vous vous +considérez comme un « utilisateur normal ». -@cindex bootstrap binaries -The GNU system is primarily made of C code, with libc at its core. The GNU -build system itself assumes the availability of a Bourne shell and -command-line tools provided by GNU Coreutils, Awk, Findutils, `sed', and -`grep'. Furthermore, build programs---programs that run @code{./configure}, -@code{make}, etc.---are written in Guile Scheme (@pxref{Dérivations}). -Consequently, to be able to build anything at all, from scratch, Guix relies -on pre-built binaries of Guile, GCC, Binutils, libc, and the other packages -mentioned above---the @dfn{bootstrap binaries}. +@cindex binaires de bootstrap +Le système GNU est surtout fait de code C, avec la libc en son cœur. Le +système de construction GNU lui-même suppose la disponibilité d'un shell +Bourne et d'outils en ligne de commande fournis par GNU Coreutils, Awk, +Findutils, sed et grep. En plus, les programmes de construction — les +programmes qui exécutent @code{./configure}, @code{make} etc — sont écrits +en Guile Scheme (@pxref{Dérivations}). En conséquence, pour pouvoir +construire quoi que ce soit, de zéro, Guix a besoin de binaire +pré-construits de Guile, GCC, Binutils, la libc et des autres paquets +mentionnés plus haut — les @dfn{binaires de bootstrap}. -These bootstrap binaries are ``taken for granted'', though we can also -re-create them if needed (more on that later). +Ces binaires de bootstrap sont pris comme des acquis, bien qu'on puisse les +recréer (ça arrive plus tard). -@unnumberedsubsec Preparing to Use the Bootstrap Binaries +@unnumberedsec Se préparer à utiliser les binaires de bootstrap @c As of Emacs 24.3, Info-mode displays the image, but since it's a @c large image, it's hard to scroll. Oh well. -@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap -derivations} +@image{images/bootstrap-graph,6in,,Graphe de dépendance des premières +dérivations de bootstrap} -The figure above shows the very beginning of the dependency graph of the -distribution, corresponding to the package definitions of the @code{(gnu -packages bootstrap)} module. A similar figure can be generated with -@command{guix graph} (@pxref{Invoquer guix graph}), along the lines of: +La figure ci-dessus montre le tout début du graphe de dépendances de la +distribution, correspondant aux définitions des paquets du module @code{(gnu +packages bootstrap)}. Une figure similaire peut être générée avec +@command{guix graph} (@pxref{Invoquer guix graph}), de cette manière : @example guix graph -t derivation \ @@ -24699,54 +25067,57 @@ guix graph -t derivation \ | dot -Tps > t.ps @end example -At this level of detail, things are slightly complex. First, Guile itself -consists of an ELF executable, along with many source and compiled Scheme -files that are dynamically loaded when it runs. This gets stored in the -@file{guile-2.0.7.tar.xz} tarball shown in this graph. This tarball is part -of Guix's ``source'' distribution, and gets inserted into the store with -@code{add-to-store} (@pxref{Le dépôt}). +À ce niveau de détails, les choses sont légèrement complexes. Tout d'abord, +Guile lui-même consiste en an exécutable ELF, avec plusieurs fichiers Scheme +sources et compilés qui sont chargés dynamiquement quand il est exécuté. +Cela est stocké dans l'archive @file{guile-2.0.7.tar.xz} montrée dans ce +graphe. Cette archive fait parti de la distribution « source » de Guix, et +est insérée dans le dépôt avec @code{add-to-store} (@pxref{Le dépôt}). -But how do we write a derivation that unpacks this tarball and adds it to -the store? To solve this problem, the @code{guile-bootstrap-2.0.drv} -derivation---the first one that gets built---uses @code{bash} as its -builder, which runs @code{build-bootstrap-guile.sh}, which in turn calls -@code{tar} to unpack the tarball. Thus, @file{bash}, @file{tar}, @file{xz}, -and @file{mkdir} are statically-linked binaries, also part of the Guix -source distribution, whose sole purpose is to allow the Guile tarball to be -unpacked. +Mais comment écrire une dérivation qui décompresse cette archive et l'ajoute +au dépôt ? Pour résoudre ce problème, la dérivation +@code{guile-bootstrap-2.0.drv} — la première qui est construite — utilise +@code{bash} comme constructeur, qui lance @code{build-bootstrap-guile.sh}, +qui à son tour appelle @code{tar} pour décompresser l'archive. Ainsi, +@file{bash}, @file{tar}, @file{xz} et @file{mkdir} sont des binaires liés +statiquement, qui font aussi partie de la distribution source de Guix, dont +le seul but est de permettre à l'archive de Guile d'être décompressée. -Once @code{guile-bootstrap-2.0.drv} is built, we have a functioning Guile -that can be used to run subsequent build programs. Its first task is to -download tarballs containing the other pre-built binaries---this is what the -@code{.tar.xz.drv} derivations do. Guix modules such as -@code{ftp-client.scm} are used for this purpose. The -@code{module-import.drv} derivations import those modules in a directory in -the store, using the original layout. The @code{module-import-compiled.drv} -derivations compile those modules, and write them in an output directory -with the right layout. This corresponds to the @code{#:modules} argument of -@code{build-expression->derivation} (@pxref{Dérivations}). +Une fois que @code{guile-bootstrap-2.0.drv} est construit, nous avons un +Guile fonctionnel qui peut être utilisé pour exécuter les programmes de +construction suivants. Sa première tâche consiste à télécharger les +archives contenant les autres binaires pré-construits — c'est ce que la +dérivation @code{.tar.xz.drv} fait. Les modules Guix comme +@code{ftp-client.scm} sont utilisés pour cela. Les dérivations +@code{module-import.drv} importent ces modules dans un répertoire dans le +dépôt, en utilisant la disposition d'origine. Les dérivations +@code{module-import-compiled.drv} compilent ces modules, et les écrivent +dans un répertoire de sortie avec le bon agencement. Cela correspond à +l'argument @code{#:modules} de @code{build-expression->derivation} +(@pxref{Dérivations}). -Finally, the various tarballs are unpacked by the derivations -@code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, etc., at which -point we have a working C tool chain. +Enfin, les diverses archives sont décompressées par les dérivations +@code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, etc, à partir de +quoi nous avons une chaîne de compilation C fonctionnelle. -@unnumberedsubsec Building the Build Tools +@unnumberedsec Construire les outils de construction -Bootstrapping is complete when we have a full tool chain that does not -depend on the pre-built bootstrap tools discussed above. This no-dependency -requirement is verified by checking whether the files of the final tool -chain contain references to the @file{/gnu/store} directories of the -bootstrap inputs. The process that leads to this ``final'' tool chain is -described by the package definitions found in the @code{(gnu packages -commencement)} module. +Le bootstrap est complet lorsque nous avons une chaîne d'outils complète qui +ne dépend pas des outils de bootstrap pré-construits dont on vient de +parler. Ce pré-requis d'indépendance est vérifié en s'assurant que les +fichiers de la chaîne d'outil finale ne contiennent pas de référence vers +les répertoires @file{/gnu/store} des entrées de bootstrap. Le processus +qui mène à cette chaîne d'outils « finale » est décrit par les définitions +de paquets qui se trouvent dans le module @code{(gnu packages +commencement)}. -The @command{guix graph} command allows us to ``zoom out'' compared to the -graph above, by looking at the level of package objects instead of -individual derivations---remember that a package may translate to several -derivations, typically one derivation to download its source, one to build -the Guile modules it needs, and one to actually build the package from -source. The command: +La commande @command{guix graph} nous permet de « dézoomer » comparé au +graphe précédent, en regardant au niveau des objets de paquets plutôt que +des dérivations individuelles — rappelez-vous qu'un paquet peut se traduire +en plusieurs dérivations, typiquement une dérivation pour télécharger ses +sources, une pour les modules Guile dont il a besoin et une pour +effectivement compiler le paquet depuis les sources. La commande : @example guix graph -t bag \ @@ -24755,123 +25126,132 @@ guix graph -t bag \ @end example @noindent -produces the dependency graph leading to the ``final'' C -library@footnote{You may notice the @code{glibc-intermediate} label, -suggesting that it is not @emph{quite} final, but as a good approximation, -we will consider it final.}, depicted below. +produit le graphe de dépendances qui mène à la bibliothèque C « finale +»@footnote{Vous remarquerez qu'elle s'appelle @code{glibc-intermediate}, ce +qui suggère qu'elle n'est pas @emph{tout à fait} finale, mais c'est une +bonne approximation tout de même.}, que voici : @image{images/bootstrap-packages,6in,,Graphe de dépendance des premiers paquets} @c See . -The first tool that gets built with the bootstrap binaries is -GNU@tie{}Make---noted @code{make-boot0} above---which is a prerequisite for -all the following packages. From there Findutils and Diffutils get built. +Le premier outil construit avec les binaires de bootstrap est GNU@tie{}Make +— appelé @code{make-boot0} ci-dessus — qui est un prérequis de tous les +paquets suivants . Ensuite, Findutils et Diffutils sont construits. -Then come the first-stage Binutils and GCC, built as pseudo cross -tools---i.e., with @code{--target} equal to @code{--host}. They are used to -build libc. Thanks to this cross-build trick, this libc is guaranteed not -to hold any reference to the initial tool chain. +Ensuite vient la première passe de Binutils et GCC, construits comme des +pseudo outils croisés — c.-à-d.@: dont @code{--target} égal à +@code{--host}. Ils sont utilisés pour construire la libc. Grâce à cette +astuce de compilation croisée, la libc est garantie de ne contenir aucune +référence à la chaîne d'outils initiale. -From there the final Binutils and GCC (not shown above) are built. GCC uses -@code{ld} from the final Binutils, and links programs against the just-built -libc. This tool chain is used to build the other packages used by Guix and -by the GNU Build System: Guile, Bash, Coreutils, etc. +À partir de là, les Bintulis et GCC finaux (pas visibles ci-dessus) sont +construits. GCC utilise @code{ld} du Binutils final et lie les programme +avec la libc qui vient d'être construite. Cette chaîne d'outils est +utilisée pour construire les autres paquets utilisés par Guix et par le +système de construction de GNU : Guile, Bash, Coreutils, etc. -And voilà! At this point we have the complete set of build tools that the -GNU Build System expects. These are in the @code{%final-inputs} variable of -the @code{(gnu packages commencement)} module, and are implicitly used by -any package that uses @code{gnu-build-system} (@pxref{Systèmes de construction, -@code{gnu-build-system}}). +Et voilà ! À partir de là nous avons l'ensemble complet des outils auxquels +s'attend le système de construction GNU. Ils sont dans la variable +@code{%final-inputs} du module @code{(gnu packages commencement)} et sont +implicitement utilisés par tous les paquets qui utilisent le +@code{gnu-build-system} (@pxref{Systèmes de construction, @code{gnu-build-system}}). -@unnumberedsubsec Building the Bootstrap Binaries +@unnumberedsec Construire les binaires de bootstrap -@cindex bootstrap binaries -Because the final tool chain does not depend on the bootstrap binaries, -those rarely need to be updated. Nevertheless, it is useful to have an -automated way to produce them, should an update occur, and this is what the -@code{(gnu packages make-bootstrap)} module provides. +@cindex binaires de bootstrap +Comme la chaîne d'outils finale ne dépend pas des binaires de bootstrap, ils +ont rarement besoin d'être mis à jour. Cependant, il est utile d'avoir une +manière de faire cela automatiquement, dans le cas d'une mise à jour et +c'est ce que le module @code{(gnu packages make-bootstrap)} fournit. -The following command builds the tarballs containing the bootstrap binaries -(Guile, Binutils, GCC, libc, and a tarball containing a mixture of Coreutils -and other basic command-line tools): +La commande suivante construit les archives contenant les binaires de +bootstrap (Guile, Binutils, GCC, la libc et une archive contenant un mélange +de Coreutils et d'autres outils en ligne de commande de base) : @example guix build bootstrap-tarballs @end example -The generated tarballs are those that should be referred to in the -@code{(gnu packages bootstrap)} module mentioned at the beginning of this -section. +Les archives générées sont celles qui devraient être référencées dans le +module @code{(gnu packages bootstrap)} au début de cette section. -Still here? Then perhaps by now you've started to wonder: when do we reach a -fixed point? That is an interesting question! The answer is unknown, but if -you would like to investigate further (and have significant computational -and storage resources to do so), then let us know. +Vous êtes toujours là ? Alors peut-être que maintenant vous vous demandez, +quand est-ce qu'on atteint un point fixe ? C'est une question intéressante +! La réponse est inconnue, mais si vous voulez enquêter plus profondément +(et que vous avez les ressources en puissance de calcul et en capacité de +stockage pour cela), dites-le nous. -@unnumberedsubsec Reducing the Set of Bootstrap Binaries +@unnumberedsec Réduire l'ensemble des binaires de bootstrap -Our bootstrap binaries currently include GCC, Guile, etc. That's a lot of -binary code! Why is that a problem? It's a problem because these big chunks -of binary code are practically non-auditable, which makes it hard to -establish what source code produced them. Every unauditable binary also -leaves us vulnerable to compiler backdoors as described by Ken Thompson in -the 1984 paper @emph{Reflections on Trusting Trust}. +Nous binaires de bootstrap incluent actuellement GCC, Guile, etc. C'est +beaucoup de code binaire ! Pourquoi est-ce un problème ? C'est un problème +parce que ces gros morceaux de code binaire sont en pratique impossibles à +auditer, ce qui fait qu'il est difficile d'établir quel code source les a +produit. Chaque binaire non auditable nous rend aussi vulnérable à des +portes dérobées dans les compilateurs comme le décrit Ken Thompson dans le +papier de 1984 @emph{Reflections on Trusting Trust}. -This is mitigated by the fact that our bootstrap binaries were generated -from an earlier Guix revision. Nevertheless it lacks the level of -transparency that we get in the rest of the package dependency graph, where -Guix always gives us a source-to-binary mapping. Thus, our goal is to -reduce the set of bootstrap binaries to the bare minimum. +Cela est rendu moins inquiétant par le fait que les binaires de bootstrap +ont été générés par une révision antérieure de Guix. Cependant, il leur +manque le niveau de transparence que l'on obtient avec le reste des paquets +du graphe de dépendance, où Guix nous donne toujours une correspondance +source-binaire. Ainsi, notre but est de réduire l'ensemble des binaires de +bootstrap au minimum. -The @uref{http://bootstrappable.org, Bootstrappable.org web site} lists -on-going projects to do that. One of these is about replacing the bootstrap -GCC with a sequence of assemblers, interpreters, and compilers of increasing -complexity, which could be built from source starting from a simple and -auditable assembler. Your help is welcome! +Le @uref{http://bootstrappable.org, site web Bootstrappable.org} liste les +projets en cours à ce sujet. L'un d'entre eux parle de remplacer le GCC de +bootstrap par une série d'assembleurs, d'interpréteurs et de compilateurs +d'une complexité croissante, qui pourraient être construits à partir des +sources à partir d'un assembleur simple et auditable. Votre aide est la +bienvenue ! @node Porter -@section Porter vers une nouvelle plateforme +@chapter Porter vers une nouvelle plateforme -As discussed above, the GNU distribution is self-contained, and -self-containment is achieved by relying on pre-built ``bootstrap binaries'' -(@pxref{Bootstrapping}). These binaries are specific to an operating system -kernel, CPU architecture, and application binary interface (ABI). Thus, to -port the distribution to a platform that is not yet supported, one must -build those bootstrap binaries, and update the @code{(gnu packages -bootstrap)} module to use them on that platform. +Comme nous en avons discuté plus haut, la distribution GNU est +auto-contenue, et cela est possible en se basant sur des « binaires de +bootstrap » pré-construits (@pxref{Bootstrapping}). Ces binaires sont +spécifiques au noyau de système d'exploitation, à l'architecture CPU et à +l'interface applicative binaire (ABI). Ainsi, pour porter la distribution +sur une plateforme qui n'est pas encore supportée, on doit construire ces +binaires de bootstrap et mettre à jour le module @code{(gnu packages +bootstrap)} pour les utiliser sur cette plateforme. -Fortunately, Guix can @emph{cross compile} those bootstrap binaries. When -everything goes well, and assuming the GNU tool chain supports the target -platform, this can be as simple as running a command like this one: +Heureusement, Guix peut effectuer une @emph{compilation croisée} de ces +binaires de bootstrap. Lorsque tout va bien, et en supposant que la chaîne +d'outils GNU supporte la plateforme cible, cela peut être aussi simple que +de lancer une commande comme ceci : @example guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs @end example -For this to work, the @code{glibc-dynamic-linker} procedure in @code{(gnu -packages bootstrap)} must be augmented to return the right file name for -libc's dynamic linker on that platform; likewise, -@code{system->linux-architecture} in @code{(gnu packages linux)} must be -taught about the new platform. +Pour que cela fonctione, la procédure @code{glibc-dynamic-linker} dans +@code{(gnu packages bootstrap)} doit être augmentée pour renvoyer le bon nom +de fichier pour l'éditeur de lien dynamique de la libc sur cette plateforme +; de même, il faut indiquer cette nouvelle platefore à +@code{system->linux-architecture} dans @code{(gnu packages linux)}. -Once these are built, the @code{(gnu packages bootstrap)} module needs to be -updated to refer to these binaries on the target platform. That is, the -hashes and URLs of the bootstrap tarballs for the new platform must be added -alongside those of the currently supported platforms. The bootstrap Guile -tarball is treated specially: it is expected to be available locally, and -@file{gnu/local.mk} has rules to download it for the supported -architectures; a rule for the new platform must be added as well. +Une fois qu'ils sont construits, le module @code{(gnu packages bootstrap)} +doit être mis à jour pour se référer à ces binaires sur la plateforme +cible. C'est à dire que les hashs et les URL des archives de bootstrap pour +la nouvelle plateforme doivent être ajoutés avec ceux des plateformes +actuellement supportées. L'archive de bootstrap de Guile est traitée +séparément : elle doit être disponible localement, et @file{gnu/local.mk} a +une règle pour la télécharger pour les architectures supportées ; vous devez +également ajouter une règle pour la nouvelle plateforme. -In practice, there may be some complications. First, it may be that the -extended GNU triplet that specifies an ABI (like the @code{eabi} suffix -above) is not recognized by all the GNU tools. Typically, glibc recognizes -some of these, whereas GCC uses an extra @code{--with-abi} configure flag -(see @code{gcc.scm} for examples of how to handle this). Second, some of -the required packages could fail to build for that platform. Lastly, the -generated binaries could be broken for some reason. +En pratique, il peut y avoir des complications. Déjà, il se peut que le +triplet GNU étendu qui spécifie l'ABI (comme le suffixe @code{eabi} +ci-dessus) ne soit pas reconnu par tous les outils GNU. Typiquement, la +glibc en reconnais certains, alors que GCC utilise un drapeau de configure +@code{--with-abi} supplémentaire (voir @code{gcc.scm} pour trouver des +exemples où ce cas est géré). Ensuite, certains des paquets requis +pourraient échouer à se construire pour cette plateforme. Enfin, les +binaires générés pourraient être cassé pour une raison ou une autre. @c ********************************************************************* @include contributing.fr.texi @@ -24881,7 +25261,7 @@ generated binaries could be broken for some reason. @chapter Remerciements Guix se base sur le @uref{http://nixos.org/nix/, gestionnaire de paquets -Nix} conçu et implémenté par Eelco Dolstra, avec des constributions d'autres +Nix} conçu et implémenté par Eelco Dolstra, avec des contributions d'autres personnes (voir le fichier @file{nix/AUTHORS} dans Guix). Nix a inventé la gestion de paquet fonctionnelle et promu des fonctionnalités sans précédents comme les mises à jour de paquets transactionnelles et les retours en diff --git a/po/doc/guix-manual.fr.po b/po/doc/guix-manual.fr.po index 3faeed8ee4..3b164eead5 100644 --- a/po/doc/guix-manual.fr.po +++ b/po/doc/guix-manual.fr.po @@ -2,13 +2,14 @@ # Copyright (C) 2013-2018 the authors of Guix (msgids) # This file is distributed under the same license as the guix package. # Julien Lepiller , 2018. +# Simon Tournier , 2018. # msgid "" msgstr "" "Project-Id-Version: guix-manual 0.16.0.1\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" "POT-Creation-Date: 2018-11-28 22:35+0100\n" -"PO-Revision-Date: 2018-12-02 12:30+0100\n" +"PO-Revision-Date: 2019-02-17 19:00+0100\n" "Last-Translator: Julien Lepiller \n" "Language-Team: French \n" "Language: fr\n" @@ -240,7 +241,7 @@ msgstr "Ensuite, lancez @command{./configure} comme d'habitude. Assurez-vous de #. type: Plain text #: doc/contributing.texi:100 msgid "Finally, you have to invoke @code{make check} to run tests (@pxref{Running the Test Suite}). If anything fails, take a look at installation instructions (@pxref{Installation}) or send a message to the @email{guix-devel@@gnu.org, mailing list}." -msgstr "Finalement, vous devez invoquer @code{make check} pour lancer les tests (@pxref{Lancer la suite de tests}). Si quelque chose échoue, jetez un œil aux instructions d'installation (@pxref{Installation}) ou envoyez un message à la list @email{guix-devel@@gnu.org}." +msgstr "Finalement, vous devez invoquer @code{make check} pour lancer les tests (@pxref{Lancer la suite de tests}). Si quelque chose échoue, jetez un œil aux instructions d'installation (@pxref{Installation}) ou envoyez un message à la liste @email{guix-devel@@gnu.org}." #. type: Plain text #: doc/contributing.texi:109 @@ -574,7 +575,7 @@ msgstr "Si vous éditez du code avec Vim, nous recommandons de lancer @code{:set #. type: Plain text #: doc/contributing.texi:319 msgid "We require all top-level procedures to carry a docstring. This requirement can be relaxed for simple private procedures in the @code{(guix build @dots{})} name space, though." -msgstr "Nous demandons que toutes les procédure de premier niveau contiennent une chaîne de documentation. Ce pré-requis peut être relâché pour les procédures privées simples dans l'espace de nom @code{(guix build @dots{})} cependant." +msgstr "Nous demandons que toutes les procédure de premier niveau contiennent une chaîne de documentation. Ce prérequis peut être relâché pour les procédures privées simples dans l'espace de nom @code{(guix build @dots{})} cependant." #. type: Plain text #: doc/contributing.texi:322 @@ -684,7 +685,7 @@ msgstr "entre 300 et 1 200 paquets dépendants" #. type: table #: doc/contributing.texi:407 msgid "@code{staging} branch (non-disruptive changes). This branch is intended to be merged in @code{master} every 3 weeks or so. Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch (say, @code{gnome-updates})." -msgstr "branche @code{staging} (changemets non-disruptifs). Cette branche devrait être fusionnées dans @code{master} tous les 3 semaines. Les changements par thèmes (par exemple une mise à jour de la pile GNOME) peuvent aller dans une branche spécifique (disons, @code{gnome-updates})." +msgstr "branche @code{staging} (changements non-disruptifs). Cette branche devrait être fusionnées dans @code{master} tous les 3 semaines. Les changements par thèmes (par exemple une mise à jour de la pile GNOME) peuvent aller dans une branche spécifique (disons, @code{gnome-updates})." #. type: item #: doc/contributing.texi:408 @@ -863,7 +864,7 @@ msgstr "guix package : (guix.fr)Invoquer guix package" #. type: menuentry #: doc/guix.texi:73 msgid "Installing, removing, and upgrading packages." -msgstr "Intaller, supprimer et mettre à jour des paquets." +msgstr "Installer, supprimer et mettre à jour des paquets." #. type: menuentry #: doc/guix.texi:73 @@ -1343,7 +1344,7 @@ msgstr "Authentification des substituts" #. type: menuentry #: doc/guix.texi:168 doc/guix.texi:2323 msgid "How Guix verifies substitutes." -msgstr "Coment Guix vérifie les substituts." +msgstr "Comment Guix vérifie les substituts." #. type: subsection #: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2463 doc/guix.texi:2464 @@ -1427,7 +1428,7 @@ msgstr "Interface de bas-niveau avec les dérivations de paquets." #: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:5187 doc/guix.texi:5188 #, no-wrap msgid "The Store Monad" -msgstr "La monad du dépôt" +msgstr "La monade du dépôt" #. type: menuentry #: doc/guix.texi:178 doc/guix.texi:3723 @@ -2111,7 +2112,7 @@ msgstr "Services réseau" #. type: menuentry #: doc/guix.texi:278 doc/guix.texi:10706 msgid "Network setup, SSH daemon, etc." -msgstr "Paramétres réseau, démon SSH, etc." +msgstr "Paramètres réseau, démon SSH, etc." #. type: subsubsection #: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:12645 @@ -2635,7 +2636,7 @@ msgstr "site officiel" #. type: Plain text #: doc/guix.texi:399 msgid "GNU Guix is available for download from its website at @url{http://www.gnu.org/software/guix/}. This section describes the software requirements of Guix, as well as how to install it and get ready to use it." -msgstr "GNU Guix est disponible au téléchargement depuis son site web sur @url{http://www.gnu.org/software/guix/}. Cette section décrit les pré-requis logiciels de Guix ainsi que la manière de l'installer et de se préparer à l'utiliser." +msgstr "GNU Guix est disponible au téléchargement depuis son site web sur @url{http://www.gnu.org/software/guix/}. Cette section décrit les prérequis logiciels de Guix ainsi que la manière de l'installer et de se préparer à l'utiliser." #. type: Plain text #: doc/guix.texi:404 @@ -2679,7 +2680,7 @@ msgstr "script d'installation" #. type: Plain text #: doc/guix.texi:436 msgid "This section describes how to install Guix on an arbitrary system from a self-contained tarball providing binaries for Guix and for all its dependencies. This is often quicker than installing from source, which is described in the next sections. The only requirement is to have GNU@tie{}tar and Xz." -msgstr "Cette section décrit comment intaller Guix sur un système quelconque depuis un archive autonome qui fournit les binaires pour Guix et toutes ses dépendances. C'est souvent plus rapide que d'installer depuis les sources, ce qui est décrit dans les sections suivantes. Le seul pré-requis est d'avoir GNU@tie{}tar et Xz." +msgstr "Cette section décrit comment installer Guix sur un système quelconque depuis un archive autonome qui fournit les binaires pour Guix et toutes ses dépendances. C'est souvent plus rapide que d'installer depuis les sources, ce qui est décrit dans les sections suivantes. Le seul prérequis est d'avoir GNU@tie{}tar et Xz." #. type: Plain text #: doc/guix.texi:441 @@ -2759,7 +2760,7 @@ msgstr "" #. type: enumerate #: doc/guix.texi:487 msgid "This creates @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}. The latter contains a ready-to-use profile for @code{root} (see next step.)" -msgstr "Cela crée @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}. Ce deuxième dossier contient un profil pret à être utilisé pour @code{root} (voir les étapes suivantes)." +msgstr "Cela crée @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}. Ce deuxième dossier contient un profil prêt à être utilisé pour @code{root} (voir les étapes suivantes)." #. type: enumerate #: doc/guix.texi:490 @@ -2914,7 +2915,7 @@ msgstr "substituts, autorisations" #. type: enumerate #: doc/guix.texi:587 msgid "To use substitutes from @code{hydra.gnu.org} or one of its mirrors (@pxref{Substitutes}), authorize them:" -msgstr "Pour utiliser les substituts de @code{hydra.gnu.org} ou l'un de ses mirroirs (@pxref{Substituts}), autorisez-les :" +msgstr "Pour utiliser les substituts de @code{hydra.gnu.org} ou l'un de ses miroirs (@pxref{Substituts}), autorisez-les :" #. type: example #: doc/guix.texi:591 @@ -2955,7 +2956,7 @@ msgstr "Le paquet @code{guix} doit rester disponible dans le profil de @code{roo #. type: Plain text #: doc/guix.texi:615 msgid "The binary installation tarball can be (re)produced and verified simply by running the following command in the Guix source tree:" -msgstr "L'archive d'installation binaire peut être (re)produite et vérifiée simplement en lançaint la commande suivante dans l'arborescence des sources de Guix :" +msgstr "L'archive d'installation binaire peut être (re)produite et vérifiée simplement en lançant la commande suivante dans l'arborescence des sources de Guix :" #. type: example #: doc/guix.texi:618 @@ -2986,7 +2987,7 @@ msgstr "@xref{Invoking guix pack}, pour plus d'info sur cet outil pratique." #. type: Plain text #: doc/guix.texi:637 msgid "This section lists requirements when building Guix from source. The build procedure for Guix is the same as for other GNU software, and is not covered here. Please see the files @file{README} and @file{INSTALL} in the Guix source tree for additional details." -msgstr "Cette section dresse la liste des pré-requis pour la construction de Guix depuis les sources. La procédure de construction pour Guix est la même que pour les autres logiciels GNU, et n'est pas expliquée ici. Regardez les fichiers @file{README} et @file{INSTALL} dans l'arborescence des sources de Guix pour plus de détails." +msgstr "Cette section dresse la liste des prérequis pour la construction de Guix depuis les sources. La procédure de construction pour Guix est la même que pour les autres logiciels GNU, et n'est pas expliquée ici. Regardez les fichiers @file{README} et @file{INSTALL} dans l'arborescence des sources de Guix pour plus de détails." #. type: Plain text #: doc/guix.texi:639 @@ -3055,7 +3056,7 @@ msgstr "Installer @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JS #. type: itemize #: doc/guix.texi:676 msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.10.2 or later." -msgstr "Le support pour la décharge de construction (@pxref{Daemon Offload Setup}) et @command{guix copy} (@pxref{Invoking guix copy}) dépend de @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.10.2 ou ulltérieure." +msgstr "Le support pour la décharge de construction (@pxref{Daemon Offload Setup}) et @command{guix copy} (@pxref{Invoking guix copy}) dépend de @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.10.2 ou ultérieure." #. type: itemize #: doc/guix.texi:680 @@ -3153,7 +3154,7 @@ msgstr "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n" #. type: Plain text #: doc/guix.texi:747 msgid "By default, tests results are displayed at a file level. In order to see the details of every individual test cases, it is possible to define the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:" -msgstr "Par défaut, les résultats des tests sont affichés au niveau du fichier. Pour voir les détails de chaque cas de test individuel, il est possible de définire la variable makefile @code{SCM_LOG_DRIVER_FLAGS} comme dans cet exemple :" +msgstr "Par défaut, les résultats des tests sont affichés au niveau du fichier. Pour voir les détails de chaque cas de test individuel, il est possible de définir la variable makefile @code{SCM_LOG_DRIVER_FLAGS} comme dans cet exemple :" #. type: example #: doc/guix.texi:750 @@ -3730,7 +3731,7 @@ msgstr "sécurité, guix-daemon" #. type: Plain text #: doc/guix.texi:1140 msgid "Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that can be installed on a system where SELinux is enabled, in order to label Guix files and to specify the expected behavior of the daemon. Since GuixSD does not provide an SELinux base policy, the daemon policy cannot be used on GuixSD." -msgstr "Guix inclus un fichier de politique SELniux dans @file{etc/guix-daemon.cil} qui peut être installé sur un système où SELinux est activé pour que les fichiers Guix soient étiquetés et pour spécifier le comportement attendu du démon. Comme GuixSD ne fournit pas de politique SELniux de base, la politique du démon ne peut pas être utilisée sur GuixSD@." +msgstr "Guix inclus un fichier de politique SELinux dans @file{etc/guix-daemon.cil} qui peut être installé sur un système où SELinux est activé pour que les fichiers Guix soient étiquetés et pour spécifier le comportement attendu du démon. Comme GuixSD ne fournit pas de politique SELinux de base, la politique du démon ne peut pas être utilisée sur GuixSD@." #. type: subsubsection #: doc/guix.texi:1141 @@ -3785,7 +3786,7 @@ msgstr "SELinux, limites" #. type: Plain text #: doc/guix.texi:1171 msgid "This policy is not perfect. Here is a list of limitations or quirks that should be considered when deploying the provided SELinux policy for the Guix daemon." -msgstr "La politique n'et pas parfaite. Voici une liste de limitations et de bizarreries qui vous devriez prendre en compte avant de déployer la politique SELinux fournie pour le démon Guix." +msgstr "La politique n'est pas parfaite. Voici une liste de limitations et de bizarreries qui vous devriez prendre en compte avant de déployer la politique SELinux fournie pour le démon Guix." #. type: enumerate #: doc/guix.texi:1178 @@ -3913,7 +3914,7 @@ msgstr "daemon-substitute-urls" #. type: table #: doc/guix.texi:1285 msgid "Consider @var{urls} the default whitespace-separated list of substitute source URLs. When this option is omitted, @indicateurl{https://mirror.hydra.gnu.org https://hydra.gnu.org} is used (@code{mirror.hydra.gnu.org} is a mirror of @code{hydra.gnu.org})." -msgstr "Considèrer @var{urls} comme la liste séparée par des espaces des URL des sources de substituts par défaut. Lorsque cette option est omise, @indicateurl{https://mirror.hydra.gnu.org https://hydra.gnu.org} est utilisé (@code{mirror.hydra.gnu.org} est un mirroire de @code{hydra.gnu.org})." +msgstr "Considérer @var{urls} comme la liste séparée par des espaces des URL des sources de substituts par défaut. Lorsque cette option est omise, @indicateurl{https://mirror.hydra.gnu.org https://hydra.gnu.org} est utilisé (@code{mirror.hydra.gnu.org} est un miroir de @code{hydra.gnu.org})." #. type: table #: doc/guix.texi:1288 @@ -4047,7 +4048,7 @@ msgstr "Construire chaque dérivations @var{N} fois à la suite, et lever une er #. type: table #: doc/guix.texi:1352 doc/guix.texi:6608 msgid "When used in conjunction with @option{--keep-failed}, the differing output is kept in the store, under @file{/gnu/store/@dots{}-check}. This makes it easy to look for differences between the two results." -msgstr "Lorsqu'utilisé avec @option{--keep-failed}, la sourtie différente est gardée dans le dépôt sous @file{/gnu/store/@dots{}-check}. Cela rend plus facile l'étude des différences entre les deux résultats." +msgstr "Lorsqu'utilisé avec @option{--keep-failed}, la sortie différente est gardée dans le dépôt sous @file{/gnu/store/@dots{}-check}. Cela rend plus facile l'étude des différences entre les deux résultats." #. type: item #: doc/guix.texi:1353 @@ -4446,7 +4447,7 @@ msgstr "Comme il est extensible, NSS supporte des @dfn{greffons} qui fournissent #. type: Plain text #: doc/guix.texi:1574 msgid "When they perform a name lookup---for instance by calling the @code{getaddrinfo} function in C---applications first try to connect to the nscd; on success, nscd performs name lookups on their behalf. If the nscd is not running, then they perform the name lookup by themselves, by loading the name lookup services into their own address space and running it. These name lookup services---the @file{libnss_*.so} files---are @code{dlopen}'d, but they may come from the host system's C library, rather than from the C library the application is linked against (the C library coming from Guix)." -msgstr "Lorsqu'ils essayent d'effectuer une résolution de nom — par exemple en appelant la fonction @code{getaddrinfo} en C — les applications essayent d'abord de se connecter au nscd ; en cas de réussite, nscd effectue la résolution de nom pour eux. Si le nscd ne tourne pas, alors ils effectue la résolution eux-même, en changeant les service de résolution dans leur propre espace d'adressage et en le lançant. Ce services de résolution de noms — les fichiers @file{libnns_*.so} — sont @code{dlopen}és mais ils peuvent provenir de la bibliothèque C du système, plutôt que de la bibliothèque C à laquelle l'application est liée (la bibliothèque C de Guix)." +msgstr "Lorsqu'ils essayent d'effectuer une résolution de nom — par exemple en appelant la fonction @code{getaddrinfo} en C — les applications essayent d'abord de se connecter au nscd ; en cas de réussite, nscd effectue la résolution de nom pour eux. Si le nscd ne tourne pas, alors ils effectuent la résolution eux-mêmes, en changeant les service de résolution dans leur propre espace d'adressage et en le lançant. Ce services de résolution de noms — les fichiers @file{libnns_*.so} — sont @code{dlopen}és mais ils peuvent provenir de la bibliothèque C du système, plutôt que de la bibliothèque C à laquelle l'application est liée (la bibliothèque C de Guix)." #. type: Plain text #: doc/guix.texi:1579 @@ -4495,7 +4496,7 @@ msgstr "xterm" #. type: Plain text #: doc/guix.texi:1611 msgid "Older programs such as @command{xterm} do not use Fontconfig and instead rely on server-side font rendering. Such programs require to specify a full name of a font using XLFD (X Logical Font Description), like this:" -msgstr "Les vieux programmes comme @command{xterm} n'utilisent pas fontconfig et s'appuient sur le rendu du côté du serveur. Ces programmes ont besoin de spécifier le nom complet de la police en utlisant XLFD (X Logical Font Description), comme ceci :" +msgstr "Les vieux programmes comme @command{xterm} n'utilisent pas fontconfig et s'appuient sur le rendu du côté du serveur. Ces programmes ont besoin de spécifier le nom complet de la police en utilisant XLFD (X Logical Font Description), comme ceci :" #. type: example #: doc/guix.texi:1614 @@ -4578,7 +4579,7 @@ msgstr "Lorsque vous installez les paquets Emacs avec Guix, les fichiers elisp p #. type: Plain text #: doc/guix.texi:1667 msgid "By default, Emacs (installed with Guix) ``knows'' where these packages are placed, so you do not need to perform any configuration. If, for some reason, you want to avoid auto-loading Emacs packages installed with Guix, you can do so by running Emacs with @code{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual})." -msgstr "Par défaut, Emacs (installé avec Guix) « sait » où ces paquets ce trouvent, donc vous n'avez pas besoin de le configurer. Si, pour quelque raison que ce soit, vous souhaitez éviter de charger automatiquement les paquets Emacs installés avec Guix, vous pouvez le faire en lançaint Emacs avec l'option @code{--no-site-file} (@pxref{Init File,,, emacs, The GNU Emacs Manual})." +msgstr "Par défaut, Emacs (installé avec Guix) « sait » où ces paquets ce trouvent, donc vous n'avez pas besoin de le configurer. Si, pour quelque raison que ce soit, vous souhaitez éviter de charger automatiquement les paquets Emacs installés avec Guix, vous pouvez le faire en lançant Emacs avec l'option @code{--no-site-file} (@pxref{Init File,,, emacs, The GNU Emacs Manual})." #. type: subsection #: doc/guix.texi:1668 @@ -4649,7 +4650,7 @@ msgstr "Plutôt que de se rapporter à ces répertoires, les utilisateurs ont le #. type: Plain text #: doc/guix.texi:1749 msgid "For example, @code{alice} installs GCC 4.7.2. As a result, @file{/home/alice/.guix-profile/bin/gcc} points to @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}. Now, on the same machine, @code{bob} had already installed GCC 4.8.0. The profile of @code{bob} simply continues to point to @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc}---i.e., both versions of GCC coexist on the same system without any interference." -msgstr "Par exemple, @code{alice} installe GCC 4.7.2. Il en résulte que @file{/home/alice/.guix-profile/bin/gcc} pointe vers @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}. Maintenant, sur la même machine, @code{bob} a déjà intallé GCC 4.8.0. Le profil de @code{bob} continue simplement de pointer vers @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc} — c.-à-d.@: les deux versions de GCC coexistent surs le même système sans aucune interférence." +msgstr "Par exemple, @code{alice} installe GCC 4.7.2. Il en résulte que @file{/home/alice/.guix-profile/bin/gcc} pointe vers @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}. Maintenant, sur la même machine, @code{bob} a déjà installé GCC 4.8.0. Le profil de @code{bob} continue simplement de pointer vers @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc} — c.-à-d.@: les deux versions de GCC coexistent surs le même système sans aucune interférence." #. type: Plain text #: doc/guix.texi:1753 @@ -5227,7 +5228,7 @@ msgstr "" #. type: table #: doc/guix.texi:2091 msgid "The last command above reports about the @code{GUILE_LOAD_PATH} variable, even though, taken individually, neither @file{foo} nor @file{bar} would lead to that recommendation." -msgstr "La dernière commande ci-dessus montre la variable @code{GUILE_LOAD_PATH} bien que, pris individuellement, ni @file{foo} ni @file{bar} n'auraient donné cette recommendation." +msgstr "La dernière commande ci-dessus montre la variable @code{GUILE_LOAD_PATH} bien que, pris individuellement, ni @file{foo} ni @file{bar} n'auraient donné cette recommandation." #. type: item #: doc/guix.texi:2093 doc/guix.texi:2891 doc/guix.texi:3290 @@ -5300,7 +5301,7 @@ msgstr "--bootstrap" #. type: table #: doc/guix.texi:2114 msgid "Use the bootstrap Guile to build the profile. This option is only useful to distribution developers." -msgstr "Utiliser le programme d'amorçage Guile pour compiler le profil. Cette option n'est utile que pour les développeurs de la distriibution." +msgstr "Utiliser le programme d'amorçage Guile pour compiler le profil. Cette option n'est utile que pour les développeurs de la distribution." #. type: Plain text #: doc/guix.texi:2120 @@ -5589,12 +5590,12 @@ msgstr "Et @code{--list-generations=1,8,2} renvoie les trois générations dans #: doc/guix.texi:2258 #, no-wrap msgid "@emph{Ranges}. @code{--list-generations=2..9} prints the" -msgstr "@emph{Des interval}. @code{--list-generations=2..9} affiche les" +msgstr "@emph{Des intervalles}. @code{--list-generations=2..9} affiche les" #. type: itemize #: doc/guix.texi:2261 msgid "specified generations and everything in between. Note that the start of a range must be smaller than its end." -msgstr "générations demandées et tout ce qui se trouvent entre elles. Remarquez que le début d'un interval doit être plus petit que sa fin." +msgstr "générations demandées et tout ce qui se trouvent entre elles. Remarquez que le début d'un intervalle doit être plus petit que sa fin." #. type: itemize #: doc/guix.texi:2265 @@ -5610,7 +5611,7 @@ msgstr "@emph{Des durées}. Vous pouvez aussi récupérer les derniers @emph{N} #. type: itemize #: doc/guix.texi:2270 msgid "or months by passing an integer along with the first letter of the duration. For example, @code{--list-generations=20d} lists generations that are up to 20 days old." -msgstr "ou moins en passant un entier avec la première lettre de la durée (en anglais : d, w ou m). Par exemple @code{--list-generations=20d} liste les générations qui sont agées d'au plus 20 jours." +msgstr "ou moins en passant un entier avec la première lettre de la durée (en anglais : d, w ou m). Par exemple @code{--list-generations=20d} liste les générations qui sont âgées d'au plus 20 jours." #. type: item #: doc/guix.texi:2272 @@ -5713,7 +5714,7 @@ msgstr "ACL (liste de contrôle d'accès), pour les substituts" #. type: Plain text #: doc/guix.texi:2368 msgid "To allow Guix to download substitutes from @code{hydra.gnu.org} or a mirror thereof, you must add its public key to the access control list (ACL) of archive imports, using the @command{guix archive} command (@pxref{Invoking guix archive}). Doing so implies that you trust @code{hydra.gnu.org} to not be compromised and to serve genuine substitutes." -msgstr "Pour permettre à Guix de télécharger les substituts depuis @code{hydra.gnu.org} ou un mirroir, vous devez ajouter sa clef publique à la liste de contrôle d'accès (ACL) des imports d'archives, avec la commande @command{guix archive} (@pxref{Invoking guix archive}). Cela implique que vous faîtes confiance à @code{hydra.gnu.org} pour ne pas être compromis et vous servir des substituts authentiques." +msgstr "Pour permettre à Guix de télécharger les substituts depuis @code{hydra.gnu.org} ou un miroir, vous devez ajouter sa clef publique à la liste de contrôle d'accès (ACL) des imports d'archives, avec la commande @command{guix archive} (@pxref{Invoking guix archive}). Cela implique que vous faîtes confiance à @code{hydra.gnu.org} pour ne pas être compromis et vous servir des substituts authentiques." #. type: Plain text #: doc/guix.texi:2375 @@ -5827,12 +5828,12 @@ msgstr "--substitute-urls=\"https://a.example.org https://b.example.org\"\n" #. type: Plain text #: doc/guix.texi:2455 msgid "If the ACL contains only the key for @code{b.example.org}, and if @code{a.example.org} happens to serve the @emph{exact same} substitutes, then Guix will download substitutes from @code{a.example.org} because it comes first in the list and can be considered a mirror of @code{b.example.org}. In practice, independent build machines usually produce the same binaries, thanks to bit-reproducible builds (see below)." -msgstr "Si l'ACL contient uniquement la clef de @code{b.example.org}, et si @code{a.example.org} sert @emph{exactement les mêmes} substituts, alors Guix téléchargera les substituts de @code{a.example.org} parce qu'il vient en premier dans la liste et peut être considéré comme un mirroir de @code{b.example.org}. En pratique, des machines de constructions produisent souvent les mêmes binaires grâce à des construction reproductibles au bit près (voir plus bas)." +msgstr "Si l'ACL contient uniquement la clef de @code{b.example.org}, et si @code{a.example.org} sert @emph{exactement les mêmes} substituts, alors Guix téléchargera les substituts de @code{a.example.org} parce qu'il vient en premier dans la liste et peut être considéré comme un miroir de @code{b.example.org}. En pratique, des machines de constructions produisent souvent les mêmes binaires grâce à des construction reproductibles au bit près (voir plus bas)." #. type: Plain text #: doc/guix.texi:2462 msgid "When using HTTPS, the server's X.509 certificate is @emph{not} validated (in other words, the server is not authenticated), contrary to what HTTPS clients such as Web browsers usually do. This is because Guix authenticates substitute information itself, as explained above, which is what we care about (whereas X.509 certificates are about authenticating bindings between domain names and public keys.)" -msgstr "Lorsque vous utilisez HTTPS, le certificat X.509 du serveur n'est @emph{pas} validé (en d'autre termes, le serveur n'est pas authentifié), contrairement à ce que des clients HTTPS comme des navigateurs web font habituellement. Cela est dû au fait que Guix authentifie les informations sur les substituts eux-même, comme expliqué plus haut, ce dont on se soucie réellement (alors que les certificats X.509 authentifie la relation entre nom de domaine et clef publique)." +msgstr "Lorsque vous utilisez HTTPS, le certificat X.509 du serveur n'est @emph{pas} validé (en d'autre termes, le serveur n'est pas authentifié), contrairement à ce que des clients HTTPS comme des navigateurs web font habituellement. Cela est dû au fait que Guix authentifie les informations sur les substituts eux-mêmes, comme expliqué plus haut, ce dont on se soucie réellement (alors que les certificats X.509 authentifie la relation entre nom de domaine et clef publique)." #. type: Plain text #: doc/guix.texi:2474 @@ -5863,7 +5864,7 @@ msgstr "confiance, en des binaires pré-construits" #. type: Plain text #: doc/guix.texi:2516 msgid "Today, each individual's control over their own computing is at the mercy of institutions, corporations, and groups with enough power and determination to subvert the computing infrastructure and exploit its weaknesses. While using @code{hydra.gnu.org} substitutes can be convenient, we encourage users to also build on their own, or even run their own build farm, such that @code{hydra.gnu.org} is less of an interesting target. One way to help is by publishing the software you build using @command{guix publish} so that others have one more choice of server to download substitutes from (@pxref{Invoking guix publish})." -msgstr "De nos jours, le contrôle individuel sur son utilisation propre de l'informatique est à la merci d'institutions, de sociétés et de groupes avec assez de pouvoir et de détermination pour contourner les infrastructures informatiques et exploiter leurs faiblesses. Bien qu'utiliser les substituts de @code{hydra.gnu.org} soit pratique, nous encourageons les utilisateurs à construire aussi par eux-même, voir à faire tourner leur propre ferme de construction, pour que @code{hydra.gnu.org} devienne une cible moins intéressante. Une façon d'aider est de publier les logiciels que vous construisez avec @command{guix publish} pour que les autres aient plus de choix de serveurs où télécharger les substituts (@pxref{Invoking guix publish})." +msgstr "De nos jours, le contrôle individuel sur son utilisation propre de l'informatique est à la merci d'institutions, de sociétés et de groupes avec assez de pouvoir et de détermination pour contourner les infrastructures informatiques et exploiter leurs faiblesses. Bien qu'utiliser les substituts de @code{hydra.gnu.org} soit pratique, nous encourageons les utilisateurs à construire aussi par eux-mêmes, voir à faire tourner leur propre ferme de construction, pour que @code{hydra.gnu.org} devienne une cible moins intéressante. Une façon d'aider est de publier les logiciels que vous construisez avec @command{guix publish} pour que les autres aient plus de choix de serveurs où télécharger les substituts (@pxref{Invoking guix publish})." #. type: Plain text #: doc/guix.texi:2528 @@ -5967,7 +5968,7 @@ msgstr "Le ramasse-miettes a un ensemble de @dfn{racines} connues : tout fichier #. type: Plain text #: doc/guix.texi:2614 msgid "Prior to running @code{guix gc --collect-garbage} to make space, it is often useful to remove old generations from user profiles; that way, old package builds referenced by those generations can be reclaimed. This is achieved by running @code{guix package --delete-generations} (@pxref{Invoking guix package})." -msgstr "Avant de lancer @code{guix gc --collect-garbage} pour faire de la place, c'est souvent utile de supprimer les anciennes génération des profils utilisateurs ; de cette façon les anciennes constructions de paquets référencées par ces générations peuvent être glanées. Cela se fait en lançaint @code{guix package --delete-generations} (@pxref{Invoking guix package})." +msgstr "Avant de lancer @code{guix gc --collect-garbage} pour faire de la place, c'est souvent utile de supprimer les anciennes génération des profils utilisateurs ; de cette façon les anciennes constructions de paquets référencées par ces générations peuvent être glanées. Cela se fait en lançant @code{guix package --delete-generations} (@pxref{Invoking guix package})." #. type: Plain text #: doc/guix.texi:2618 @@ -6662,7 +6663,7 @@ msgstr "Corollaire : si vous utilisez un canal externe et que le canal est cass #. type: quotation #: doc/guix.texi:3001 msgid "You've been warned! Having said this, we believe external channels are a practical way to exert your freedom to augment Guix' package collection and to share your improvements, which are basic tenets of @uref{https://www.gnu.org/philosophy/free-sw.html, free software}. Please email us at @email{guix-devel@@gnu.org} if you'd like to discuss this." -msgstr "Vous avez été prévenus ! Maintenant, nous pensons que des canaux externes sont une manière pratique d'exercer votre liberté pour augmenter la collection de paquets de Guix et de partager vos améliorations, qui sont les principes de bases du @uref{https://www.gnu.org/philosophy/free-sw.html, logiciel libe}. Contactez-nous par courriel sur @email{guix-devel@@gnu.org} si vous souhaitez discuter à ce propos." +msgstr "Vous avez été prévenus ! Maintenant, nous pensons que des canaux externes sont une manière pratique d'exercer votre liberté pour augmenter la collection de paquets de Guix et de partager vos améliorations, qui sont les principes de bases du @uref{https://www.gnu.org/philosophy/free-sw.html, logiciel libre}. Contactez-nous par courriel sur @email{guix-devel@@gnu.org} si vous souhaitez discuter à ce propos." #. type: Plain text #: doc/guix.texi:3007 @@ -7255,7 +7256,7 @@ msgstr "lot de logiciels" #. type: Plain text #: doc/guix.texi:3321 msgid "The @command{guix pack} command creates a shrink-wrapped @dfn{pack} or @dfn{software bundle}: it creates a tarball or some other archive containing the binaries of the software you're interested in, and all its dependencies. The resulting archive can be used on any machine that does not have Guix, and people can run the exact same binaries as those you have with Guix. The pack itself is created in a bit-reproducible fashion, so anyone can verify that it really contains the build results that you pretend to be shipping." -msgstr "La commande @command{guix pack} crée un @dfn{pack} ou @dfn{lot de logiciels} : elle crée une archive tar ou un autre type d'archive contenunt les binaires pour le logiciel qui vous intéresse ainsi que ses dépendances. L'archive qui en résulte peut être utilisée sur toutes les machines qui n'ont pas Guix et les gens peuvent lancer exactement les mêmes binaires que ceux que vous avez avec Guix. Le pack lui-même est créé d'une manière reproductible au bit près, pour que n'importe qui puisse vérifier qu'il contient bien les résultats que vous prétendez proposer." +msgstr "La commande @command{guix pack} crée un @dfn{pack} ou @dfn{lot de logiciels} : elle crée une archive tar ou un autre type d'archive contenant les binaires pour le logiciel qui vous intéresse ainsi que ses dépendances. L'archive qui en résulte peut être utilisée sur toutes les machines qui n'ont pas Guix et les gens peuvent lancer exactement les mêmes binaires que ceux que vous avez avec Guix. Le pack lui-même est créé d'une manière reproductible au bit près, pour que n'importe qui puisse vérifier qu'il contient bien les résultats que vous prétendez proposer." #. type: Plain text #: doc/guix.texi:3324 @@ -8087,7 +8088,7 @@ msgstr "unquote-splicing" #. type: itemize #: doc/guix.texi:3855 msgid "Again, @code{`} (a backquote, synonymous with @code{quasiquote}) allows us to introduce a literal list in the @code{inputs} field, while @code{,} (a comma, synonymous with @code{unquote}) allows us to insert a value in that list (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference Manual})." -msgstr "De nouveau, @code{`} (un accent grave, synonyme de la fonction @code{quasiquote}) nous permet d'introduire une liste litérale dans le champ @code{inputs}, tandis que @code{,} (une virgule, synonyme de la fonction @code{unquote}) nous permet d'insérer une valeur dans cette liste (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference Manual})." +msgstr "De nouveau, @code{`} (un accent grave, synonyme de la fonction @code{quasiquote}) nous permet d'introduire une liste littérale dans le champ @code{inputs}, tandis que @code{,} (une virgule, synonyme de la fonction @code{unquote}) nous permet d'insérer une valeur dans cette liste (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference Manual})." #. type: itemize #: doc/guix.texi:3859 @@ -8107,7 +8108,7 @@ msgstr "@xref{package Reference}, pour une description complète des champs poss #. type: Plain text #: doc/guix.texi:3877 msgid "Once a package definition is in place, the package may actually be built using the @code{guix build} command-line tool (@pxref{Invoking guix build}), troubleshooting any build failures you encounter (@pxref{Debugging Build Failures}). You can easily jump back to the package definition using the @command{guix edit} command (@pxref{Invoking guix edit}). @xref{Packaging Guidelines}, for more information on how to test package definitions, and @ref{Invoking guix lint}, for information on how to check a definition for style conformance." -msgstr "Lorsqu'une définition de paquet est en place, le paquet peut enfin être construit avec l'outil en ligne de commande @code{guix build} (@pxref{Invoking guix build}), pour résoudre les échecs de construction que vous pourriez rencontrer (@pxref{Debugging Build Failures}). Vous pouvez aisément revenir à la définition du paquet avec la commande @command{guix edit} (@pxref{Invoking guix edit}). @xref{Packaging Guidelines}, pour plus d'inforamtions sur la manière de tester des définitions de paquets et @ref{Invoking guix lint}, pour des informations sur la manière de vérifier que la définition réspecte les conventions de style." +msgstr "Lorsqu'une définition de paquet est en place, le paquet peut enfin être construit avec l'outil en ligne de commande @code{guix build} (@pxref{Invoking guix build}), pour résoudre les échecs de construction que vous pourriez rencontrer (@pxref{Debugging Build Failures}). Vous pouvez aisément revenir à la définition du paquet avec la commande @command{guix edit} (@pxref{Invoking guix edit}). @xref{Packaging Guidelines}, pour plus d'informations sur la manière de tester des définitions de paquets et @ref{Invoking guix lint}, pour des informations sur la manière de vérifier que la définition respecte les conventions de style." #. type: vindex #: doc/guix.texi:3877 @@ -8160,7 +8161,7 @@ msgstr "{Procédure Scheme} package-cross-derivation @var{store} @" #. type: deffn #: doc/guix.texi:3912 msgid "@var{package} @var{target} [@var{system}] Return the @code{} object of @var{package} cross-built from @var{system} to @var{target}." -msgstr "@var{paquet} @var{cible} [@var{système}] renvoie l'objet @code{} duof @var{paquet} construit depuis @var{système} pour @var{cible}." +msgstr "@var{paquet} @var{cible} [@var{système}] renvoie l'objet @code{} du @var{paquet} construit depuis @var{système} pour @var{cible}." #. type: deffn #: doc/guix.texi:3917 @@ -8936,7 +8937,7 @@ msgstr "Lorsque le paquet d'origine ne fournit pas de fichier de construction An #. type: defvr #: doc/guix.texi:4327 msgid "The @code{#:main-class} parameter can be used with the minimal ant buildfile to specify the main class of the resulting jar. This makes the jar file executable. The @code{#:test-include} parameter can be used to specify the list of junit tests to run. It defaults to @code{(list \"**/*Test.java\")}. The @code{#:test-exclude} can be used to disable some tests. It defaults to @code{(list \"**/Abstract*.java\")}, because abstract classes cannot be run as tests." -msgstr "Le paramètre @code{#:main-class} peut être utilisé avec le fichier de construction minimal pour spécifier la classe principale du jar. Cela rend le fichier jar exécutable. Le paramètre @code{#:test-include} peut être utilisé pour spécifier la liste des tests junit à lancer. Il vaut par défaut @code{(list \"**/*Test.java\")}. Le paramètre @code{#:test-exclude} peut être utilisé pour désactiver certains tests. Sa valeur par défaut est @code{(list \"**/Abstract*.java\")}, parce que les classes abstraites ne peuvent pas être utilisées comme des tests." +msgstr "Le paramètre @code{#:main-class} peut être utilisé avec le fichier de construction minimal pour spécifier la classe principale du jar. Cela rend le fichier jar exécutable. Le paramètre @code{#:test-include} peut être utilisé pour spécifier la liste des tests junits à lancer. Il vaut par défaut @code{(list \"**/*Test.java\")}. Le paramètre @code{#:test-exclude} peut être utilisé pour désactiver certains tests. Sa valeur par défaut est @code{(list \"**/Abstract*.java\")}, parce que les classes abstraites ne peuvent pas être utilisées comme des tests." #. type: defvr #: doc/guix.texi:4331 @@ -9282,7 +9283,7 @@ msgstr "Cette variable est exportée par @code{(guix build-system ocaml)}. Elle #. type: defvr #: doc/guix.texi:4596 msgid "When the package has a @file{setup.ml} file present at the top-level, it will run @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} and @code{ocaml setup.ml -install}. The build system will assume that this file was generated by @uref{http://oasis.forge.ocamlcore.org/, OASIS} and will take care of setting the prefix and enabling tests if they are not disabled. You can pass configure and build flags with the @code{#:configure-flags} and @code{#:build-flags}. The @code{#:test-flags} key can be passed to change the set of flags used to enable tests. The @code{#:use-make?} key can be used to bypass this system in the build and install phases." -msgstr "Lorsqu'un fichier @file{setup.ml} est présent dans le répertoire de plus haut niveau, elle lancera @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} et @code{ocaml setup.ml -install}. Le système de construction supposera que ces fichiers ont été générés par @uref{http://oasis.forge.ocamlcore.org/, OASIS} et prendra soin d'initialiser le préfixe et d'activer les tests s'ils ne sont pas désactivés. Vous pouvez passer des drapeaux de configuration et de consturction avec @code{#:configure-flags} et @code{#:build-flags}. La clef @code{#:test-flags} peut être passée pour changer l'ensemble des drapeaux utilisés pour activer les tests. La clef @code{#:use-make?} peut être utilisée pour outrepasser ce système dans les phases de construction et d'installation." +msgstr "Lorsqu'un fichier @file{setup.ml} est présent dans le répertoire de plus haut niveau, elle lancera @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} et @code{ocaml setup.ml -install}. Le système de construction supposera que ces fichiers ont été générés par @uref{http://oasis.forge.ocamlcore.org/, OASIS} et prendra soin d'initialiser le préfixe et d'activer les tests s'ils ne sont pas désactivés. Vous pouvez passer des drapeaux de configuration et de construction avec @code{#:configure-flags} et @code{#:build-flags}. La clef @code{#:test-flags} peut être passée pour changer l'ensemble des drapeaux utilisés pour activer les tests. La clef @code{#:use-make?} peut être utilisée pour outrepasser ce système dans les phases de construction et d'installation." #. type: defvr #: doc/guix.texi:4601 @@ -9313,7 +9314,7 @@ msgstr "{Variable Scheme} python-build-system" #. type: defvr #: doc/guix.texi:4628 msgid "This variable is exported by @code{(guix build-system python)}. It implements the more or less standard build procedure used by Python packages, which consists in running @code{python setup.py build} and then @code{python setup.py install --prefix=/gnu/store/@dots{}}." -msgstr "Cette variable est exportée par @code{(guix build-system python)}. Elle implémente la procédure de construction plus ou moins standarde utilisée pour les paquets Python, qui consiste à lancer @code{python setup.py build} puis @code{python setup.py install --prefix=/gnu/store/@dots{}}." +msgstr "Cette variable est exportée par @code{(guix build-system python)}. Elle implémente la procédure de construction plus ou moins standard utilisée pour les paquets Python, qui consiste à lancer @code{python setup.py build} puis @code{python setup.py install --prefix=/gnu/store/@dots{}}." #. type: defvr #: doc/guix.texi:4632 @@ -9339,7 +9340,7 @@ msgstr "{Variable Scheme} perl-build-system" #. type: defvr #: doc/guix.texi:4657 msgid "This variable is exported by @code{(guix build-system perl)}. It implements the standard build procedure for Perl packages, which either consists in running @code{perl Build.PL --prefix=/gnu/store/@dots{}}, followed by @code{Build} and @code{Build install}; or in running @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, followed by @code{make} and @code{make install}, depending on which of @code{Build.PL} or @code{Makefile.PL} is present in the package distribution. Preference is given to the former if both @code{Build.PL} and @code{Makefile.PL} exist in the package distribution. This preference can be reversed by specifying @code{#t} for the @code{#:make-maker?} parameter." -msgstr "Cette variable est exportée par @code{(guix build-system perl)}. Elle implémente la procédure de construction standarde des paquets Perl, qui consiste soit à lancer @code{perl Build.PL --prefix=/gnu/store/@dots{}}, suivi de @code{Build} et @code{Build install} ; ou à lancer @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, suivi de @code{make} et @code{make install}, en fonction de la présence de @code{Build.PL} ou @code{Makefile.PL} dans la distribution du paquet. Le premier a la préférence si @code{Build.PL} et @code{Makefile.PL} existent tous deux dans la distribution du paquet. Cette préférence peut être inversée en spécifiant @code{#t} pour le paramètre @code{#:make-maker?}." +msgstr "Cette variable est exportée par @code{(guix build-system perl)}. Elle implémente la procédure de construction standard des paquets Perl, qui consiste soit à lancer @code{perl Build.PL --prefix=/gnu/store/@dots{}}, suivi de @code{Build} et @code{Build install} ; ou à lancer @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, suivi de @code{make} et @code{make install}, en fonction de la présence de @code{Build.PL} ou @code{Makefile.PL} dans la distribution du paquet. Le premier a la préférence si @code{Build.PL} et @code{Makefile.PL} existent tous deux dans la distribution du paquet. Cette préférence peut être inversée en spécifiant @code{#t} pour le paramètre @code{#:make-maker?}." #. type: defvr #: doc/guix.texi:4661 @@ -9798,7 +9799,7 @@ msgstr "Construit @var{derivaton} (ne liste d'objets @code{} ou de c #. type: Plain text #: doc/guix.texi:5002 msgid "Note that the @code{(guix monads)} module provides a monad as well as monadic versions of the above procedures, with the goal of making it more convenient to work with code that accesses the store (@pxref{The Store Monad})." -msgstr "Remarque que le module @code{(guix monads)} fournit une monad ainsi que des version monadiques des procédures précédentes, avec le but de rendre plus facile de travailler avec le code qui accède au dépôt (@pxref{The Store Monad})." +msgstr "Remarque que le module @code{(guix monads)} fournit une monade ainsi que des version monadiques des procédures précédentes, avec le but de rendre plus facile de travailler avec le code qui accède au dépôt (@pxref{The Store Monad})." #. type: i{#1} #: doc/guix.texi:5005 @@ -10068,7 +10069,7 @@ msgstr "fonctions monadiques" #. type: Plain text #: doc/guix.texi:5214 msgid "This is where the @code{(guix monads)} module comes in. This module provides a framework for working with @dfn{monads}, and a particularly useful monad for our uses, the @dfn{store monad}. Monads are a construct that allows two things: associating ``context'' with values (in our case, the context is the store), and building sequences of computations (here computations include accesses to the store). Values in a monad---values that carry this additional context---are called @dfn{monadic values}; procedures that return such values are called @dfn{monadic procedures}." -msgstr "C'est là que le module @code{(guix monads)} arrive à la rescousse. Ce module fournit un cadre pour travailler avec des @dfn{monads}, en particulier une monad très utile pour notre usage, la @dfn{monad du dépôt}. Les monads sont des constructions qui permettent deux choses : associer un « contexte » avec une valeur (dans notre cas, le contexte est le dépôt) et construire une séquence de calculs (ici les calculs comprennent des accès au dépôt). Les valeurs dans une monad — les valeurs qui contiennent ce contexte supplémentaire — sont appelées des @dfn{valeurs monadiques} ; les procédures qui renvoient ce genre de valeur sont appelées des @dfn{procédures monadiques}." +msgstr "C'est là que le module @code{(guix monads)} arrive à la rescousse. Ce module fournit un cadre pour travailler avec des @dfn{monads}, en particulier une monade très utile pour notre usage, la @dfn{monade du dépôt}. Les monades sont des constructions qui permettent deux choses : associer un « contexte » avec une valeur (dans notre cas, le contexte est le dépôt) et construire une séquence de calculs (ici les calculs comprennent des accès au dépôt). Les valeurs dans une monade — les valeurs qui contiennent ce contexte supplémentaire — sont appelées des @dfn{valeurs monadiques} ; les procédures qui renvoient ce genre de valeur sont appelées des @dfn{procédures monadiques}." #. type: Plain text #: doc/guix.texi:5216 @@ -10145,7 +10146,7 @@ msgstr "" #. type: Plain text #: doc/guix.texi:5263 msgid "Calling the monadic @code{sh-symlink} has no effect. As someone once said, ``you exit a monad like you exit a building on fire: by running''. So, to exit the monad and get the desired effect, one must use @code{run-with-store}:" -msgstr "L'appel à la procédure monadique @code{sh-symlink} n'a aucun effet. En anglais on pourrait dire « you exit a monad like you exit a building on fire: by running »@footnote{NdT : « on sort d'une monad comme d'un immeuble en flamme, en courant ». Le jeu de mot est perdu à la traduction : courrir et lancer utilisent le même verbe @i{run} en anglais.}. Donc, pour sortir de la monad et obtenir l'effet escompté, on doit utiliser @code{run-with-store}." +msgstr "L'appel à la procédure monadique @code{sh-symlink} n'a aucun effet. En anglais on pourrait dire « you exit a monad like you exit a building on fire: by running »@footnote{NdT : « on sort d'une monade comme d'un immeuble en flamme, en courant ». Le jeu de mot est perdu à la traduction : courir et lancer utilisent le même verbe @i{run} en anglais.}. Donc, pour sortir de la monade et obtenir l'effet escompté, on doit utiliser @code{run-with-store}." #. type: example #: doc/guix.texi:5267 @@ -10205,7 +10206,7 @@ msgstr "Remarquez qu'on ne peut pas renvoyer de valeur non monadique dans la con #. type: Plain text #: doc/guix.texi:5298 msgid "The main syntactic forms to deal with monads in general are provided by the @code{(guix monads)} module and are described below." -msgstr "Les formes syntaxiques principales pour utiliser des monads en général sont disponibles dans le module @code{(guix monads)} et sont décrites ci-dessous." +msgstr "Les formes syntaxiques principales pour utiliser des monades en général sont disponibles dans le module @code{(guix monads)} et sont décrites ci-dessous." #. type: deffn #: doc/guix.texi:5299 @@ -10324,7 +10325,7 @@ msgstr "{Système Scheme} mwhen @var{condition} @var{mexp0} @var{mexp*} ..." #. type: deffn #: doc/guix.texi:5363 msgid "When @var{condition} is true, evaluate the sequence of monadic expressions @var{mexp0}..@var{mexp*} as in an @code{mbegin}. When @var{condition} is false, return @code{*unspecified*} in the current monad. Every expression in the sequence must be a monadic expression." -msgstr "Lorsque la @var{condition} est vraie, évalue la séquence des expressions monadiques @var{mexp0}..@var{mexp*} comme dans un @code{mbegin}. Lorsque la @var{condition} est fausse, renvoie @code{*unspecified*} dans la monad actuelle. Cahque expression dans la séquence doit être une expression monadique." +msgstr "Lorsque la @var{condition} est vraie, évalue la séquence des expressions monadiques @var{mexp0}..@var{mexp*} comme dans un @code{mbegin}. Lorsque la @var{condition} est fausse, renvoie @code{*unspecified*} dans la monade actuelle. Chaque expression dans la séquence doit être une expression monadique." #. type: deffn #: doc/guix.texi:5365 @@ -10335,18 +10336,18 @@ msgstr "{Système Scheme} munless @var{condition} @var{mexp0} @var{mexp*} ..." #. type: deffn #: doc/guix.texi:5370 msgid "When @var{condition} is false, evaluate the sequence of monadic expressions @var{mexp0}..@var{mexp*} as in an @code{mbegin}. When @var{condition} is true, return @code{*unspecified*} in the current monad. Every expression in the sequence must be a monadic expression." -msgstr "Lorsque la @var{condition} est fausse, évalue la séquence des expressions monadiques @var{mexp0}..@var{mexp*} comme dans un @code{mbegin}. Lorsque la @var{condition} est vraie, renvoie @code{*unspecified*} dans la monad actuelle. Cahque expression dans la séquence doit être une expression monadique." +msgstr "Lorsque la @var{condition} est fausse, évalue la séquence des expressions monadiques @var{mexp0}..@var{mexp*} comme dans un @code{mbegin}. Lorsque la @var{condition} est vraie, renvoie @code{*unspecified*} dans la monade actuelle. Chaque expression dans la séquence doit être une expression monadique." #. type: cindex #: doc/guix.texi:5372 #, no-wrap msgid "state monad" -msgstr "monad d'état" +msgstr "monade d'état" #. type: Plain text #: doc/guix.texi:5376 msgid "The @code{(guix monads)} module provides the @dfn{state monad}, which allows an additional value---the state---to be @emph{threaded} through monadic procedure calls." -msgstr "Le module @code{(guix monads)} fournit la @dfn{monad d'état} qui permet à une valeur supplémentaire — l'état — d'être enfilée à travers les appels de procédures." +msgstr "Le module @code{(guix monads)} fournit la @dfn{monade d'état} qui permet à une valeur supplémentaire — l'état — d'être enfilée à travers les appels de procédures." #. type: defvr #: doc/guix.texi:5377 @@ -10357,12 +10358,12 @@ msgstr "{Variable Scheme} %state-monad" #. type: defvr #: doc/guix.texi:5380 msgid "The state monad. Procedures in the state monad can access and change the state that is threaded." -msgstr "La monad d'état. les procédure dans la monad d'état peuvent accéder et modifier l'état qui est enfilé." +msgstr "La monade d'état. les procédure dans la monade d'état peuvent accéder et modifier l'état qui est enfilé." #. type: defvr #: doc/guix.texi:5384 msgid "Consider the example below. The @code{square} procedure returns a value in the state monad. It returns the square of its argument, but also increments the current state value:" -msgstr "Considérez l'exemple ci-dessous. La procédure @code{square} renvoie une valeur dans la monad d'état. Elle renvoie le carré de son argument, mais incrémente aussi la valeur actuelle de l'état :" +msgstr "Considérez l'exemple ci-dessous. La procédure @code{square} renvoie une valeur dans la monade d'état. Elle renvoie le carré de son argument, mais incrémente aussi la valeur actuelle de l'état :" #. type: example #: doc/guix.texi:5391 @@ -10457,7 +10458,7 @@ msgstr "Lance la valeur monadique @var{mval} avec @var{state} comme valeur initi #. type: Plain text #: doc/guix.texi:5427 msgid "The main interface to the store monad, provided by the @code{(guix store)} module, is as follows." -msgstr "L'interface principale avec la monad du dépôt, fournit par le module @code{(guix store)}, est la suivante." +msgstr "L'interface principale avec la monade du dépôt, fournit par le module @code{(guix store)}, est la suivante." #. type: defvr #: doc/guix.texi:5428 @@ -10468,12 +10469,12 @@ msgstr "{Variable Scheme} %store-monad" #. type: defvr #: doc/guix.texi:5430 msgid "The store monad---an alias for @var{%state-monad}." -msgstr "La monad du dépôt — un alias pour @var{%state-monad}." +msgstr "La monade du dépôt — un alias pour @var{%state-monad}." #. type: defvr #: doc/guix.texi:5434 msgid "Values in the store monad encapsulate accesses to the store. When its effect is needed, a value of the store monad must be ``evaluated'' by passing it to the @code{run-with-store} procedure (see below.)" -msgstr "Les valeurs dans la monad du dépôt encapsulent des accès au dépôt. Lorsque son effet est requis, une valeur de la monad du dépôt doit être « évaluée » en la passant à la procédure @code{run-with-store} (voir plus bas)." +msgstr "Les valeurs dans la monade du dépôt encapsulent des accès au dépôt. Lorsque son effet est requis, une valeur de la monade du dépôt doit être « évaluée » en la passant à la procédure @code{run-with-store} (voir plus bas)." #. type: deffn #: doc/guix.texi:5436 @@ -10484,7 +10485,7 @@ msgstr "{Procédure Scheme} run-with-store @var{store} @var{mval} [#:guile-for-b #. type: deffn #: doc/guix.texi:5439 msgid "Run @var{mval}, a monadic value in the store monad, in @var{store}, an open store connection." -msgstr "Lance @var{mval}, une valeur monadique dans la monad du dépôt, dans @var{store}, une connexion ouvert au dépôt." +msgstr "Lance @var{mval}, une valeur monadique dans la monade du dépôt, dans @var{store}, une connexion ouvert au dépôt." #. type: deffn #: doc/guix.texi:5441 @@ -10632,7 +10633,7 @@ msgstr "Pour décrire une dérivation et ses actions de construction, on a typiq #. type: Plain text #: doc/guix.texi:5541 msgid "The @code{(guix gexp)} module implements @dfn{G-expressions}, a form of S-expressions adapted to build expressions. G-expressions, or @dfn{gexps}, consist essentially of three syntactic forms: @code{gexp}, @code{ungexp}, and @code{ungexp-splicing} (or simply: @code{#~}, @code{#$}, and @code{#$@@}), which are comparable to @code{quasiquote}, @code{unquote}, and @code{unquote-splicing}, respectively (@pxref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference Manual}). However, there are major differences:" -msgstr "Le module @code{(guix gexp)} implémente les @dfn{G-expressions}, une forme de S-expression adaptée aux expressions de construction. Les G-expression, ou @dfn{gexps}, consistent en gros en trois formes syntaxiques : @code{gexp}, @code{ungexp} et @code{ungexp-splicing} (ou plus simplement : @code{#~}, @code{#$} et @code{#$@@}), qui sont comparable à @code{quasiquote}, @code{unquote} ett @code{unquote-splicing} respectivement (@pxref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference Manual}). Cependant il y a des différences majeures :" +msgstr "Le module @code{(guix gexp)} implémente les @dfn{G-expressions}, une forme de S-expression adaptée aux expressions de construction. Les G-expression, ou @dfn{gexps}, consistent en gros en trois formes syntaxiques : @code{gexp}, @code{ungexp} et @code{ungexp-splicing} (ou plus simplement : @code{#~}, @code{#$} et @code{#$@@}), qui sont comparable à @code{quasiquote}, @code{unquote} et @code{unquote-splicing} respectivement (@pxref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference Manual}). Cependant il y a des différences majeures :" #. type: itemize #: doc/guix.texi:5546 @@ -10647,7 +10648,7 @@ msgstr "Lorsqu'un objet de haut-niveau comme un paquet ou une dérivation est un #. type: itemize #: doc/guix.texi:5556 msgid "Gexps carry information about the packages or derivations they refer to, and these dependencies are automatically added as inputs to the build processes that use them." -msgstr "Les gexps transportent des informatinos sur les paquets ou les dérivations auxquels elles se réfèrent, et ces dépendances sont automatiquement ajoutées comme des entrées du processus de construction qui les utilise." +msgstr "Les gexps transportent des informations sur les paquets ou les dérivations auxquels elles se réfèrent, et ces dépendances sont automatiquement ajoutées comme des entrées du processus de construction qui les utilise." #. type: cindex #: doc/guix.texi:5558 doc/guix.texi:6062 @@ -10798,7 +10799,7 @@ msgstr "source-module-closure" #. type: Plain text #: doc/guix.texi:5650 msgid "Usually you want the @emph{closure} of the module to be imported---i.e., the module itself and all the modules it depends on---rather than just the module; failing to do that, attempts to use the module will fail because of missing dependent modules. The @code{source-module-closure} procedure computes the closure of a module by looking at its source file headers, which comes in handy in this case:" -msgstr "Typiquement, vous voudriez que la @emph{closure} complète du mondule soit importé — c.-à-d.@: le module lui-même et tous les modules dont il dépend — plutôt que seulement le module ; sinon, une tentative de chargement du module échouera à cause des modules dépendants manquants. La procédure @code{source-module-closure} calcule la closure d'un module en cherchant dans ses en-têtes sources, ce qui est pratique dans ce cas :" +msgstr "Typiquement, vous voudriez que la @emph{closure} complète du module soit importé — c.-à-d.@: le module lui-même et tous les modules dont il dépend — plutôt que seulement le module ; sinon, une tentative de chargement du module échouera à cause des modules dépendants manquants. La procédure @code{source-module-closure} calcule la closure d'un module en cherchant dans ses en-têtes sources, ce qui est pratique dans ce cas :" #. type: example #: doc/guix.texi:5653 @@ -11050,7 +11051,7 @@ msgstr "Marque les gexps définies dans @var{body}@dots{} comme requérant @var{ #. type: deffn #: doc/guix.texi:5747 msgid "Each item in @var{modules} can be the name of a module, such as @code{(guix build utils)}, or it can be a module name, followed by an arrow, followed by a file-like object:" -msgstr "Chaque élément dans @var{module} peut être le nom d'un module, comme @code{(guix build utils)} ou le nom d'un module suivi d'une flêche, suivie d'un objet simili-fichier :" +msgstr "Chaque élément dans @var{module} peut être le nom d'un module, comme @code{(guix build utils)} ou le nom d'un module suivi d'une flèche, suivie d'un objet simili-fichier :" #. type: example #: doc/guix.texi:5753 @@ -12015,7 +12016,7 @@ msgstr "De même, lorsque @var{version} est omis, la chaîne de version est inf #. type: table #: doc/guix.texi:6391 msgid "This option allows users to try out versions of packages other than the one provided by the distribution. The example below downloads @file{ed-1.7.tar.gz} from a GNU mirror and uses that as the source for the @code{ed} package:" -msgstr "Cette option permet aux utilisateurs d'essayer des version des paquets différentes de celles fournies par la distribution. L'exemple ci-dessous télécharge @file{ed-1.7.tar.g} depuis un mirroir GNU et l'utilise comme source pour le paquet @code{ed} :" +msgstr "Cette option permet aux utilisateurs d'essayer des version des paquets différentes de celles fournies par la distribution. L'exemple ci-dessous télécharge @file{ed-1.7.tar.g} depuis un miroir GNU et l'utilise comme source pour le paquet @code{ed} :" #. type: example #: doc/guix.texi:6394 @@ -12181,7 +12182,7 @@ msgstr "-S" #. type: table #: doc/guix.texi:6502 msgid "Build the source derivations of the packages, rather than the packages themselves." -msgstr "Construit les dérivation source des paquets, plutôt que des paquets eux-même." +msgstr "Construit les dérivation source des paquets, plutôt que des paquets eux-mêmes." #. type: table #: doc/guix.texi:6506 @@ -12589,7 +12590,7 @@ msgstr "définition de paquets, modification" #. type: Plain text #: doc/guix.texi:6755 msgid "So many packages, so many source files! The @command{guix edit} command facilitates the life of users and packagers by pointing their editor at the source file containing the definition of the specified packages. For instance:" -msgstr "Tant de paquets, tant de fichiers source ! La commande @command{guix edit} facilite la vie des utilisateurs et des packagers en plaçant leur éditeur sur le fichier source qui contient la définition des paquets spécifiés. Par exemple :" +msgstr "Tant de paquets, tant de fichiers source ! La commande @command{guix edit} facilite la vie des utilisateurs et des empaqueteurs en plaçant leur éditeur sur le fichier source qui contient la définition des paquets spécifiés. Par exemple :" #. type: example #: doc/guix.texi:6758 @@ -12600,7 +12601,7 @@ msgstr "guix edit gcc@@4.9 vim\n" #. type: Plain text #: doc/guix.texi:6764 msgid "launches the program specified in the @code{VISUAL} or in the @code{EDITOR} environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim." -msgstr "lance le programme spécifié dans la variable d'environnement @code{VISUAL} ou @code{EDITOR} pour visionner la recette de GCC@tie{}4.9.3 et cele de Vim." +msgstr "lance le programme spécifié dans la variable d'environnement @code{VISUAL} ou @code{EDITOR} pour visionner la recette de GCC@tie{}4.9.3 et celle de Vim." #. type: Plain text #: doc/guix.texi:6770 @@ -12633,7 +12634,7 @@ msgstr "En écrivant des définitions de paquets, les développeurs ont généra #. type: Plain text #: doc/guix.texi:6790 msgid "The fact that the downloaded file is added to the store saves bandwidth: when the developer eventually tries to build the newly defined package with @command{guix build}, the source tarball will not have to be downloaded again because it is already in the store. It is also a convenient way to temporarily stash files, which may be deleted eventually (@pxref{Invoking guix gc})." -msgstr "Le fait que le fichier téléchargé soit ajouté au dépôt préserve la bande passante : losque les développeurs finissent par construire le paquet nouvellement défini avec @command{guix build}, l'archive des sources n'aura pas besoin d'être téléchargée de nouveau puisqu'elle se trouvera déjà dans le dépôt. C'est aussi une manière pratique de garder des fichiers temporairement, qui pourront ensuite être supprimés (@pxref{Invoking guix gc})." +msgstr "Le fait que le fichier téléchargé soit ajouté au dépôt préserve la bande passante : lorsque les développeurs finissent par construire le paquet nouvellement défini avec @command{guix build}, l'archive des sources n'aura pas besoin d'être téléchargée de nouveau puisqu'elle se trouvera déjà dans le dépôt. C'est aussi une manière pratique de garder des fichiers temporairement, qui pourront ensuite être supprimés (@pxref{Invoking guix gc})." #. type: Plain text #: doc/guix.texi:6798 @@ -12907,7 +12908,7 @@ msgstr "gem" #. type: table #: doc/guix.texi:6974 msgid "Import metadata from @uref{https://rubygems.org/, RubyGems}@footnote{This functionality requires Guile-JSON to be installed. @xref{Requirements}.}. Information is taken from the JSON-formatted description available at @code{rubygems.org} and includes most relevant information, including runtime dependencies. There are some caveats, however. The metadata doesn't distinguish between synopses and descriptions, so the same string is used for both fields. Additionally, the details of non-Ruby dependencies required to build native extensions is unavailable and left as an exercise to the packager." -msgstr "Importe des métadonnées de @uref{https://rubygems.org/, RubyGems}@footnote{Cette fonctionnalité requiert l'installation de Guile-JSON. @xref{Requirements}.}. Les informations sont récupérées au format JSON disponible sur @code{rubygems.org} et inclut les informations les plus utiles, comme les dépendances à l'exécution. Il y a des pièges cependant. Les métadonnées ne distinguent pas synopsis et description, donc la même chaîne est utilisée pour les deux champs. En plus, les détails des dépendances non Ruby requises pour construire des extensions natives sont indisponibles et laissé en exercice au packager." +msgstr "Importe des métadonnées de @uref{https://rubygems.org/, RubyGems}@footnote{Cette fonctionnalité requiert l'installation de Guile-JSON. @xref{Requirements}.}. Les informations sont récupérées au format JSON disponible sur @code{rubygems.org} et inclut les informations les plus utiles, comme les dépendances à l'exécution. Il y a des pièges cependant. Les métadonnées ne distinguent pas synopsis et description, donc la même chaîne est utilisée pour les deux champs. En plus, les détails des dépendances non Ruby requises pour construire des extensions natives sont indisponibles et laissé en exercice à l'empaqueteur." #. type: table #: doc/guix.texi:6976 @@ -13555,7 +13556,7 @@ msgstr "Choisi tous les paquets dans @var{subset}, entre @code{core} et @code{no #. type: table #: doc/guix.texi:7388 msgid "The @code{core} subset refers to all the packages at the core of the distribution---i.e., packages that are used to build ``everything else''. This includes GCC, libc, Binutils, Bash, etc. Usually, changing one of these packages in the distribution entails a rebuild of all the others. Thus, such updates are an inconvenience to users in terms of build time or bandwidth used to achieve the upgrade." -msgstr "Le sous-ensemble @code{core} se réfère à tous les paquets du cœur de la distribution — c.-à-d.@: les paquets qui sont utilisés pour construire « tout le rest ». Cela comprend GCC, libc, Binutils, Bash, etc. Habituellement, changer l'un de ces paquets dans la distribution implique de reconstruire tous les autres. Ainsi, ces mises à jour sont une nuisance pour les utilisateurs, en terme de temps de compilation et de bande passante utilisés pour effectuer la mise à jour." +msgstr "Le sous-ensemble @code{core} se réfère à tous les paquets du cœur de la distribution — c.-à-d.@: les paquets qui sont utilisés pour construire « tout le reste ». Cela comprend GCC, libc, Binutils, Bash, etc. Habituellement, changer l'un de ces paquets dans la distribution implique de reconstruire tous les autres. Ainsi, ces mises à jour sont une nuisance pour les utilisateurs, en terme de temps de compilation et de bande passante utilisés pour effectuer la mise à jour." #. type: table #: doc/guix.texi:7392 @@ -13970,7 +13971,7 @@ msgstr "source-file-name" #. type: table #: doc/guix.texi:7598 msgid "Probe @code{home-page} and @code{source} URLs and report those that are invalid. Suggest a @code{mirror://} URL when applicable. Check that the source file name is meaningful, e.g. is not just a version number or ``git-checkout'', without a declared @code{file-name} (@pxref{origin Reference})." -msgstr "Sonde les URL @code{home-page} et @code{source} et rapporte celles qui sont invalides. Suggère une URL en @code{mirror://} lorsque c'est possible. Vérifie que le nom du fichier source a un sens, p.@: ex.@: qu'il ne s'agisse pas juste d'un numéro de version ou « git-checkou », sans avoir déclaré un @code{file-name} (@pxref{origin Reference})." +msgstr "Sonde les URL @code{home-page} et @code{source} et rapporte celles qui sont invalides. Suggère une URL en @code{mirror://} lorsque c'est possible. Vérifie que le nom du fichier source a un sens, p.@: ex.@: qu'il ne s'agisse pas juste d'un numéro de version ou « git-checkout », sans avoir déclaré un @code{file-name} (@pxref{origin Reference})." #. type: item #: doc/guix.texi:7599 @@ -14180,7 +14181,7 @@ msgstr "" #. type: Plain text #: doc/guix.texi:7715 msgid "The store items listed here constitute the @dfn{transitive closure} of Coreutils---i.e., Coreutils and all its dependencies, recursively---as would be returned by:" -msgstr "Les éléments du dépôt listés ici constituent la @dfn{cloture transitive} de Coreutils — c.-à-d.@: Coreutils et toutes ses dépendances, récursivement — comme ce qui serait renvoyé par :" +msgstr "Les éléments du dépôt listés ici constituent la @dfn{clôture transitive} de Coreutils — c.-à-d.@: Coreutils et toutes ses dépendances, récursivement — comme ce qui serait renvoyé par :" #. type: example #: doc/guix.texi:7718 @@ -14191,12 +14192,12 @@ msgstr "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n" #. type: Plain text #: doc/guix.texi:7726 msgid "Here the output shows three columns next to store items. The first column, labeled ``total'', shows the size in mebibytes (MiB) of the closure of the store item---that is, its own size plus the size of all its dependencies. The next column, labeled ``self'', shows the size of the item itself. The last column shows the ratio of the size of the item itself to the space occupied by all the items listed here." -msgstr "Ici, la sortie possède trois colonnes à côté de chaque élément du dépôt. La première colonne, nommée « total », montre la taille en mébioctet (Mio) de la cloture de l'élément du dépôt — c'est-à-dire sa propre taille plus la taille de ses dépendances. La colonne suivante, nommée « lui-même », montre la taille de l'élément lui-même. La dernière colonne montre le ration de la taille de l'élément lui-même par rapport à celle de tous les éléments montrés." +msgstr "Ici, la sortie possède trois colonnes à côté de chaque élément du dépôt. La première colonne, nommée « total », montre la taille en mébioctet (Mio) de la clôture de l'élément du dépôt — c'est-à-dire sa propre taille plus la taille de ses dépendances. La colonne suivante, nommée « lui-même », montre la taille de l'élément lui-même. La dernière colonne montre le ration de la taille de l'élément lui-même par rapport à celle de tous les éléments montrés." #. type: Plain text #: doc/guix.texi:7732 msgid "In this example, we see that the closure of Coreutils weighs in at 79@tie{}MiB, most of which is taken by libc and GCC's run-time support libraries. (That libc and GCC's libraries represent a large fraction of the closure is not a problem @i{per se} because they are always available on the system anyway.)" -msgstr "Dans cet exemple, on voit que la cloture de Coreutils pèse 79@tie{}Mio, dont la plupart est dû à la libc et aux bibliothèques à l'exécution de GCC (ce n'est pas un problème en soit que la libc et les bibliothèques de GCC représentent une grande part de la cloture parce qu'elles sont toujours disponibles sur le système de toute façon)." +msgstr "Dans cet exemple, on voit que la clôture de Coreutils pèse 79@tie{}Mio, dont la plupart est dû à la libc et aux bibliothèques à l'exécution de GCC (ce n'est pas un problème en soit que la libc et les bibliothèques de GCC représentent une grande part de la clôture parce qu'elles sont toujours disponibles sur le système de toute façon)." #. type: Plain text #: doc/guix.texi:7741 @@ -14238,7 +14239,7 @@ msgstr "" #. type: Plain text #: doc/guix.texi:7764 msgid "In this example we see that the combination of the four packages takes 102.3@tie{}MiB in total, which is much less than the sum of each closure since they have a lot of dependencies in common." -msgstr "Dans cet exemple on voit que la combinaison des quatre paquets prent 102.3@tie{}Mio en tout, ce qui est bien moins que la somme des clotures puisqu'ils ont beaucoup de dépendances en commun." +msgstr "Dans cet exemple on voit que la combinaison des quatre paquets prend 102.3@tie{}Mio en tout, ce qui est bien moins que la somme des clôtures puisqu'ils ont beaucoup de dépendances en commun." #. type: Plain text #: doc/guix.texi:7766 @@ -14259,7 +14260,7 @@ msgstr "--sort=@var{clef}" #. type: table #: doc/guix.texi:7775 msgid "Sort lines according to @var{key}, one of the following options:" -msgstr "Trie les lignes en fonction de la @var{clef}, l'une des optinos suivantes :" +msgstr "Trie les lignes en fonction de la @var{clef}, l'une des options suivantes :" #. type: item #: doc/guix.texi:7777 @@ -14275,7 +14276,7 @@ msgstr "la taille de chaque élément (par défaut) ;" #. type: table #: doc/guix.texi:7781 msgid "the total size of the item's closure." -msgstr "la taille totale de la cloture de l'élémente." +msgstr "la taille totale de la clôture de l'élément." #. type: item #: doc/guix.texi:7783 @@ -14971,7 +14972,7 @@ msgstr "conteneur" #. type: table #: doc/guix.texi:8225 msgid "Run @var{command} within an isolated container. The current working directory outside the container is mapped inside the container. Additionally, unless overridden with @code{--user}, a dummy home directory is created that matches the current user's home directory, and @file{/etc/passwd} is configured accordingly. The spawned process runs as the current user outside the container, but has root privileges in the context of the container." -msgstr "Lance @var{commande} dans un conteneur isolé. Le répertoire de travail actuel en dehors du conteneur est monté dans le conteneur. En plus, à moins de le changer avec @code{--user}, un répertoire personnel fictif est créé pour correspondre à celui de l'utilisateur actuel et @file{/etc/passwod} est configuré en conséquence. Le processus est lancé en tant que l'utilisateur actuel en dehors du conteneur, mais a les privilèges root dans le contexte du conteneur." +msgstr "Lance @var{commande} dans un conteneur isolé. Le répertoire de travail actuel en dehors du conteneur est monté dans le conteneur. En plus, à moins de le changer avec @code{--user}, un répertoire personnel fictif est créé pour correspondre à celui de l'utilisateur actuel et @file{/etc/passwd} est configuré en conséquence. Le processus est lancé en tant que l'utilisateur actuel en dehors du conteneur, mais a les privilèges root dans le contexte du conteneur." #. type: item #: doc/guix.texi:8226 @@ -15027,7 +15028,7 @@ msgstr "-u @var{utilisateur}" #. type: table #: doc/guix.texi:8255 msgid "For containers, use the username @var{user} in place of the current user. The generated @file{/etc/passwd} entry within the container will contain the name @var{user}; the home directory will be @file{/home/USER}; and no user GECOS data will be copied. @var{user} need not exist on the system." -msgstr "Pour les conteneurs, utilise le nom d'utilisateur @var{utilisateur} à la place de l'utilisateur actuel. L'entrée générée dans @file{/etc/passwod} dans le conteneur contiendra le nom @var{utilisateur} ; le répertoire personnel sera @file{/home/UTILISATEUR} ; et aucune donnée GECOS ne sera copiée. @var{utilisateur} n'a pas besoin d'exister sur le système." +msgstr "Pour les conteneurs, utilise le nom d'utilisateur @var{utilisateur} à la place de l'utilisateur actuel. L'entrée générée dans @file{/etc/passwd} dans le conteneur contiendra le nom @var{utilisateur} ; le répertoire personnel sera @file{/home/UTILISATEUR} ; et aucune donnée GECOS ne sera copiée. @var{utilisateur} n'a pas besoin d'exister sur le système." #. type: table #: doc/guix.texi:8260 @@ -15086,7 +15087,7 @@ msgstr "--share=@var{source}[=@var{cible}]" #. type: table #: doc/guix.texi:8292 msgid "For containers, share the file system @var{source} from the host system as the writable file system @var{target} within the container. If @var{target} is not specified, @var{source} is used as the target mount point in the container." -msgstr "Pour les conteneurs, partage le système de fichiers @var{soruce} du système hôte comme un système de fichiers en lecture-écriture @var{cible} dans le conteneur. Si @var{cible} n'est pas spécifiée, @var{source} est utilisée comme point de montage dans le conteneur." +msgstr "Pour les conteneurs, partage le système de fichiers @var{source} du système hôte comme un système de fichiers en lecture-écriture @var{cible} dans le conteneur. Si @var{cible} n'est pas spécifiée, @var{source} est utilisée comme point de montage dans le conteneur." #. type: table #: doc/guix.texi:8296 @@ -15172,7 +15173,7 @@ msgstr "Par défaut, @command{guix publish} compresse les archives à la volée #. type: Plain text #: doc/guix.texi:8365 msgid "As a bonus, @command{guix publish} also serves as a content-addressed mirror for source files referenced in @code{origin} records (@pxref{origin Reference}). For instance, assuming @command{guix publish} is running on @code{example.org}, the following URL returns the raw @file{hello-2.10.tar.gz} file with the given SHA256 hash (represented in @code{nix-base32} format, @pxref{Invoking guix hash}):" -msgstr "En bonus, @command{guix publish} sert aussi un miroir adressé par le contenu des fichiers source référencées dans les enregistrements @code{origin} (@pxref{origin Reference}). Par exemple, en supposant que @command{guix publish} tourne sur @code{example.org}, l'URL suivante renverra le fichie brut @file{hello-2.10.tar.gz} avec le hash SHA256 donné (représenté sous le format @code{nix-base32}, @pxref{Invoking guix hash}) :" +msgstr "En bonus, @command{guix publish} sert aussi un miroir adressé par le contenu des fichiers source référencées dans les enregistrements @code{origin} (@pxref{origin Reference}). Par exemple, en supposant que @command{guix publish} tourne sur @code{example.org}, l'URL suivante renverra le fichier brut @file{hello-2.10.tar.gz} avec le hash SHA256 donné (représenté sous le format @code{nix-base32}, @pxref{Invoking guix hash}) :" #. type: example #: doc/guix.texi:8368 @@ -15205,7 +15206,7 @@ msgstr "http://example.org/log/gwspk@dots{}-guile-2.2.3\n" #. type: Plain text #: doc/guix.texi:8388 msgid "When @command{guix-daemon} is configured to save compressed build logs, as is the case by default (@pxref{Invoking guix-daemon}), @code{/log} URLs return the compressed log as-is, with an appropriate @code{Content-Type} and/or @code{Content-Encoding} header. We recommend running @command{guix-daemon} with @code{--log-compression=gzip} since Web browsers can automatically decompress it, which is not the case with bzip2 compression." -msgstr "Lorsque @command{guix-daemon} est configuré pour sauvegarder les journaux de construction compressés, comme c'est le cas par défaut (@pxref{Invoking guix-daemon}), les URL @code{/log} renvoient le journal compressé tel-quel, avec un en-tête @code{Content-Type} ou @code{Content-Encoding} approprié. Nous recommandons de lancer @command{guix-daemon} avec @code{--log-compression=gzip} pace que les navigateurs web les décompressent automatiquement, ce qui n'est pas le cas avec la compression bzip2." +msgstr "Lorsque @command{guix-daemon} est configuré pour sauvegarder les journaux de construction compressés, comme c'est le cas par défaut (@pxref{Invoking guix-daemon}), les URL @code{/log} renvoient le journal compressé tel-quel, avec un en-tête @code{Content-Type} ou @code{Content-Encoding} approprié. Nous recommandons de lancer @command{guix-daemon} avec @code{--log-compression=gzip} parce que les navigateurs web les décompressent automatiquement, ce qui n'est pas le cas avec la compression bzip2." #. type: item #: doc/guix.texi:8392 @@ -15282,7 +15283,7 @@ msgstr "Cache les archives et les métadonnées (les URL @code{.narinfo}) dans @ #. type: table #: doc/guix.texi:8433 msgid "When this option is omitted, archives and meta-data are created on-the-fly. This can reduce the available bandwidth, especially when compression is enabled, since this may become CPU-bound. Another drawback of the default mode is that the length of archives is not known in advance, so @command{guix publish} does not add a @code{Content-Length} HTTP header to its responses, which in turn prevents clients from knowing the amount of data being downloaded." -msgstr "Lorsque cette option est omise, les archives et les métadonnées sont crées à la volée. Cela réduit la bande passante disponible, surtout quand la compression est activée puisqu'elle pourrait être limitée par le CPU. Un autre inconvénient au mode par défaut est que la taille des archives n'est pas connue à l'avance, donc @command{guix publish} n'ajoute pas l'en-tête @code{Content-Length} à ses résponses, ce qui empêche les clients de savoir la quantité de données à télécharger." +msgstr "Lorsque cette option est omise, les archives et les métadonnées sont crées à la volée. Cela réduit la bande passante disponible, surtout quand la compression est activée puisqu'elle pourrait être limitée par le CPU. Un autre inconvénient au mode par défaut est que la taille des archives n'est pas connue à l'avance, donc @command{guix publish} n'ajoute pas l'en-tête @code{Content-Length} à ses réponses, ce qui empêche les clients de savoir la quantité de données à télécharger." #. type: table #: doc/guix.texi:8441 @@ -15797,7 +15798,7 @@ msgstr "guix container exec @var{pid} @var{programme} @var{arguments}@dots{}\n" #. type: table #: doc/guix.texi:8766 msgid "@var{pid} specifies the process ID of the running container. @var{program} specifies an executable file name within the root file system of the container. @var{arguments} are the additional options that will be passed to @var{program}." -msgstr "@var{pid} spécifie le PID du conteneur lancé. @var{programme} spécifie le nom du fichier exécutable dans le système de fichiers racine du conteneur. @var{arguments} sont les options supplémentairesà passer à @var{programme}." +msgstr "@var{pid} spécifie le PID du conteneur lancé. @var{programme} spécifie le nom du fichier exécutable dans le système de fichiers racine du conteneur. @var{arguments} sont les options supplémentaires à passer à @var{programme}." #. type: table #: doc/guix.texi:8770 @@ -15842,7 +15843,7 @@ msgstr "disponibilité des substituts" #: doc/guix.texi:8793 #, no-wrap msgid "substitute availability" -msgstr "substuts, disponibilité" +msgstr "substituts, disponibilité" #. type: cindex #: doc/guix.texi:8794 @@ -16498,7 +16499,7 @@ msgstr "" #. type: table #: doc/guix.texi:9298 msgid "Start the wireless service and run it in the background with the following command (substitute @var{interface} with the name of the network interface you want to use):" -msgstr "Démarrez le service sans-file et lancez-le en tache de fond avec la commande suivante (en remplaçant @var{interface} par le nom de l'interface réseau que vous voulez utiliser) :" +msgstr "Démarrez le service sans-fil et lancez-le en tache de fond avec la commande suivante (en remplaçant @var{interface} par le nom de l'interface réseau que vous voulez utiliser) :" #. type: example #: doc/guix.texi:9301 @@ -17363,7 +17364,7 @@ msgstr "La sortie de la dérivation est un répertoire qui se réfère à tous l #. type: Plain text #: doc/guix.texi:9913 msgid "This procedure is provided by the @code{(gnu system)} module. Along with @code{(gnu services)} (@pxref{Services}), this module contains the guts of GuixSD. Make sure to visit it!" -msgstr "Cette procédure est fournie par le module @code{(gnu system)}. Avec @code{(gnu srevices)} (@pxref{Services}), ce module contient les entrailles de GuixSD. Ouvrez-le un jour !" +msgstr "Cette procédure est fournie par le module @code{(gnu system)}. Avec @code{(gnu services)} (@pxref{Services}), ce module contient les entrailles de GuixSD. Ouvrez-le un jour !" #. type: subsection #: doc/guix.texi:9916 @@ -18744,7 +18745,7 @@ msgstr "Les sections suivantes documentent les services disponibles, en commenç #. type: Plain text #: doc/guix.texi:10714 msgid "The @code{(gnu services base)} module provides definitions for the basic services that one expects from the system. The services exported by this module are listed below." -msgstr "Le module @code{(gnu services base)} fournit des définitions de services poru les services de base qu'on peut attendre du système. Les services exportés par ce module sort listés ci-dessous." +msgstr "Le module @code{(gnu services base)} fournit des définitions de services pour les services de base qu'on peut attendre du système. Les services exportés par ce module sort listés ci-dessous." #. type: defvr #: doc/guix.texi:10715 @@ -19526,7 +19527,7 @@ msgstr "nscd, invalidation du cache" #. type: table #: doc/guix.texi:11066 msgid "This invalidate the given cache. For instance, running:" -msgstr "Cela invalide le cache dnné. Par exemple, en laçant :" +msgstr "Cela invalide le cache donné. Par exemple, en laçant :" #. type: example #: doc/guix.texi:11069 @@ -19592,7 +19593,7 @@ msgstr "@code{glibc} (par défaut : @var{glibc})" #. type: table #: doc/guix.texi:11100 msgid "Package object denoting the GNU C Library providing the @command{nscd} command." -msgstr "Objet de paquet qui dénote la Biblothèque C de GNU qui fournit la commande @command{nscd}." +msgstr "Objet de paquet qui dénote la Bibliothèque C de GNU qui fournit la commande @command{nscd}." #. type: item #: doc/guix.texi:11101 @@ -19998,7 +19999,7 @@ msgstr "{Procédure Scheme} udev-rule [@var{file-name} @var{contents}]" #. type: deffn #: doc/guix.texi:11266 msgid "Return a udev-rule file named @var{file-name} containing the rules defined by the @var{contents} literal." -msgstr "Renvoie un fichier de règle udev nommé @var{file-name} contenant les règles définie par le litéral @var{contents}." +msgstr "Renvoie un fichier de règle udev nommé @var{file-name} contenant les règles définie par le littéral @var{contents}." #. type: deffn #: doc/guix.texi:11270 @@ -20114,7 +20115,7 @@ msgstr "En plus, les définitions des paquets de Guix peuvent être inclus dans #. type: deffn #: doc/guix.texi:11333 msgid "The following example shows how to use the @var{android-udev-rules} package so that the Android tool @command{adb} can detect devices without root privileges. It also details how to create the @code{adbusers} group, which is required for the proper functioning of the rules defined within the @var{android-udev-rules} package. To create such a group, we must define it both as part of the @var{supplementary-groups} of our @var{user-account} declaration, as well as in the @var{groups} field of the @var{operating-system} record." -msgstr "L'exemple suivant montre comment utiliser le paquet @var{android-udev-rules} pour que l'outil Android @command{adb} puisse détecter les appareils sans privilège root. Il détaille aussi comment créer le grope @code{adbusers}, requis pour le bon fonctionnement des règles définies dans le paquet @var{android-udev-rules}. Pour créer ce groupe, on doit le définir dans les @var{supplementary-groups} de la déclaration @var{user-account} ainsi que dans le champ @var{groups} de l'enregistrement @var{operating-system}." +msgstr "L'exemple suivant montre comment utiliser le paquet @var{android-udev-rules} pour que l'outil Android @command{adb} puisse détecter les appareils sans privilège root. Il détaille aussi comment créer le groupe @code{adbusers}, requis pour le bon fonctionnement des règles définies dans le paquet @var{android-udev-rules}. Pour créer ce groupe, on doit le définir dans les @var{supplementary-groups} de la déclaration @var{user-account} ainsi que dans le champ @var{groups} de l'enregistrement @var{operating-system}." #. type: example #: doc/guix.texi:11338 @@ -20540,12 +20541,12 @@ msgstr "tâches planifiées" #. type: Plain text #: doc/guix.texi:11530 msgid "The @code{(gnu services mcron)} module provides an interface to GNU@tie{}mcron, a daemon to run jobs at scheduled times (@pxref{Top,,, mcron, GNU@tie{}mcron}). GNU@tie{}mcron is similar to the traditional Unix @command{cron} daemon; the main difference is that it is implemented in Guile Scheme, which provides a lot of flexibility when specifying the scheduling of jobs and their actions." -msgstr "Le module @code{(gnu services mcron)} fournit une interface pour GNU@tie{}mcron, un démon qui lance des tâches planifiées (@pxref{Top,,, mcron, GNU@tie{}mcron}). GNU@tie{}mcron est similaire au démon Unix traditionel @command{cron} ; la principale différence est qu'il est implémenté en Guile Scheme, qui fournit beaucoup de flexibilité lors de la spécification de la planification des tâches et de leurs actions." +msgstr "Le module @code{(gnu services mcron)} fournit une interface pour GNU@tie{}mcron, un démon qui lance des tâches planifiées (@pxref{Top,,, mcron, GNU@tie{}mcron}). GNU@tie{}mcron est similaire au démon Unix traditionnel @command{cron} ; la principale différence est qu'il est implémenté en Guile Scheme, qui fournit beaucoup de flexibilité lors de la spécification de la planification des tâches et de leurs actions." #. type: Plain text #: doc/guix.texi:11538 msgid "The example below defines an operating system that runs the @command{updatedb} (@pxref{Invoking updatedb,,, find, Finding Files}) and the @command{guix gc} commands (@pxref{Invoking guix gc}) daily, as well as the @command{mkid} command on behalf of an unprivileged user (@pxref{mkid invocation,,, idutils, ID Database Utilities}). It uses gexps to introduce job definitions that are passed to mcron (@pxref{G-Expressions})." -msgstr "L'exemple en dessous définit un système d'exploitation qu lance les commandes @command{updatebd} (@pxref{Invoking updatedb,,, find, Finding Files}) et @command{guix gc} (@pxref{Invoking guix gc}) tous les jours, ainsi que la commande @command{mkid} en tant qu'utilisateur non privilégié (@pxref{mkid invocation,,, idutils, ID Database Utilities}). Il utilise des gexps pour introduire des définitions de tâches qui sont passées à mcron (@pxref{G-Expressions})." +msgstr "L'exemple en dessous définit un système d'exploitation qui lance les commandes @command{updatebd} (@pxref{Invoking updatedb,,, find, Finding Files}) et @command{guix gc} (@pxref{Invoking guix gc}) tous les jours, ainsi que la commande @command{mkid} en tant qu'utilisateur non privilégié (@pxref{mkid invocation,,, idutils, ID Database Utilities}). Il utilise des gexps pour introduire des définitions de tâches qui sont passées à mcron (@pxref{G-Expressions})." #. type: lisp #: doc/guix.texi:11542 @@ -21155,7 +21156,7 @@ msgstr "{Procédure Scheme} wicd-service [#:wicd @var{wicd}]" #. type: deffn #: doc/guix.texi:11823 msgid "Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network management daemon that aims to simplify wired and wireless networking." -msgstr "Renvoie un service qui lance @url{https://launchpad.net/wicd,Wicd}, un démon de gestion réseau qui cherche à simplifier la configuration des résaux filaires et sans fil." +msgstr "Renvoie un service qui lance @url{https://launchpad.net/wicd,Wicd}, un démon de gestion réseau qui cherche à simplifier la configuration des réseaux filaires et sans fil." #. type: deffn #: doc/guix.texi:11828 @@ -21800,12 +21801,12 @@ msgstr "{Variable Scheme} inetd-service-type" #. type: deffn #: doc/guix.texi:12100 msgid "This service runs the @command{inetd} (@pxref{inetd invocation,,, inetutils, GNU Inetutils}) daemon. @command{inetd} listens for connections on internet sockets, and lazily starts the specified server program when a connection is made on one of these sockets." -msgstr "Ce service lance le démon @command{inetd} (@pxref{inetd invocation,,, inetutils, GNU Inetutils}). @command{inetd} écoute des connexionssur des sockets internet et démarre le programme spécifié uniquement lorsqu'une connexion arrive sur l'un de ces sockets." +msgstr "Ce service lance le démon @command{inetd} (@pxref{inetd invocation,,, inetutils, GNU Inetutils}). @command{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." #. type: deffn #: doc/guix.texi:12106 msgid "The value of this service is an @code{inetd-configuration} object. The following example configures the @command{inetd} daemon to provide the built-in @command{echo} service, as well as an smtp service which forwards smtp traffic over ssh to a server @code{smtp-server} behind a gateway @code{hostname}:" -msgstr "La valeur de ce service est un objet @code{inetd-configuration}. L'exemple suivant configure le démon @command{inetd} pour qu'il fournisse le service @command{echo}, ainsi qu'in service smtp qui transfère le trafic smtp par ssh à un serveur @code{smtp-server} derrière une passerelle @code{hostname} :" +msgstr "La valeur de ce service est un objet @code{inetd-configuration}. L'exemple suivant configure le démon @command{inetd} pour qu'il fournisse le service @command{echo}, ainsi qu'un service smtp qui transfère le trafic smtp par ssh à un serveur @code{smtp-server} derrière une passerelle @code{hostname} :" #. type: example #: doc/guix.texi:12129 @@ -22729,7 +22730,7 @@ msgstr "Lance le @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,démon SSH #. type: deffn #: doc/guix.texi:12536 msgid "For example, to specify a Dropbear service listening on port 1234, add this call to the operating system's @code{services} field:" -msgstr "Par exemple, pour spécifier un service Dropbear qui écoute sur le port 1234, ajoutez cet appel au champ @code{services} d evotre système d'exploitation :" +msgstr "Par exemple, pour spécifier un service Dropbear qui écoute sur le port 1234, ajoutez cet appel au champ @code{services} de votre système d'exploitation :" #. type: example #: doc/guix.texi:12540 @@ -23686,7 +23687,7 @@ msgstr "La configuration de CUPS contrôle les paramètres de base de votre inst #. type: Plain text #: doc/guix.texi:12958 msgid "Suppose you want to enable the Web interface of CUPS and also add support for Epson printers @i{via} the @code{escpr} package and for HP printers @i{via} the @code{hplip-minimal} package. You can do that directly, like this (you need to use the @code{(gnu packages cups)} module):" -msgstr "Supposons que vous souhaitiez activer l'interface Web de CUPS et ajouter le support pour les imprimantes Epson via le paquet @code{escpr} et our les imprimantes HP via le paquet @code{hplip-minimal}. Vous pouvez le faire directement, comme ceci (vous devez utiliser le module @code{(gnu packages cups)}) :" +msgstr "Supposons que vous souhaitiez activer l'interface Web de CUPS et ajouter le support pour les imprimantes Epson via le paquet @code{escpr} et pour les imprimantes HP via le paquet @code{hplip-minimal}. Vous pouvez le faire directement, comme ceci (vous devez utiliser le module @code{(gnu packages cups)}) :" #. type: example #: doc/guix.texi:12965 @@ -24370,7 +24371,7 @@ msgstr "{paramètre de @code{cups-configuration}} non-negative-integer filter-li #. type: deftypevr #: doc/guix.texi:13291 msgid "Specifies the maximum cost of filters that are run concurrently, which can be used to minimize disk, memory, and CPU resource problems. A limit of 0 disables filter limiting. An average print to a non-PostScript printer needs a filter limit of about 200. A PostScript printer needs about half that (100). Setting the limit below these thresholds will effectively limit the scheduler to printing a single job at any time." -msgstr "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 requirt 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." +msgstr "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." #. type: deftypevr #: doc/guix.texi:13293 doc/guix.texi:13301 doc/guix.texi:13356 @@ -24488,7 +24489,7 @@ msgstr "{paramètre de @code{cups-configuration}} multiline-string-list listen" #. type: deftypevr #: doc/guix.texi:13365 msgid "Listens on the specified interfaces for connections. Valid values are of the form @var{address}:@var{port}, where @var{address} is either an IPv6 address enclosed in brackets, an IPv4 address, or @code{*} to indicate all addresses. Values can also be file names of local UNIX domain sockets. The Listen directive is similar to the Port directive but allows you to restrict access to specific interfaces or networks." -msgstr "Écoute sur les interfaces spécifiées. Les valeurs valides sont de la forme @var{adresse}:@var{port}, où @var{adresse} est sotit une daresse IPv6 dans des crochets, soit une adresse IPv4, soit @code{*} 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." +msgstr "Écoute sur les interfaces spécifiées. Les valeurs valides sont de la forme @var{adresse}:@var{port}, où @var{adresse} est soit une adresse IPv6 dans des crochets, soit une adresse IPv4, soit @code{*} 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." #. type: deftypevr #: doc/guix.texi:13367 @@ -25822,7 +25823,7 @@ msgstr "{Variable Scheme} alsa-service-type" #. type: deffn #: doc/guix.texi:14094 msgid "This is the type for the @uref{https://alsa-project.org/, Advanced Linux Sound Architecture} (ALSA) system, which generates the @file{/etc/asound.conf} configuration file. The value for this type is a @command{alsa-configuration} record as in this example:" -msgstr "C'est le type pour le système @uref{https://alsa-project.org/, Advanced Linux Sound Architecture} (ALSA), qui génère le fichier de configuration @file{/etc/asound.conf}. La valer de ce type est un enregistrement @command{alsa-configuration} comme dans cet exemple :" +msgstr "C'est le type pour le système @uref{https://alsa-project.org/, Advanced Linux Sound Architecture} (ALSA), qui génère le fichier de configuration @file{/etc/asound.conf}. La valeur de ce type est un enregistrement @command{alsa-configuration} comme dans cet exemple :" #. type: example #: doc/guix.texi:14097 @@ -28029,7 +28030,7 @@ msgstr "{paramètre de @code{dovecot-configuration}} boolean mbox-very-dirty-syn #. type: deftypevr #: doc/guix.texi:15300 msgid "Like @samp{mbox-dirty-syncs}, but don't do full syncs even with SELECT, EXAMINE, EXPUNGE or CHECK commands. If this is set, @samp{mbox-dirty-syncs} is ignored. Defaults to @samp{#f}." -msgstr "Comme @samp{mbox-dirty-syncs}, mais ne synchronise pas complètement même avec les commandes SELECT, EXAMINE, EXPUNGE ou CHECK. Si l'option n'est pas actifée, @samp{mbox-dirty-syncs} est ignorée. La valeur par défaut est @samp{#f}." +msgstr "Comme @samp{mbox-dirty-syncs}, mais ne synchronise pas complètement même avec les commandes SELECT, EXAMINE, EXPUNGE ou CHECK. Si l'option n'est pas activée, @samp{mbox-dirty-syncs} est ignorée. La valeur par défaut est @samp{#f}." #. type: deftypevr #: doc/guix.texi:15302 @@ -28620,7 +28621,7 @@ msgstr "delay-newmail" #. type: table #: doc/guix.texi:15606 msgid "Send EXISTS/RECENT new mail notifications only when replying to NOOP and CHECK commands. Some clients ignore them otherwise, for example OSX Mail (} object, by default it allows read-only access to exported@footnote{By creating the magic file \"git-daemon-export-ok\" in the repository directory.} repositories under @file{/srv/git}." -msgstr "" +msgstr "L'argument facultatif @var{config} devrait être un objet @code{}, par défaut il permet l'accès en lecture-seule aux dépôts exportés@footnote{En créant le fichier magique « git-daemon-export-ok » dans le répertoire du dépôt.} dans @file{/srv/git}." #. type: deftp #: doc/guix.texi:20247 @@ -37517,7 +37518,7 @@ msgstr "{Type de données} git-daemon-configuration" #. type: deftp #: doc/guix.texi:20249 msgid "Data type representing the configuration for @code{git-daemon-service}." -msgstr "" +msgstr "Type de données représentnt la configuration de @code{git-daemon-service}." #. type: item #: doc/guix.texi:20251 doc/guix.texi:20307 @@ -37528,7 +37529,7 @@ msgstr "@code{package} (par défaut : @var{git})" #. type: table #: doc/guix.texi:20253 doc/guix.texi:20309 msgid "Package object of the Git distributed version control system." -msgstr "" +msgstr "Objet de paquet du système de contrôle de version distribué Git." #. type: item #: doc/guix.texi:20254 doc/guix.texi:20313 @@ -37539,7 +37540,7 @@ msgstr "@code{export-all?} (par défaut : @var{#f})" #. type: table #: doc/guix.texi:20257 msgid "Whether to allow access for all Git repositories, even if they do not have the @file{git-daemon-export-ok} file." -msgstr "" +msgstr "Indique s'il faut permettre l'accès à tous les dépôts Git, même s'ils n'ont pas le fichier @file{git-daemon-export-ok}." #. type: item #: doc/guix.texi:20258 @@ -37550,7 +37551,7 @@ msgstr "@code{base-path} (par défaut : @file{/srv/git})" #. type: table #: doc/guix.texi:20263 msgid "Whether to remap all the path requests as relative to the given path. If you run git daemon with @var{(base-path \"/srv/git\")} on example.com, then if you later try to pull @code{git://example.com/hello.git}, git daemon will interpret the path as @code{/srv/git/hello.git}." -msgstr "" +msgstr "Indique s'il faut traduire toutes les requêtes de chemins relativement au chemin actuel. Si vous lancez le démon git avec @var{(base-path \"/srv/git\")} sur example.com, si vous essayez ensuite de récupérer @code{git://example.com/hello.git}, le démon git interprétera ce chemin comme étant @code{/srv/git/hello.git}." #. type: item #: doc/guix.texi:20264 @@ -37561,7 +37562,7 @@ msgstr "@code{user-path} (par défaut : @var{#f})" #. type: table #: doc/guix.texi:20271 msgid "Whether to allow @code{~user} notation to be used in requests. When specified with empty string, requests to @code{git://host/~alice/foo} is taken as a request to access @code{foo} repository in the home directory of user @code{alice}. If @var{(user-path \"path\")} is specified, the same request is taken as a request to access @code{path/foo} repository in the home directory of user @code{alice}." -msgstr "" +msgstr "Indique s'il faut permettre la notation @code{~user} dans les requêtes. Lorsque spécifié avec une chaîne vide, les requêtes à @code{git://host/~alice/foo} sont des requêtes d'accès au dépôt @code{foo} dans le répertoire personnel de l'utilisateur @code{alice}. Si @var{(user-path \"chemin\")} est spécifié, la même requête est interprétée comme accédant au répertoire @code{chemin/foo} dans le répertoire personnel de l'utilisateur @code{alice}." #. type: item #: doc/guix.texi:20272 @@ -37572,7 +37573,7 @@ msgstr "@code{listen} (par défaut : @var{'()})" #. type: table #: doc/guix.texi:20275 msgid "Whether to listen on specific IP addresses or hostnames, defaults to all." -msgstr "" +msgstr "Indique s'il faut écouter sur des adresses IP ou des noms d'hôtes particuliers, par défaut tous." #. type: item #: doc/guix.texi:20276 @@ -37583,7 +37584,7 @@ msgstr "@code{port} (par défaut : @var{#f})" #. type: table #: doc/guix.texi:20278 msgid "Whether to listen on an alternative port, which defaults to 9418." -msgstr "" +msgstr "Indique s'il faut écouter sur un port particulier, par défaut le 9418." #. type: item #: doc/guix.texi:20279 @@ -37594,7 +37595,7 @@ msgstr "@code{whitelist} (par défaut : @var{'()})" #. type: table #: doc/guix.texi:20281 msgid "If not empty, only allow access to this list of directories." -msgstr "" +msgstr "Si la liste n'est pas vide, n'autoriser l'accès qu'aux dossiers spécifiés." #. type: item #: doc/guix.texi:20282 @@ -37605,17 +37606,17 @@ msgstr "@code{extra-options} (par défaut : @var{'()})" #. type: table #: doc/guix.texi:20285 msgid "Extra options will be passed to @code{git daemon}, please run @command{man git-daemon} for more information." -msgstr "" +msgstr "Options supplémentaires qui seront passées à @code{git daemon}, lancez @command{man git-daemon} pour plus d'informations." #. type: Plain text #: doc/guix.texi:20299 msgid "The @code{git://} protocol lacks authentication. When you pull from a repository fetched via @code{git://}, you don't know that the data you receive was modified is really coming from the specified host, and you have your connection is subject to eavesdropping. It's better to use an authenticated and encrypted transport, such as @code{https}. Although Git allows you to serve repositories using unsophisticated file-based web servers, there is a faster protocol implemented by the @code{git-http-backend} program. This program is the back-end of a proper Git web service. It is designed to sit behind a FastCGI proxy. @xref{Web Services}, for more on running the necessary @code{fcgiwrap} daemon." -msgstr "" +msgstr "Le protocole @code{git://} ne permet pas l'authentification. Lorsque vous récupérez un dépôt via @code{git://}, vous ne pouvez pas savoir si les données que vous recevez ont été modifiées ou si elles viennent bien de l'hôte spécifié, et votre connexion pourrait être espionnée. Il est préférable d'utiliser un protocole de transport authentifié et chiffré, comme @code{https}. Bien que Git vous permette de servir des dépôts avec un serveur web peu sophistiqué basé sur les fichiers, il y a un protocole plus rapide implémenté par le programme @code{git-http-backend}. Ce programme est le moteur des services web Git corrects. Il est conçu pour se trouver derrière un mandataire FastCGI. @xref{Web Services} pour plus d'informations sur la manière de lancer le démon @code{fcgiwrap} nécessaire." #. type: Plain text #: doc/guix.texi:20302 msgid "Guix has a separate configuration data type for serving Git repositories over HTTP." -msgstr "" +msgstr "Guix a un type de données de configuration séparé pour servir des dépôts Git par HTTP." #. type: deftp #: doc/guix.texi:20303 @@ -37626,7 +37627,7 @@ msgstr "{Type de données} git-http-configuration" #. type: deftp #: doc/guix.texi:20305 msgid "Data type representing the configuration for @code{git-http-service}." -msgstr "" +msgstr "Type de données représentant la configuration de @code{git-http-service}." #. type: item #: doc/guix.texi:20310 @@ -37637,12 +37638,12 @@ msgstr "@code{git-root} (par défaut : @file{/srv/git})" #. type: table #: doc/guix.texi:20312 msgid "Directory containing the Git repositories to expose to the world." -msgstr "" +msgstr "Répertoire contenant les dépôts Git à exposer au monde." #. type: table #: doc/guix.texi:20316 msgid "Whether to expose access for all Git repositories in @var{git-root}, even if they do not have the @file{git-daemon-export-ok} file." -msgstr "" +msgstr "Indique s'il faut exposer l'accès de tous les dépôts Git dans @var{git-root}, même s'ils n'ont pas le fichier @file{git-daemon-export-ok}." #. type: item #: doc/guix.texi:20317 @@ -37653,7 +37654,7 @@ msgstr "@code{uri-path} (par défaut : @file{/git/})" #. type: table #: doc/guix.texi:20322 msgid "Path prefix for Git access. With the default @code{/git/} prefix, this will map @code{http://@var{server}/git/@var{repo}.git} to @code{/srv/git/@var{repo}.git}. Requests whose URI paths do not begin with this prefix are not passed on to this Git instance." -msgstr "" +msgstr "Préfixe du chemin pour l'accès Git. Avec le préfixe @code{/git/} par défaut, cela traduira @code{http://@var{server}/git/@var{repo}.git} en @code{/sr/git/@var{repo}.git}. Les requêtes dont les chemins d'URI ne commencent pas par ce préfixe ne seront pas passées à cette instance de Git." #. type: item #: doc/guix.texi:20323 @@ -37664,12 +37665,12 @@ msgstr "@code{fcgiwrap-socket} (par défaut : @code{127.0.0.1:9000})" #. type: table #: doc/guix.texi:20326 msgid "The socket on which the @code{fcgiwrap} daemon is listening. @xref{Web Services}." -msgstr "" +msgstr "Le socket sur lequel le démon @code{fcgiwrap} écoute. @xref{Web Services}." #. type: Plain text #: doc/guix.texi:20333 msgid "There is no @code{git-http-service-type}, currently; instead you can create an @code{nginx-location-configuration} from a @code{git-http-configuration} and then add that location to a web server." -msgstr "" +msgstr "Il n'y a pas de @code{git-http-service-type}, actuellement ; à la place vous pouvez créer un @code{nginx-location-configuration} à partir d'un @code{git-http-configuration} puis ajouter cela au serveur web." #. type: deffn #: doc/guix.texi:20334 @@ -37681,6 +37682,8 @@ msgstr "{Procédure Scheme} git-http-nginx-location-configuration @" #: doc/guix.texi:20339 msgid "[config=(git-http-configuration)] Compute an @code{nginx-location-configuration} that corresponds to the given Git http configuration. An example nginx service definition to serve the default @file{/srv/git} over HTTPS might be:" msgstr "" +"[config=(git-http-configuration)]\n" +"Calcule un @code{nginx-location-configuration} qui correspond à la configuration http Git donnée. Voici un exemple de définition de service nginx qui sert le répertoire @file{/srv/git} par défaut en HTTPS :" #. type: example #: doc/guix.texi:20356 @@ -37721,7 +37724,7 @@ msgstr "" #. type: deffn #: doc/guix.texi:20363 msgid "This example assumes that you are using Let's Encrypt to get your TLS certificate. @xref{Certificate Services}. The default @code{certbot} service will redirect all HTTP traffic on @code{git.my-host.org} to HTTPS. You will also need to add an @code{fcgiwrap} proxy to your system services. @xref{Web Services}." -msgstr "" +msgstr "Ce exemple suppose que vous utilisez Let's Encrypt pour récupérer votre certificat TLS. @xref{Certificate Services}. Le service @code{certbot} par défaut redirigera tout le trafic HTTP de @code{git.my-host.org} en HTTPS. Vous devrez aussi ajouter un mandataire @code{fcgiwrap} à vos services systèmes. @xref{Web Services}." #. type: subsubheading #: doc/guix.texi:20365 @@ -37749,7 +37752,7 @@ msgstr "@uref{https://git.zx2c4.com/cgit/, Cgit} est une interface web pour des #. type: Plain text #: doc/guix.texi:20374 msgid "The following example will configure the service with default values. By default, Cgit can be accessed on port 80 (@code{http://localhost:80})." -msgstr "" +msgstr "L'exemple suivant configurera le service avec les valeurs par défaut. Par défaut, on peut accéder à Cgit sur le port (@code{http://localhost:80})." #. type: example #: doc/guix.texi:20377 @@ -37760,7 +37763,7 @@ msgstr "(service cgit-service-type)\n" #. type: Plain text #: doc/guix.texi:20381 msgid "The @code{file-object} type designates either a file-like object (@pxref{G-Expressions, file-like objects}) or a string." -msgstr "" +msgstr "Le type @code{file-object} désigne soit un objet simili-fichier (@pxref{G-Expressions, file-like objects}), soit une chaîne." #. type: Plain text #: doc/guix.texi:20385 @@ -37798,7 +37801,7 @@ msgstr "{paramètre de @code{cgit-configuration}} file-object about-filter" #. type: deftypevr #: doc/guix.texi:20399 msgid "Specifies a command which will be invoked to format the content of about pages (both top-level and for each repository)." -msgstr "" +msgstr "Spécifie une commande qui doit être invoquée pour formater le contenu des pages « à propos » (au plus haut niveau et pour chaque dépôt)." #. type: deftypevr #: doc/guix.texi:20404 @@ -37809,7 +37812,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string agefile" #. type: deftypevr #: doc/guix.texi:20407 msgid "Specifies a path, relative to each repository path, which can be used to specify the date and time of the youngest commit in the repository." -msgstr "" +msgstr "Spécifie un chemin, relativement à chaque dépôt, qui peut être utilisé pour spécifier la date et l'heure du plus récent commit du dépôt." #. type: deftypevr #: doc/guix.texi:20412 @@ -37820,7 +37823,7 @@ msgstr "{paramètre de @code{cgit-configuration}} file-object auth-filter" #. type: deftypevr #: doc/guix.texi:20415 msgid "Specifies a command that will be invoked for authenticating repository access." -msgstr "" +msgstr "Spécifie une commande qui sera invoquée pour authentifier l'accès au dépôt." #. type: deftypevr #: doc/guix.texi:20420 @@ -37831,7 +37834,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string branch-sort" #. type: deftypevr #: doc/guix.texi:20423 msgid "Flag which, when set to @samp{age}, enables date ordering in the branch ref list, and when set @samp{name} enables ordering by branch name." -msgstr "" +msgstr "Drapeau qui, lorsqu'il vaut @samp{age}, active le trie par date dans la liste des branches, et le trie par nom lorsqu'il vaut @samp{name}." #. type: deftypevr #: doc/guix.texi:20425 @@ -37847,7 +37850,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string cache-root" #. type: deftypevr #: doc/guix.texi:20430 msgid "Path used to store the cgit cache entries." -msgstr "" +msgstr "Chemin utilisé pour stocker les entrées de cache de cgit." #. type: deftypevr #: doc/guix.texi:20432 @@ -37863,7 +37866,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer cache-static-ttl" #. type: deftypevr #: doc/guix.texi:20438 msgid "Number which specifies the time-to-live, in minutes, for the cached version of repository pages accessed with a fixed SHA1." -msgstr "" +msgstr "Nombre qui spécifie le temps de vie, en minute, des versions en cache des pages du dépôt accédées par leur SHA-1." #. type: deftypevr #: doc/guix.texi:20440 doc/guix.texi:20883 @@ -37879,7 +37882,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer cache-dynamic-ttl" #. type: deftypevr #: doc/guix.texi:20446 msgid "Number which specifies the time-to-live, in minutes, for the cached version of repository pages accessed without a fixed SHA1." -msgstr "" +msgstr "Nombre qui spécifie le temps de vie, en minutes, des version en cache des pages du dépôt accédées sans leur SHA1." #. type: deftypevr #: doc/guix.texi:20451 @@ -37890,7 +37893,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer cache-repo-ttl" #. type: deftypevr #: doc/guix.texi:20454 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository summary page." -msgstr "" +msgstr "Nombre qui spécifie le temps de vie, en minute, des version en cache de la page de résumé du dépôt." #. type: deftypevr #: doc/guix.texi:20459 @@ -37901,7 +37904,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer cache-root-ttl" #. type: deftypevr #: doc/guix.texi:20462 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository index page." -msgstr "" +msgstr "Nombre qui spécifie le temps de vie, en minutes, de la version en cache de la page d'index du dépôt." #. type: deftypevr #: doc/guix.texi:20467 @@ -37912,7 +37915,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer cache-scanrc-ttl" #. type: deftypevr #: doc/guix.texi:20470 msgid "Number which specifies the time-to-live, in minutes, for the result of scanning a path for Git repositories." -msgstr "" +msgstr "Nombre qui spécifie le temps de vie, en minutes, de la version en cache du résultat du scan d'un chemin dans le dépôt Git." #. type: deftypevr #: doc/guix.texi:20475 @@ -37923,7 +37926,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer cache-about-ttl" #. type: deftypevr #: doc/guix.texi:20478 msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository about page." -msgstr "" +msgstr "Nombre qui spécifie le temps de vie, en minutes, de la version en cache de la page « à propos » du dépôt." #. type: deftypevr #: doc/guix.texi:20483 @@ -37934,7 +37937,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer cache-snapshot-ttl" #. type: deftypevr #: doc/guix.texi:20486 msgid "Number which specifies the time-to-live, in minutes, for the cached version of snapshots." -msgstr "" +msgstr "Nombre qui spécifie le temps de vie, en minutes, de la version en cache des archives." #. type: deftypevr #: doc/guix.texi:20491 @@ -37945,7 +37948,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer cache-size" #. type: deftypevr #: doc/guix.texi:20494 msgid "The maximum number of entries in the cgit cache. When set to @samp{0}, caching is disabled." -msgstr "" +msgstr "Le nombre maximum d'entrées dans le cache de cgit. Lorsque la valeur est @samp{0}, le cache est désactivé." #. type: deftypevr #: doc/guix.texi:20499 @@ -37956,7 +37959,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean case-sensitive-sort?" #. type: deftypevr #: doc/guix.texi:20501 msgid "Sort items in the repo list case sensitively." -msgstr "" +msgstr "Indique si le tri des éléments est sensible à la casse." #. type: deftypevr #: doc/guix.texi:20506 @@ -37967,7 +37970,7 @@ msgstr "{paramètre de @code{cgit-configuration}} list clone-prefix" #. type: deftypevr #: doc/guix.texi:20509 msgid "List of common prefixes which, when combined with a repository URL, generates valid clone URLs for the repository." -msgstr "" +msgstr "Liste des préfixes communs qui, lorsqu'ils sont combinés à l'URL du dépôt, génèrent des URL de clone valides pour le dépôt." #. type: deftypevr #: doc/guix.texi:20514 @@ -37978,7 +37981,7 @@ msgstr "{paramètre de @code{cgit-configuration}} list clone-url" #. type: deftypevr #: doc/guix.texi:20516 msgid "List of @code{clone-url} templates." -msgstr "" +msgstr "Liste des modèles @code{clone-url}" #. type: deftypevr #: doc/guix.texi:20521 @@ -37989,7 +37992,7 @@ msgstr "{paramètre de @code{cgit-configuration}} file-object commit-filter" #. type: deftypevr #: doc/guix.texi:20523 msgid "Command which will be invoked to format commit messages." -msgstr "" +msgstr "Commande qui sera invoquée pour formater les messages de commit." #. type: deftypevr #: doc/guix.texi:20528 @@ -38000,7 +38003,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string commit-sort" #. type: deftypevr #: doc/guix.texi:20532 doc/guix.texi:21090 msgid "Flag which, when set to @samp{date}, enables strict date ordering in the commit log, and when set to @samp{topo} enables strict topological ordering." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{date}, active le tri par date strict dans le messages de commit, et le tri topologique strict lorsqu'il vaut @samp{topo}." #. type: deftypevr #: doc/guix.texi:20534 @@ -38016,7 +38019,7 @@ msgstr "{paramètre de @code{cgit-configuration}} file-object css" #. type: deftypevr #: doc/guix.texi:20539 msgid "URL which specifies the css document to include in all cgit pages." -msgstr "" +msgstr "URL qui spécifie le document css à inclure dans les pages cgit." #. type: deftypevr #: doc/guix.texi:20541 @@ -38032,7 +38035,7 @@ msgstr "{paramètre de @code{cgit-configuration}} file-object email-filter" #. type: deftypevr #: doc/guix.texi:20548 msgid "Specifies a command which will be invoked to format names and email address of committers, authors, and taggers, as represented in various places throughout the cgit interface." -msgstr "" +msgstr "Spécifie une commande qui sera invoquée pour formater les noms et l'adresse de courriel des commiteurs, des auteurs et des taggueurs, représentés à plusieurs endroits dans l'interface cgit." #. type: deftypevr #: doc/guix.texi:20553 @@ -38043,7 +38046,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean embedded?" #. type: deftypevr #: doc/guix.texi:20556 msgid "Flag which, when set to @samp{#t}, will make cgit generate a HTML fragment suitable for embedding in other HTML pages." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{#t}, fera générer un fragment HTML à cgit qu'il sera possible d'inclure dans d'autres pages HTML." #. type: deftypevr #: doc/guix.texi:20561 @@ -38054,7 +38057,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-commit-graph?" #. type: deftypevr #: doc/guix.texi:20565 msgid "Flag which, when set to @samp{#t}, will make cgit print an ASCII-art commit history graph to the left of the commit messages in the repository log page." -msgstr "" +msgstr "Drapeau qui, lorsqu'il vaut @samp{#t}, fera afficher un historique en ASCII-art à gauche des messages de commit dans la page de log du dépôt." #. type: deftypevr #: doc/guix.texi:20570 @@ -38065,7 +38068,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-filter-override #. type: deftypevr #: doc/guix.texi:20573 msgid "Flag which, when set to @samp{#t}, allows all filter settings to be overridden in repository-specific cgitrc files." -msgstr "" +msgstr "Drapeau qui, lorsqu'il vaut @samp{#t}, permet à tous les paramètres de filtrage d'être modifiés dans des fichiers cgitrc spécifiques au dépôt." #. type: deftypevr #: doc/guix.texi:20578 @@ -38076,7 +38079,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-follow-links?" #. type: deftypevr #: doc/guix.texi:20581 msgid "Flag which, when set to @samp{#t}, allows users to follow a file in the log view." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{#t}, permet aux utilisateurs de suivre un fichier dans la vue « log »." #. type: deftypevr #: doc/guix.texi:20586 @@ -38087,7 +38090,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-http-clone?" #. type: deftypevr #: doc/guix.texi:20589 msgid "If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones." -msgstr "" +msgstr "Si la valeur est @samp{#t}, cgit agira comme un point d'accès HTTP idiot pour les clones Git." #. type: deftypevr #: doc/guix.texi:20594 @@ -38098,7 +38101,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-index-links?" #. type: deftypevr #: doc/guix.texi:20597 msgid "Flag which, when set to @samp{#t}, will make cgit generate extra links \"summary\", \"commit\", \"tree\" for each repo in the repository index." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{#t}, fera générer des liens « résumé », « commit » et « arborescence » supplémentaires poru chaque dépôt dans l'index des dépôts." #. type: deftypevr #: doc/guix.texi:20602 @@ -38109,7 +38112,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-index-owner?" #. type: deftypevr #: doc/guix.texi:20605 msgid "Flag which, when set to @samp{#t}, will make cgit display the owner of each repo in the repository index." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{#t}, fera afficher le propriétaire de chaque dépôt dans l'index des dépôts." #. type: deftypevr #: doc/guix.texi:20610 @@ -38120,7 +38123,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-log-filecount?" #. type: deftypevr #: doc/guix.texi:20613 msgid "Flag which, when set to @samp{#t}, will make cgit print the number of modified files for each commit on the repository log page." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{#t}, fera afficher à cgit le nombre de fichiers modifiés pour chaque commit sur la page de log du dépôt." #. type: deftypevr #: doc/guix.texi:20618 @@ -38131,7 +38134,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-log-linecount?" #. type: deftypevr #: doc/guix.texi:20621 msgid "Flag which, when set to @samp{#t}, will make cgit print the number of added and removed lines for each commit on the repository log page." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{#t}, fera afficher à cgit le nombre de lignes ajoutées et enlevées pour chaque commit de la page de log du dépôt." #. type: deftypevr #: doc/guix.texi:20626 @@ -38142,7 +38145,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-remote-branches #. type: deftypevr #: doc/guix.texi:20629 doc/guix.texi:21153 msgid "Flag which, when set to @code{#t}, will make cgit display remote branches in the summary and refs views." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{#t}, fera afficher les branches distantes dans les vues du résumé et des références." #. type: deftypevr #: doc/guix.texi:20634 @@ -38153,7 +38156,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-subject-links?" #. type: deftypevr #: doc/guix.texi:20638 msgid "Flag which, when set to @code{1}, will make cgit use the subject of the parent commit as link text when generating links to parent commits in commit view." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{1}, fera utiliser à cgit le sujet du commit parent comme texte du lien lors de la génération des liens vers les commits parents dans la vue des commits." #. type: deftypevr #: doc/guix.texi:20643 @@ -38164,7 +38167,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-html-serving?" #. type: deftypevr #: doc/guix.texi:20647 msgid "Flag which, when set to @samp{#t}, will make cgit use the subject of the parent commit as link text when generating links to parent commits in commit view." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{#t}, fera utiliser à cgit l esujet du commit parent comme texte du lien lors de la génération des liens vers le commit parent dans la vue des commits." #. type: deftypevr #: doc/guix.texi:20652 @@ -38175,7 +38178,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-tree-linenumber #. type: deftypevr #: doc/guix.texi:20655 msgid "Flag which, when set to @samp{#t}, will make cgit generate linenumber links for plaintext blobs printed in the tree view." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{#t}, fera générer à cgit des liens vers le numéro de ligne pour les blobs en texte brut affichés dans la vue de l'arborescence." #. type: deftypevr #: doc/guix.texi:20660 @@ -38186,7 +38189,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean enable-git-config?" #. type: deftypevr #: doc/guix.texi:20663 msgid "Flag which, when set to @samp{#f}, will allow cgit to use Git config to set any repo specific settings." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{#t}, permettra à cgit d'utiliser la configuration Git pour spécifier des paramètres spécifiques au dépôt." #. type: deftypevr #: doc/guix.texi:20668 @@ -38197,7 +38200,7 @@ msgstr "{paramètre de @code{cgit-configuration}} file-object favicon" #. type: deftypevr #: doc/guix.texi:20670 msgid "URL used as link to a shortcut icon for cgit." -msgstr "" +msgstr "URL utilisée comme lien vers un icône pour cgit." #. type: deftypevr #: doc/guix.texi:20672 @@ -38213,7 +38216,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string footer" #. type: deftypevr #: doc/guix.texi:20679 msgid "The content of the file specified with this option will be included verbatim at the bottom of all pages (i.e. it replaces the standard \"generated by...\" message)." -msgstr "" +msgstr "Le contenu du fichier spécifié avec cette option sera inclus directement au bas de toutes les pages (c.-à-d.@: qu'il remplace le message « généré par … » générique)." #. type: deftypevr #: doc/guix.texi:20684 @@ -38224,7 +38227,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string head-include" #. type: deftypevr #: doc/guix.texi:20687 msgid "The content of the file specified with this option will be included verbatim in the HTML HEAD section on all pages." -msgstr "" +msgstr "Le contenu du fichier spécifié dans cette option sera inclus directement dans la section HEAD HTML de toutes les pages." #. type: deftypevr #: doc/guix.texi:20692 @@ -38235,7 +38238,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string header" #. type: deftypevr #: doc/guix.texi:20695 msgid "The content of the file specified with this option will be included verbatim at the top of all pages." -msgstr "" +msgstr "Le contenu du fichier spécifié avec cette option sera inclus directement au début de toutes les pages." #. type: deftypevr #: doc/guix.texi:20700 @@ -38246,7 +38249,7 @@ msgstr "{paramètre de @code{cgit-configuration}} file-object include" #. type: deftypevr #: doc/guix.texi:20703 msgid "Name of a configfile to include before the rest of the current config- file is parsed." -msgstr "" +msgstr "Nom d'un fichier de configuration à inclure avant que le reste du fichier de configuration actuel ne soit analysé." #. type: deftypevr #: doc/guix.texi:20708 @@ -38257,7 +38260,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string index-header" #. type: deftypevr #: doc/guix.texi:20711 msgid "The content of the file specified with this option will be included verbatim above the repository index." -msgstr "" +msgstr "Le contenu du fichier spécifié avec cette option sera inclus directement au dessus de l'index des dépôts." #. type: deftypevr #: doc/guix.texi:20716 @@ -38268,7 +38271,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string index-info" #. type: deftypevr #: doc/guix.texi:20719 msgid "The content of the file specified with this option will be included verbatim below the heading on the repository index page." -msgstr "" +msgstr "Le contenu du fichier spécifié avec cette option sera inclus directement en dessous de l'en-tête sur la page d'index du dépôt." #. type: deftypevr #: doc/guix.texi:20724 @@ -38279,7 +38282,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean local-time?" #. type: deftypevr #: doc/guix.texi:20727 msgid "Flag which, if set to @samp{#t}, makes cgit print commit and tag times in the servers timezone." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{#t}, fera afficher à cgit l'heure et la date de commit et de tag dans le fuseau horaire du serveur." #. type: deftypevr #: doc/guix.texi:20732 @@ -38290,7 +38293,7 @@ msgstr "{paramètre de @code{cgit-configuration}} file-object logo" #. type: deftypevr #: doc/guix.texi:20735 msgid "URL which specifies the source of an image which will be used as a logo on all cgit pages." -msgstr "" +msgstr "URL qui spécifie la source d'une image utilisé comme logo sur toutes les pages cgit." #. type: deftypevr #: doc/guix.texi:20737 @@ -38306,7 +38309,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string logo-link" #. type: deftypevr #: doc/guix.texi:20742 doc/guix.texi:21199 msgid "URL loaded when clicking on the cgit logo image." -msgstr "" +msgstr "URL chargée lors du clic sur l'image du logo de cgit." #. type: deftypevr #: doc/guix.texi:20747 @@ -38317,7 +38320,7 @@ msgstr "{paramètre de @code{cgit-configuration}} file-object owner-filter" #. type: deftypevr #: doc/guix.texi:20750 msgid "Command which will be invoked to format the Owner column of the main page." -msgstr "" +msgstr "Commande qui sera invoquée pour formater la colonne propriétaire sur la page principale." #. type: deftypevr #: doc/guix.texi:20755 @@ -38328,7 +38331,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer max-atom-items" #. type: deftypevr #: doc/guix.texi:20757 msgid "Number of items to display in atom feeds view." -msgstr "" +msgstr "Nombre d'éléments à afficher dans la vue des flux atom." #. type: deftypevr #: doc/guix.texi:20759 doc/guix.texi:20994 doc/guix.texi:21002 @@ -38345,7 +38348,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer max-commit-count" #. type: deftypevr #: doc/guix.texi:20764 msgid "Number of entries to list per page in \"log\" view." -msgstr "" +msgstr "Nombre d'éléments à lister par page dans la vue « log »." #. type: deftypevr #: doc/guix.texi:20766 doc/guix.texi:20781 @@ -38361,7 +38364,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer max-message-length" #. type: deftypevr #: doc/guix.texi:20771 msgid "Number of commit message characters to display in \"log\" view." -msgstr "" +msgstr "Nombre caractères de messages de commit à afficher dans la vue « log »." #. type: deftypevr #: doc/guix.texi:20773 doc/guix.texi:20789 @@ -38377,7 +38380,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer max-repo-count" #. type: deftypevr #: doc/guix.texi:20779 msgid "Specifies the number of entries to list per page on the repository index page." -msgstr "" +msgstr "Spécifie le nombre d'éléments à lister par page sur la page de l'index des dépôts." #. type: deftypevr #: doc/guix.texi:20784 @@ -38388,7 +38391,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer max-repodesc-length" #. type: deftypevr #: doc/guix.texi:20787 msgid "Specifies the maximum number of repo description characters to display on the repository index page." -msgstr "" +msgstr "Spécifie le nombre maximum de caractères de description de dépôts à afficher sur la page d'index des dépôts." #. type: deftypevr #: doc/guix.texi:20792 @@ -38399,7 +38402,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer max-blob-size" #. type: deftypevr #: doc/guix.texi:20794 msgid "Specifies the maximum size of a blob to display HTML for in KBytes." -msgstr "" +msgstr "Spécifie la taille maximale d'un blob pour lequel afficher du HTML en kilo-octets." #. type: deftypevr #: doc/guix.texi:20799 @@ -38410,7 +38413,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string max-stats" #. type: deftypevr #: doc/guix.texi:20802 msgid "Maximum statistics period. Valid values are @samp{week},@samp{month}, @samp{quarter} and @samp{year}." -msgstr "" +msgstr "Période de statistiques maximale. Les valeurs valides sont @samp{week}, @samp{month}, @samp{quarter} et @samp{year}." #. type: deftypevr #: doc/guix.texi:20807 @@ -38421,7 +38424,7 @@ msgstr "{paramètre de @code{cgit-configuration}} mimetype-alist mimetype" #. type: deftypevr #: doc/guix.texi:20809 msgid "Mimetype for the specified filename extension." -msgstr "" +msgstr "Type mime pour l'extension de fichier spécifiée." #. type: deftypevr #: doc/guix.texi:20813 @@ -38437,7 +38440,7 @@ msgstr "{paramètre de @code{cgit-configuration}} file-object mimetype-file" #. type: deftypevr #: doc/guix.texi:20818 msgid "Specifies the file to use for automatic mimetype lookup." -msgstr "" +msgstr "Spécifie le fichier à utiliser pour la recherche automatique de type mime." #. type: deftypevr #: doc/guix.texi:20823 @@ -38448,7 +38451,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string module-link" #. type: deftypevr #: doc/guix.texi:20826 msgid "Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing." -msgstr "" +msgstr "Texte qui sera utilisé comme chaîne de formatage pour un lien hypertexte lorsqu'un sous-module est affiché dans la liste du répertoire." #. type: deftypevr #: doc/guix.texi:20831 @@ -38459,7 +38462,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean nocache?" #. type: deftypevr #: doc/guix.texi:20833 msgid "If set to the value @samp{#t} caching will be disabled." -msgstr "" +msgstr "Si la valeur est @samp{#t}, le cache est désactivé." #. type: deftypevr #: doc/guix.texi:20838 @@ -38470,7 +38473,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean noplainemail?" #. type: deftypevr #: doc/guix.texi:20841 msgid "If set to @samp{#t} showing full author email addresses will be disabled." -msgstr "" +msgstr "Si la valeur est @samp{#t}, l'affichage des adresse de courriel des auteurs sera désactivé." #. type: deftypevr #: doc/guix.texi:20846 @@ -38481,7 +38484,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean noheader?" #. type: deftypevr #: doc/guix.texi:20849 msgid "Flag which, when set to @samp{#t}, will make cgit omit the standard header on all pages." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{#t}, fera omettre à cgit l'en-tête standard sur toutes les pages." #. type: deftypevr #: doc/guix.texi:20854 @@ -38492,7 +38495,7 @@ msgstr "{paramètre de @code{cgit-configuration}} project-list project-list" #. type: deftypevr #: doc/guix.texi:20858 msgid "A list of subdirectories inside of @code{repository-directory}, relative to it, that should loaded as Git repositories. An empty list means that all subdirectories will be loaded." -msgstr "" +msgstr "UNe liste de sous-répertoires dans @code{repository-directory}, relativement à lui, qui devrait être chargé comme des dépôts Git. Une liste vide signifie que tous les sous-répertoires seront chargés." #. type: deftypevr #: doc/guix.texi:20863 @@ -38503,7 +38506,7 @@ msgstr "{paramètre de @code{cgit-configuration}} file-object readme" #. type: deftypevr #: doc/guix.texi:20865 msgid "Text which will be used as default value for @code{cgit-repo-readme}." -msgstr "" +msgstr "Texte utilisé comme valeur par défaut pour @code{cgit-repo-readme}." #. type: deftypevr #: doc/guix.texi:20870 @@ -38514,7 +38517,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean remove-suffix?" #. type: deftypevr #: doc/guix.texi:20874 msgid "If set to @code{#t} and @code{repository-directory} is enabled, if any repositories are found with a suffix of @code{.git}, this suffix will be removed for the URL and name." -msgstr "" +msgstr "Si la valeur est @code{#t} et que @code{repository-directory} est activé, si un dépôt avec un suffixe de @code{.git} est trouvé, ce suffixe sera supprimé de l'URL et du nom." #. type: deftypevr #: doc/guix.texi:20879 @@ -38525,7 +38528,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer renamelimit" #. type: deftypevr #: doc/guix.texi:20881 msgid "Maximum number of files to consider when detecting renames." -msgstr "" +msgstr "Nombre maximum de fichiers à considérer lors de la détection des renommages." #. type: deftypevr #: doc/guix.texi:20886 @@ -38536,7 +38539,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string repository-sort" #. type: deftypevr #: doc/guix.texi:20888 msgid "The way in which repositories in each section are sorted." -msgstr "" +msgstr "La manière dont les dépôt de chaque section sont rangés." #. type: deftypevr #: doc/guix.texi:20893 @@ -38547,7 +38550,7 @@ msgstr "{paramètre de @code{cgit-configuration}} robots-list robots" #. type: deftypevr #: doc/guix.texi:20895 msgid "Text used as content for the @code{robots} meta-tag." -msgstr "" +msgstr "Texte utilisé comme contenu du méta-attribut @code{robots}." #. type: deftypevr #: doc/guix.texi:20897 @@ -38563,7 +38566,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string root-desc" #. type: deftypevr #: doc/guix.texi:20902 msgid "Text printed below the heading on the repository index page." -msgstr "" +msgstr "Texte affiché en dessous de l'en-tête de la page d'index des dépôts." #. type: deftypevr #: doc/guix.texi:20904 @@ -38579,7 +38582,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string root-readme" #. type: deftypevr #: doc/guix.texi:20910 msgid "The content of the file specified with this option will be included verbatim below thef \"about\" link on the repository index page." -msgstr "" +msgstr "Le contenu du fichier spécifié avec cette option sera inclus directement en dessous du lien « à propos » sur la page d'index du dépôt." #. type: deftypevr #: doc/guix.texi:20915 @@ -38590,7 +38593,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string root-title" #. type: deftypevr #: doc/guix.texi:20917 msgid "Text printed as heading on the repository index page." -msgstr "" +msgstr "Texte affiché sur la page d'index des dépôts." #. type: deftypevr #: doc/guix.texi:20922 @@ -38601,7 +38604,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean scan-hidden-path" #. type: deftypevr #: doc/guix.texi:20928 msgid "If set to @samp{#t} and repository-directory is enabled, repository-directory will recurse into directories whose name starts with a period. Otherwise, repository-directory will stay away from such directories, considered as \"hidden\". Note that this does not apply to the \".git\" directory in non-bare repos." -msgstr "" +msgstr "Si la valeur est @samp{#t} et que repository-directory est activé, repository-directory recherchera de manière récursive dans les répertoires dont le nom commence par un point. Sinon, repository-directory restera hors de ces répertoires, considérés comme « cachés ». Remarquez que cela ne s'applique pas au répertoire « .git » dans le dépôts." #. type: deftypevr #: doc/guix.texi:20933 @@ -38612,7 +38615,7 @@ msgstr "{paramètre de @code{cgit-configuration}} list snapshots" #. type: deftypevr #: doc/guix.texi:20936 msgid "Text which specifies the default set of snapshot formats that cgit generates links for." -msgstr "" +msgstr "Texte qui spécifie l'ensemble des formats d'archives par défaut pour lesquelles cgit générera un lien." #. type: deftypevr #: doc/guix.texi:20941 @@ -38623,7 +38626,7 @@ msgstr "{paramètre de @code{cgit-configuration}} repository-directory repositor #. type: deftypevr #: doc/guix.texi:20944 msgid "Name of the directory to scan for repositories (represents @code{scan-path})." -msgstr "" +msgstr "Nom du répertoire à scanner pour trouver les dépôts (représente @code{scan-path})." #. type: deftypevr #: doc/guix.texi:20946 @@ -38639,7 +38642,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string section" #. type: deftypevr #: doc/guix.texi:20952 doc/guix.texi:21268 msgid "The name of the current repository section - all repositories defined after this option will inherit the current section name." -msgstr "" +msgstr "Le nom de la section de dépôts actuelle — tous les dépôts définis après ce point hériterons du nom de section actuel." #. type: deftypevr #: doc/guix.texi:20957 @@ -38650,7 +38653,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string section-sort" #. type: deftypevr #: doc/guix.texi:20960 msgid "Flag which, when set to @samp{1}, will sort the sections on the repository listing by name." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{1}, triera les sections dans la liste des dépôts par nom." #. type: deftypevr #: doc/guix.texi:20965 @@ -38661,7 +38664,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer section-from-path" #. type: deftypevr #: doc/guix.texi:20968 msgid "A number which, if defined prior to repository-directory, specifies how many path elements from each repo path to use as a default section name." -msgstr "" +msgstr "Un nombre qui, s'il est défini avant repository-directory, spécifier combien d'éléments de chemin de chaque chemin de dépôt utiliser comme nom de section par défaut." #. type: deftypevr #: doc/guix.texi:20973 @@ -38672,7 +38675,7 @@ msgstr "{paramètre de @code{cgit-configuration}} boolean side-by-side-diffs?" #. type: deftypevr #: doc/guix.texi:20976 msgid "If set to @samp{#t} shows side-by-side diffs instead of unidiffs per default." -msgstr "" +msgstr "Si la valeur est @samp{#t}, afficher des diffs côte à côte au lieu des unidiffs par défaut." #. type: deftypevr #: doc/guix.texi:20981 @@ -38683,7 +38686,7 @@ msgstr "{paramètre de @code{cgit-configuration}} file-object source-filter" #. type: deftypevr #: doc/guix.texi:20984 msgid "Specifies a command which will be invoked to format plaintext blobs in the tree view." -msgstr "" +msgstr "Spécifie une commande qui sera invoquée pour formater les blobs en texte brut dans la vue de l'arborescence." #. type: deftypevr #: doc/guix.texi:20989 @@ -38694,7 +38697,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer summary-branches" #. type: deftypevr #: doc/guix.texi:20992 msgid "Specifies the number of branches to display in the repository \"summary\" view." -msgstr "" +msgstr "Spécifie le nombre de branches à afficher dans la vue de résumé du dépôt." #. type: deftypevr #: doc/guix.texi:20997 @@ -38705,7 +38708,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer summary-log" #. type: deftypevr #: doc/guix.texi:21000 msgid "Specifies the number of log entries to display in the repository \"summary\" view." -msgstr "" +msgstr "Spécifie le nombre d'élément du journal à afficher dans la vue résumé du dépôt." #. type: deftypevr #: doc/guix.texi:21005 @@ -38716,7 +38719,7 @@ msgstr "{paramètre de @code{cgit-configuration}} integer summary-tags" #. type: deftypevr #: doc/guix.texi:21008 msgid "Specifies the number of tags to display in the repository \"summary\" view." -msgstr "" +msgstr "Spécifie le nombre de tags à afficher dans la vue résumé du dépôt." #. type: deftypevr #: doc/guix.texi:21013 @@ -38727,7 +38730,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string strict-export" #. type: deftypevr #: doc/guix.texi:21016 msgid "Filename which, if specified, needs to be present within the repository for cgit to allow access to that repository." -msgstr "" +msgstr "Nom de fichier qui, s'il est spécifié, doit être présent dans le dépôt pour que cgit accorde l'accès à ce dépôt." #. type: deftypevr #: doc/guix.texi:21021 @@ -38738,7 +38741,7 @@ msgstr "{paramètre de @code{cgit-configuration}} string virtual-root" #. type: deftypevr #: doc/guix.texi:21023 msgid "URL which, if specified, will be used as root for all cgit links." -msgstr "" +msgstr "URL qui, si elle est spécifiée, sera utilisée comme racine pour tous les liens cgit." #. type: deftypevr #: doc/guix.texi:21025 @@ -38754,7 +38757,7 @@ msgstr "{paramètre de @code{cgit-configuration}} repository-cgit-configuration- #. type: deftypevr #: doc/guix.texi:21030 msgid "A list of @dfn{cgit-repo} records to use with config." -msgstr "" +msgstr "Une liste d'enregistrements @dfn{cgit-repo} à utiliser avec config." #. type: deftypevr #: doc/guix.texi:21034 @@ -38770,7 +38773,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-list snapshots #. type: deftypevr #: doc/guix.texi:21038 msgid "A mask of snapshot formats for this repo that cgit generates links for, restricted by the global @code{snapshots} setting." -msgstr "" +msgstr "Un masque de formats d'archives pour ce dépôt pour lesquelles cgit générera un lien, restreint par le paramètre @code{snapshots} global." #. type: deftypevr #: doc/guix.texi:21043 @@ -38781,7 +38784,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-file-object so #. type: deftypevr #: doc/guix.texi:21045 msgid "Override the default @code{source-filter}." -msgstr "" +msgstr "Modifie le @code{source-filter} par défaut." #. type: deftypevr #: doc/guix.texi:21050 @@ -38792,7 +38795,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string url" #. type: deftypevr #: doc/guix.texi:21052 msgid "The relative URL used to access the repository." -msgstr "" +msgstr "URL relative utilisée pour accéder au dépôt." #. type: deftypevr #: doc/guix.texi:21057 @@ -38803,7 +38806,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-file-object ab #. type: deftypevr #: doc/guix.texi:21059 msgid "Override the default @code{about-filter}." -msgstr "" +msgstr "Modifie le paramètre @code{about-filter} par défaut." #. type: deftypevr #: doc/guix.texi:21064 @@ -38814,7 +38817,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string branch- #. type: deftypevr #: doc/guix.texi:21067 msgid "Flag which, when set to @samp{age}, enables date ordering in the branch ref list, and when set to @samp{name} enables ordering by branch name." -msgstr "" +msgstr "Drapeau qui, s'il vaut @samp{age}, active le tri par date dans la liste des branches, et lorsqu'il vaut @samp{name}, le tri par nom." #. type: deftypevr #: doc/guix.texi:21072 @@ -38825,7 +38828,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-list clone-url #. type: deftypevr #: doc/guix.texi:21074 msgid "A list of URLs which can be used to clone repo." -msgstr "" +msgstr "Un liste d'URL qui peuvent être utilisées pour cloner ce dépôt." #. type: deftypevr #: doc/guix.texi:21079 @@ -38836,7 +38839,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-file-object co #. type: deftypevr #: doc/guix.texi:21081 msgid "Override the default @code{commit-filter}." -msgstr "" +msgstr "Modifie le paramètre @code{commit-filter} par défaut." #. type: deftypevr #: doc/guix.texi:21086 @@ -38853,7 +38856,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string defbran #. type: deftypevr #: doc/guix.texi:21100 msgid "The name of the default branch for this repository. If no such branch exists in the repository, the first branch name (when sorted) is used as default instead. By default branch pointed to by HEAD, or \"master\" if there is no suitable HEAD." -msgstr "" +msgstr "Le nom de la branche par défaut de ce dépôt. Si cette branche n'existe pas dans le dépôt, le premier nom de branche (trié) sera utilisé par défaut. Par défaut la branche pointée par HEAD, ou « master » s'il n'y a pas de HEAD convenable." #. type: deftypevr #: doc/guix.texi:21105 @@ -38864,7 +38867,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string desc" #. type: deftypevr #: doc/guix.texi:21107 msgid "The value to show as repository description." -msgstr "" +msgstr "La valeur à afficher comme description du dépôt." #. type: deftypevr #: doc/guix.texi:21112 @@ -38875,7 +38878,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string homepag #. type: deftypevr #: doc/guix.texi:21114 msgid "The value to show as repository homepage." -msgstr "" +msgstr "La valeur à afficher comme page d'accueil du dépôt." #. type: deftypevr #: doc/guix.texi:21119 @@ -38886,7 +38889,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-file-object em #. type: deftypevr #: doc/guix.texi:21121 msgid "Override the default @code{email-filter}." -msgstr "" +msgstr "Modifie le paramètre @code{email-filter} par défaut." #. type: deftypevr #: doc/guix.texi:21126 @@ -38897,7 +38900,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean #. type: deftypevr #: doc/guix.texi:21129 msgid "A flag which can be used to disable the global setting @code{enable-commit-graph?}." -msgstr "" +msgstr "Un drapeau qui peut être utilisé pour désactiver le paramètre @code{enable-commit-graph?} global." #. type: deftypevr #: doc/guix.texi:21134 @@ -38908,7 +38911,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean #. type: deftypevr #: doc/guix.texi:21137 msgid "A flag which can be used to disable the global setting @code{enable-log-filecount?}." -msgstr "" +msgstr "Un drapeau qui peut être utilisé pour désactiver le paramètre @code{enable-log-filecount?} global." #. type: deftypevr #: doc/guix.texi:21142 @@ -38919,7 +38922,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean #. type: deftypevr #: doc/guix.texi:21145 msgid "A flag which can be used to disable the global setting @code{enable-log-linecount?}." -msgstr "" +msgstr "Un drapeau qui peut être utilisé pour désactiver le paramètre @code{enable-log-linecount?} global." #. type: deftypevr #: doc/guix.texi:21150 @@ -38936,7 +38939,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean #. type: deftypevr #: doc/guix.texi:21161 msgid "A flag which can be used to override the global setting @code{enable-subject-links?}." -msgstr "" +msgstr "Un drapeau qui peut être utilisé pour modifier le paramètre @code{enable-subject-links?} global." #. type: deftypevr #: doc/guix.texi:21166 @@ -38947,7 +38950,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean #. type: deftypevr #: doc/guix.texi:21169 msgid "A flag which can be used to override the global setting @code{enable-html-serving?}." -msgstr "" +msgstr "Un drapeau qui peut être utilisé pour modifier le paramètre @code{enable-html-serving?} global." #. type: deftypevr #: doc/guix.texi:21174 @@ -38958,7 +38961,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-boolean hide?" #. type: deftypevr #: doc/guix.texi:21177 msgid "Flag which, when set to @code{#t}, hides the repository from the repository index." -msgstr "" +msgstr "Drapeau qui, s'il vaut @code{#t}, cache le dépôt de l'index des dépôts." #. type: deftypevr #: doc/guix.texi:21182 @@ -38969,7 +38972,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-boolean ignore #. type: deftypevr #: doc/guix.texi:21184 msgid "Flag which, when set to @samp{#t}, ignores the repository." -msgstr "" +msgstr "Drapeau qui, s'il vaut @code{#t}, ignore le dépôt." #. type: deftypevr #: doc/guix.texi:21189 @@ -38980,7 +38983,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-file-object lo #. type: deftypevr #: doc/guix.texi:21192 msgid "URL which specifies the source of an image which will be used as a logo on this repo’s pages." -msgstr "" +msgstr "URL qui spécifie la source d'une image qui sera utilisée comme logo sur les pages de ce dépôt." #. type: deftypevr #: doc/guix.texi:21197 @@ -38997,7 +39000,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-file-object ow #. type: deftypevr #: doc/guix.texi:21206 msgid "Override the default @code{owner-filter}." -msgstr "" +msgstr "Modifie le paramètre @code{owner-filter} par défaut." #. type: deftypevr #: doc/guix.texi:21211 @@ -39008,7 +39011,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string module- #. type: deftypevr #: doc/guix.texi:21215 msgid "Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing. The arguments for the formatstring are the path and SHA1 of the submodule commit." -msgstr "" +msgstr "Texte qui sera utilisé comme chaîne de formatage pour un lien hypertexte lorsqu'un sous-module est affiché dans une liste de fichiers. Les arguments pour la chaîne de formatage sont le chemin et le SHA1 du commit du sous-module." #. type: deftypevr #: doc/guix.texi:21220 @@ -39019,7 +39022,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} module-link-path mo #. type: deftypevr #: doc/guix.texi:21224 msgid "Text which will be used as the formatstring for a hyperlink when a submodule with the specified subdirectory path is printed in a directory listing." -msgstr "" +msgstr "Texte qui sera utilisé comme chaîne de formatage lorsqu'un sous-module avec un chemin spécifié sera affiché dans une liste de fichiers." #. type: deftypevr #: doc/guix.texi:21229 @@ -39030,7 +39033,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string max-sta #. type: deftypevr #: doc/guix.texi:21231 msgid "Override the default maximum statistics period." -msgstr "" +msgstr "Modifie la période de statistique maximale par défaut." #. type: deftypevr #: doc/guix.texi:21236 @@ -39041,7 +39044,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string name" #. type: deftypevr #: doc/guix.texi:21238 msgid "The value to show as repository name." -msgstr "" +msgstr "La valeur à afficher comme nom de dépôt." #. type: deftypevr #: doc/guix.texi:21243 @@ -39052,7 +39055,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string owner" #. type: deftypevr #: doc/guix.texi:21245 msgid "A value used to identify the owner of the repository." -msgstr "" +msgstr "Une valeur utilisée pour identifier le propriétaire du dépôt." #. type: deftypevr #: doc/guix.texi:21250 @@ -39063,7 +39066,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string path" #. type: deftypevr #: doc/guix.texi:21252 msgid "An absolute path to the repository directory." -msgstr "" +msgstr "Un chemin absolu vers le répertoire du dépôt." #. type: deftypevr #: doc/guix.texi:21257 @@ -39074,7 +39077,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-string readme" #. type: deftypevr #: doc/guix.texi:21260 msgid "A path (relative to repo) which specifies a file to include verbatim as the \"About\" page for this repo." -msgstr "" +msgstr "Un chemin (relatif au dépôt) qui spécifie un fichier à inclure directement comme page « À propos » pour ce dépôt." #. type: deftypevr #: doc/guix.texi:21265 @@ -39091,7 +39094,7 @@ msgstr "{paramètre de @code{repository-cgit-configuration}} repo-list extra-opt #. type: deftypevr #: doc/guix.texi:21275 doc/guix.texi:21284 msgid "Extra options will be appended to cgitrc file." -msgstr "" +msgstr "Options supplémentaires ajoutées à la fin du fichier cgitrc." #. type: deftypevr #: doc/guix.texi:21282 @@ -39102,7 +39105,7 @@ msgstr "{paramètre de @code{cgit-configuration}} list extra-options" #. type: Plain text #: doc/guix.texi:21296 msgid "However, it could be that you just want to get a @code{cgitrc} up and running. In that case, you can pass an @code{opaque-cgit-configuration} as a record to @code{cgit-service-type}. As its name indicates, an opaque configuration does not have easy reflective capabilities." -msgstr "" +msgstr "Cependant, vous pourriez vouloir simplement récupérer un @code{cgitrc} et l'utiliser. Dans ce cas, vous pouvez passer un @code{opaque-cgit-configuration} comme enregistrement à @code{cgit-service-type}. Comme son nom l'indique, une configuration opaque n'a pas de capacité de réflexion facile." #. type: Plain text #: doc/guix.texi:21298 @@ -39118,7 +39121,7 @@ msgstr "{paramètre de @code{opaque-cgit-configuration}} package cgit" #. type: deftypevr #: doc/guix.texi:21301 msgid "The cgit package." -msgstr "" +msgstr "Le paquet cgit." #. type: deftypevr #: doc/guix.texi:21303 @@ -39129,12 +39132,12 @@ msgstr "{paramètre de @code{opaque-cgit-configuration}} string string" #. type: deftypevr #: doc/guix.texi:21305 msgid "The contents of the @code{cgitrc}, as a string." -msgstr "" +msgstr "Le contenu de @code{cgitrc}, en tant que chaîne de caractère." #. type: Plain text #: doc/guix.texi:21309 msgid "For example, if your @code{cgitrc} is just the empty string, you could instantiate a cgit service like this:" -msgstr "" +msgstr "Par exemple, si votre @code{cgitrc} est juste la chaîne vide, vous pouvez instancier un service cgit ainsi :" #. type: example #: doc/guix.texi:21314 @@ -39169,17 +39172,17 @@ msgstr "Git, hébergement" #. type: Plain text #: doc/guix.texi:21322 msgid "@uref{http://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git repositories on a central server." -msgstr "" +msgstr "@uref{http://gitolite.com/gitolite/, Gitolite} est un outil pour héberger des dépôts Git sur un serveur central." #. type: Plain text #: doc/guix.texi:21325 msgid "Gitolite can handle multiple repositories and users, and supports flexible configuration of the permissions for the users on the repositories." -msgstr "" +msgstr "Gitolite peut gérer plusieurs dépôts et utilisateurs et supporte une configuration flexible des permissions pour les utilisateurs sur ces dépôts." #. type: Plain text #: doc/guix.texi:21328 msgid "The following example will configure Gitolite using the default @code{git} user, and the provided SSH public key." -msgstr "" +msgstr "L'exemple suivant configure Gitolite en utilisant l'utilisateur @code{git} par défaut et la clef SSH fournie." #. type: example #: doc/guix.texi:21335 @@ -39200,18 +39203,18 @@ msgstr "" #. type: Plain text #: doc/guix.texi:21340 msgid "Gitolite is configured through a special admin repository which you can clone, for example, if you setup Gitolite on @code{example.com}, you would run the following command to clone the admin repository." -msgstr "" +msgstr "Gitolite est configuré via un dépôt d'administration spécial que vous pouvez cloner. Par exemple, si vous hébergez Gitolite sur @code{example.com}, vous pouvez lancer la commande suivante pour cloner le dépôt d'administration :" #. type: example #: doc/guix.texi:21343 #, no-wrap msgid "git clone git@@example.com:gitolite-admin\n" -msgstr "" +msgstr "git clone git@@example.com:gitolite-admin\n" #. type: Plain text #: doc/guix.texi:21349 msgid "When the Gitolite service is activated, the provided @code{admin-pubkey} will be inserted in to the @file{keydir} directory in the gitolite-admin repository. If this results in a change in the repository, it will be committed using the message ``gitolite setup by GNU Guix''." -msgstr "" +msgstr "Lorsque le service Gitolite est activé, la clef @code{admin-pubkey} fournie sera insérée dans le répertoire @file{keydir} du dépôt gitolite-admin. Si cela change le dépôt, un commit sera effectué avec le message « gitolite setup by GNU Guix »." #. type: deftp #: doc/guix.texi:21350 @@ -39244,7 +39247,7 @@ msgstr "@code{user} (par défaut : @var{git})" #. type: table #: doc/guix.texi:21360 msgid "User to use for Gitolite. This will be user that you use when accessing Gitolite over SSH." -msgstr "" +msgstr "Utilisateur pour utiliser Gitolite. Cela sera l'utilisateur à utiliser pour accéder à Gitolite par SSH." #. type: item #: doc/guix.texi:21361 @@ -39293,7 +39296,7 @@ msgstr "Un objet « simili-fichier » (@pxref{G-Expressions, file-like objects}) #. type: table #: doc/guix.texi:21377 msgid "To specify the SSH key as a string, use the @code{plain-file} function." -msgstr "" +msgstr "Pour spécifier la clef SSH comme chaîne de caractère, utilisez la fonction @code{plain-file}." #. type: example #: doc/guix.texi:21380 @@ -39321,12 +39324,12 @@ msgstr "@code{umask} (par défaut : @code{#o0077})" #. type: table #: doc/guix.texi:21392 msgid "This controls the permissions Gitolite sets on the repositories and their contents." -msgstr "" +msgstr "Cela contrôle les permissions que Gitolite propose sur les dépôts et leur contenu." #. type: table #: doc/guix.texi:21396 msgid "A value like @code{#o0027} will give read access to the group used by Gitolite (by default: @code{git}). This is necessary when using Gitolite with software like cgit or gitweb." -msgstr "" +msgstr "Une valeur comme @code{#o0027} donnera accès en lecture au groupe utilisé par Gitolite (par défaut : @code{git}). Cel aest nécessaire lorsque vous utilise Gitolite avec un logiciel comme cgit ou gitweb." #. type: item #: doc/guix.texi:21397 @@ -39337,7 +39340,7 @@ msgstr "@code{git-config-keys} (par défaut : @code{\"\"})" #. type: table #: doc/guix.texi:21400 msgid "Gitolite allows you to set git config values using the \"config\" keyword. This setting allows control over the config keys to accept." -msgstr "" +msgstr "Gitolite vous permet de modifier les configurations git avec le mot-clef « config ». Ce paramètre vous permet de contrôler les clefs de configuration acceptables." #. type: item #: doc/guix.texi:21401 @@ -39348,7 +39351,7 @@ msgstr "@code{roles} (par défaut : @code{'((\"READERS\" . 1) (\"WRITERS\" . ))} #. type: table #: doc/guix.texi:21403 msgid "Set the role names allowed to be used by users running the perms command." -msgstr "" +msgstr "Indique les noms des rôles qui peuvent être utilisés par les utilisateurs avec la commande perms." #. type: item #: doc/guix.texi:21404 @@ -39359,13 +39362,13 @@ msgstr "@code{enable} (par défaut : @code{'(\"help\" \"desc\" \"info\" \"perms\ #. type: table #: doc/guix.texi:21406 msgid "This setting controls the commands and features to enable within Gitolite." -msgstr "" +msgstr "Ce paramètre contrôle les commandes et les fonctionnalités à activer dans Gitolite." #. type: subsubheading #: doc/guix.texi:21414 #, no-wrap msgid "The Battle for Wesnoth Service" -msgstr "" +msgstr "Le service de la Bataille pour Wesnoth" #. type: cindex #: doc/guix.texi:21415 @@ -39376,7 +39379,7 @@ msgstr "wesnothd" #. type: Plain text #: doc/guix.texi:21419 msgid "@uref{https://wesnoth.org, The Battle for Wesnoth} is a fantasy, turn based tactical strategy game, with several single player campaigns, and multiplayer games (both networked and local)." -msgstr "" +msgstr "@uref{https://wesnoth.org, La Bataille pour Wesnoth} est un jeu de stratégie en tour par tour dans un univers fantastique, avec plusieurs campagnes solo et des parties multijoueurs (en réseau et en local)." #. type: defvar #: doc/guix.texi:21420 @@ -39387,7 +39390,7 @@ msgstr "{Variable Scheme} wesnothd-service-type" #. type: defvar #: doc/guix.texi:21424 msgid "Service type for the wesnothd service. Its value must be a @code{wesnothd-configuration} object. To run wesnothd in the default configuration, instantiate it as:" -msgstr "" +msgstr "Type de service pour le service wesnothd. Sa valeur doit être un objet @code{wesnothd-configuration}. Pour lancer wesnothd avec la configuration par défaut, instanciez-le ainsi :" #. type: example #: doc/guix.texi:21427 @@ -39404,7 +39407,7 @@ msgstr "{Type de données} wesnothd-configuration" #. type: deftp #: doc/guix.texi:21432 msgid "Data type representing the configuration of @command{wesnothd}." -msgstr "" +msgstr "Type de donées représentant la configuration de @command{wesnothd}." #. type: item #: doc/guix.texi:21434 @@ -39415,7 +39418,7 @@ msgstr "@code{package} (par défaut : @code{wesnoth-server})" #. type: table #: doc/guix.texi:21436 msgid "The wesnoth server package to use." -msgstr "" +msgstr "Le paquet de serveur de wesnoth à utiliser." #. type: item #: doc/guix.texi:21437 @@ -39426,13 +39429,13 @@ msgstr "@code{port} (par défaut : @code{15000})" #. type: table #: doc/guix.texi:21439 msgid "The port to bind the server to." -msgstr "" +msgstr "Le pour sur lequel lier le serveur." #. type: cindex #: doc/guix.texi:21445 #, no-wrap msgid "fingerprint" -msgstr "" +msgstr "empreinte digitale" #. type: subsubheading #: doc/guix.texi:21446 @@ -39454,7 +39457,7 @@ msgstr "{Variable Scheme} fprintd-service-type" #. type: defvr #: doc/guix.texi:21454 msgid "The service type for @command{fprintd}, which provides the fingerprint reading capability." -msgstr "" +msgstr "Le type de service pour @command{fprintd}, qui fournit des capacités de lecture d'empreinte." #. type: example #: doc/guix.texi:21457 @@ -39472,12 +39475,12 @@ msgstr "sysctl" #: doc/guix.texi:21461 #, no-wrap msgid "System Control Service" -msgstr "" +msgstr "Service de contrôle du système" #. type: Plain text #: doc/guix.texi:21465 msgid "The @code{(gnu services sysctl)} provides a service to configure kernel parameters at boot." -msgstr "" +msgstr "Le module @code{(gnu services sysctl)} fournit un service pour configurer les paramètres du noyau au démarrage." #. type: defvr #: doc/guix.texi:21466 @@ -39488,7 +39491,7 @@ msgstr "{Variable Scheme} sysctl-service-type" #. type: defvr #: doc/guix.texi:21470 msgid "The service type for @command{sysctl}, which modifies kernel parameters under @file{/proc/sys/}. To enable IPv4 forwarding, it can be instantiated as:" -msgstr "" +msgstr "Le type de service pour @command{sysctl}, qui modifie les paramètres du noyau dans @file{/proc/sys/}. Pour activer le transfert d'IPv4, vous pouvez l'instancier ainsi :" #. type: example #: doc/guix.texi:21475 @@ -39498,6 +39501,9 @@ msgid "" " (sysctl-configuration\n" " (settings '((\"net.ipv4.ip_forward\" . \"1\")))))\n" msgstr "" +"(service sysctl-service-type\n" +" (sysctl-configuration\n" +" (settings '((\"net.ipv4.ip_forward\" . \"1\")))))\n" #. type: deftp #: doc/guix.texi:21478 @@ -39508,7 +39514,7 @@ msgstr "{Type de données} sysctl-configuration" #. type: deftp #: doc/guix.texi:21480 msgid "The data type representing the configuration of @command{sysctl}." -msgstr "" +msgstr "Le type de données représentant la configuration de @command{sysctl}." #. type: item #: doc/guix.texi:21482 @@ -39519,7 +39525,7 @@ msgstr "@code{sysctl} (par défaut : @code{(file-append procps \"/sbin/sysctl\"} #. type: table #: doc/guix.texi:21484 msgid "The @command{sysctl} executable to use." -msgstr "" +msgstr "L'exécutable @command{sysctl} à utiliser." #. type: item #: doc/guix.texi:21485 @@ -39530,7 +39536,7 @@ msgstr "@code{settings} (par défaut : @code{'()})" #. type: table #: doc/guix.texi:21487 msgid "An association list specifies kernel parameters and their values." -msgstr "" +msgstr "Une liste d'association spécifiant les paramètres du noyau et leur valeur." #. type: cindex #: doc/guix.texi:21490 @@ -39542,12 +39548,12 @@ msgstr "pcscd" #: doc/guix.texi:21491 #, no-wrap msgid "PC/SC Smart Card Daemon Service" -msgstr "" +msgstr "Service du démon PC/SC Smart Card" #. type: Plain text #: doc/guix.texi:21498 msgid "The @code{(gnu services security-token)} module provides the following service to run @command{pcscd}, the PC/SC Smart Card Daemon. @command{pcscd} is the daemon program for pcsc-lite and the MuscleCard framework. It is a resource manager that coordinates communications with smart card readers, smart cards and cryptographic tokens that are connected to the system." -msgstr "" +msgstr "Le module @code{(gnu services security-token)} fournit le service suivant qui lance @command{pcscd}, le démon PC/SC Smart Card. @command{pcscd} est le démon pour pcsc-lite et MuscleCard. C'est un gestionnaire de ressource qui coordonne les communications avec les lecteurs de smart cards, les smart cards et les jetons cryptographiques connectés au système." #. type: defvr #: doc/guix.texi:21499 @@ -39597,7 +39603,7 @@ msgstr "@code{usb-drivers} (par défaut : @code{(list ccid)})" #. type: table #: doc/guix.texi:21518 msgid "List of packages that provide USB drivers to pcscd. Drivers are expected to be under @file{pcsc/drivers} in the store directory of the package." -msgstr "" +msgstr "Liste des paquets qui fournissent des pilotes USB à pcscd. Les pilotes doivent être dans @file{pcsc/drivers} dans le répertoire du dépôt du paquet." #. type: cindex #: doc/guix.texi:21521 @@ -39609,12 +39615,12 @@ msgstr "lirc" #: doc/guix.texi:21522 #, no-wrap msgid "Lirc Service" -msgstr "" +msgstr "Service Lirc" #. type: Plain text #: doc/guix.texi:21525 msgid "The @code{(gnu services lirc)} module provides the following service." -msgstr "" +msgstr "Le module @code{(gnu services lirc)} fournit le service suivant." #. type: deffn #: doc/guix.texi:21526 @@ -39626,16 +39632,19 @@ msgstr "{Procédure Scheme} lirc-service [#:lirc lirc] @" #: doc/guix.texi:21531 msgid "[#:device #f] [#:driver #f] [#:config-file #f] @ [#:extra-options '()] Return a service that runs @url{http://www.lirc.org,LIRC}, a daemon that decodes infrared signals from remote controls." msgstr "" +"[#:device #f] [#:driver #f] [#:config-file #f] @\n" +"[#:extra-options '()]\n" +"Renvoie un service qui lance @url{http://www.lirc.org,LIRC}, un démon qui décode les signaux infrarouges des télécommandes." #. type: deffn #: doc/guix.texi:21535 msgid "Optionally, @var{device}, @var{driver} and @var{config-file} (configuration file name) may be specified. See @command{lircd} manual for details." -msgstr "" +msgstr "Éventuellement, @var{device}, @var{driver} et @var{config-file} (le nom du fichier de configuration) peuvent être spécifiés. Voir le manuel de @command{lircd} pour plus de détails." #. type: deffn #: doc/guix.texi:21538 msgid "Finally, @var{extra-options} is a list of additional command-line options passed to @command{lircd}." -msgstr "" +msgstr "Enfin, @var{extra-options} est une liste d'options de la ligne de commande supplémentaires à passer à @command{lircd}." #. type: cindex #: doc/guix.texi:21540 @@ -39647,12 +39656,12 @@ msgstr "spice" #: doc/guix.texi:21541 #, no-wrap msgid "Spice Service" -msgstr "" +msgstr "Service Spice" #. type: Plain text #: doc/guix.texi:21544 msgid "The @code{(gnu services spice)} module provides the following service." -msgstr "" +msgstr "Le module @code{(gnu services spice)} fournit le service suivant." #. type: deffn #: doc/guix.texi:21545 @@ -39663,24 +39672,24 @@ msgstr "{Procédure Scheme} spice-vdagent-service [#:spice-vdagent]" #. type: deffn #: doc/guix.texi:21549 msgid "Returns a service that runs @url{http://www.spice-space.org,VDAGENT}, a daemon that enables sharing the clipboard with a vm and setting the guest display resolution when the graphical console window resizes." -msgstr "" +msgstr "Renvoie un service qui lance @url{http://www.spice-space.org,VDAGENT}, un démon qui permet le partage du presse-papier avec une vm et de configurer la résolution d'affichage du client lorsque la fenêtre de la console graphique est redimensionnée." #. type: subsubsection #: doc/guix.texi:21551 #, no-wrap msgid "Dictionary Services" -msgstr "" +msgstr "Services de dictionnaires" #. type: cindex #: doc/guix.texi:21552 #, no-wrap msgid "dictionary" -msgstr "" +msgstr "dictionnaire" #. type: Plain text #: doc/guix.texi:21554 msgid "The @code{(gnu services dict)} module provides the following service:" -msgstr "" +msgstr "Le module @code{(gnu services dict)} fournit le service suivant :" #. type: deffn #: doc/guix.texi:21555 @@ -39691,17 +39700,17 @@ msgstr "{Procédure Scheme} dicod-service [#:config (dicod-configuration)]" #. type: deffn #: doc/guix.texi:21558 msgid "Return a service that runs the @command{dicod} daemon, an implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})." -msgstr "" +msgstr "Renvoie un service qui lance le démon @command{dicod}, une implémentation du serveur DICT (@pxref{Dicod,,, dico, GNU Dico Manual})." #. type: deffn #: doc/guix.texi:21562 msgid "The optional @var{config} argument specifies the configuration for @command{dicod}, which should be a @code{} object, by default it serves the GNU Collaborative International Dictonary of English." -msgstr "" +msgstr "L'argument @var{config} facultatif spécifie la configuration pour @command{dicod}, qui devrait être un objet @code{}, par défaut il sert le dictionnaire international collaboratif de GNU pour l'anglais." #. type: deffn #: doc/guix.texi:21566 msgid "You can add @command{open localhost} to your @file{~/.dico} file to make @code{localhost} the default server for @command{dico} client (@pxref{Initialization File,,, dico, GNU Dico Manual})." -msgstr "" +msgstr "Vous pouvez ajouter @command{open localhost} à votre fichier @file{~/.dico} pour faire de @code{localhost} le serveur par défaut du client @command{dico} (@pxref{Initialization File,,, dico, GNU Dico Manual})." #. type: deftp #: doc/guix.texi:21568 @@ -39712,7 +39721,7 @@ msgstr "{Type de données} dicod-configuration" #. type: deftp #: doc/guix.texi:21570 msgid "Data type representing the configuration of dicod." -msgstr "" +msgstr "Type de données représentant la configuration de dicod." #. type: item #: doc/guix.texi:21572 @@ -39723,7 +39732,7 @@ msgstr "@code{dico} (par défaut : @var{dico})" #. type: table #: doc/guix.texi:21574 msgid "Package object of the GNU Dico dictionary server." -msgstr "" +msgstr "Objet de paquet du serveur de dictionnaire GNU Dico." #. type: item #: doc/guix.texi:21575 @@ -39734,7 +39743,7 @@ msgstr "@code{interfaces} (par défaut : @var{'(\"localhost\")})" #. type: table #: doc/guix.texi:21579 msgid "This is the list of IP addresses and ports and possibly socket file names to listen to (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico Manual})." -msgstr "" +msgstr "C'est la liste des adresses IP et des ports et éventuellement des noms de fichiers de socket sur lesquels écouter (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico Manual})." #. type: item #: doc/guix.texi:21580 @@ -39745,7 +39754,7 @@ msgstr "@code{handlers} (par défaut : @var{'()})" #. type: table #: doc/guix.texi:21582 msgid "List of @code{} objects denoting handlers (module instances)." -msgstr "" +msgstr "Liste des objets @code{} qui définissent des gestionnaires (des instances de modules)." #. type: item #: doc/guix.texi:21583 @@ -39756,7 +39765,7 @@ msgstr "@code{databases} (par défaut : @var{(list %dicod-database:gcide)})" #. type: table #: doc/guix.texi:21585 msgid "List of @code{} objects denoting dictionaries to be served." -msgstr "" +msgstr "Liste d'objets @code{} qui définissent des dictionnaires à servir." #. type: deftp #: doc/guix.texi:21588 @@ -39767,12 +39776,12 @@ msgstr "{Type de données} dicod-handler" #. type: deftp #: doc/guix.texi:21590 msgid "Data type representing a dictionary handler (module instance)." -msgstr "" +msgstr "Type de données représentant un gestionnaire de dictionnaire (instance de module)." #. type: table #: doc/guix.texi:21594 msgid "Name of the handler (module instance)." -msgstr "" +msgstr "Nom du gestionnaire (instance de module)." #. type: item #: doc/guix.texi:21595 @@ -39783,18 +39792,18 @@ msgstr "@code{module} (par défaut : @var{#f})" #. type: table #: doc/guix.texi:21599 msgid "Name of the dicod module of the handler (instance). If it is @code{#f}, the module has the same name as the handler. (@pxref{Modules,,, dico, GNU Dico Manual})." -msgstr "" +msgstr "Nom du module dicod du gestionnaire (instance). Si la valeur est @code{#f}, le module a le même nom que le gestionnaire. (@pxref{Modules,,, dico, GNU Dico Manual})." #. type: code{#1} #: doc/guix.texi:21600 doc/guix.texi:21620 #, no-wrap msgid "options" -msgstr "" +msgstr "options" #. type: table #: doc/guix.texi:21602 msgid "List of strings or gexps representing the arguments for the module handler" -msgstr "" +msgstr "Liste de chaînes ou de gexps représentant les arguments pour le gestionnaire de module." #. type: deftp #: doc/guix.texi:21605 @@ -39805,23 +39814,23 @@ msgstr "{Type de données} dicod-database" #. type: deftp #: doc/guix.texi:21607 msgid "Data type representing a dictionary database." -msgstr "" +msgstr "Type de données représentant une base de données de dictionnaire." #. type: table #: doc/guix.texi:21611 msgid "Name of the database, will be used in DICT commands." -msgstr "" +msgstr "Nom de la base de données, qui sera utilisée dans les commande DICT." #. type: code{#1} #: doc/guix.texi:21612 #, no-wrap msgid "handler" -msgstr "" +msgstr "handler" #. type: table #: doc/guix.texi:21615 msgid "Name of the dicod handler (module instance) used by this database (@pxref{Handlers,,, dico, GNU Dico Manual})." -msgstr "" +msgstr "Nom du gestionnaire dicod (instance de module) utilisé par cette base de données (@pxref{Handlers,,, dico, GNU Dico Manual})." #. type: item #: doc/guix.texi:21616 @@ -39832,12 +39841,12 @@ msgstr "@code{complex?} (par défaut : @var{#f})" #. type: table #: doc/guix.texi:21619 msgid "Whether the database configuration complex. The complex configuration will need a corresponding @code{} object, otherwise not." -msgstr "" +msgstr "Indique si la configuration est pour une base de données complexe. La configuration complexe a besoin d'un objet @code{} correspondant, sinon inutile." #. type: table #: doc/guix.texi:21623 msgid "List of strings or gexps representing the arguments for the database (@pxref{Databases,,, dico, GNU Dico Manual})." -msgstr "" +msgstr "Liste de chaînes ou de gexps représentant les arguments pour la base de données (@pxref{Databases,,, dico, GNU Dico Manual})." #. type: defvr #: doc/guix.texi:21626 @@ -39848,12 +39857,12 @@ msgstr "{Variable Scheme} %dicod-database:gcide" #. type: defvr #: doc/guix.texi:21629 msgid "A @code{} object serving the GNU Collaborative International Dictionary of English using the @code{gcide} package." -msgstr "" +msgstr "Un objet @code{} servant le dictionnaire international collaboratif en anglais via le paquet @code{gcide}." #. type: Plain text #: doc/guix.texi:21632 msgid "The following is an example @code{dicod-service} configuration." -msgstr "" +msgstr "Voici un exemple de configuration de @code{dicod-service}." #. type: example #: doc/guix.texi:21647 @@ -39891,22 +39900,22 @@ msgstr "" #: doc/guix.texi:21652 #, no-wrap msgid "setuid programs" -msgstr "" +msgstr "programmes setuid" #. type: Plain text #: doc/guix.texi:21662 msgid "Some programs need to run with ``root'' privileges, even when they are launched by unprivileged users. A notorious example is the @command{passwd} program, which users can run to change their password, and which needs to access the @file{/etc/passwd} and @file{/etc/shadow} files---something normally restricted to root, for obvious security reasons. To address that, these executables are @dfn{setuid-root}, meaning that they always run with root privileges (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, for more info about the setuid mechanism.)" -msgstr "" +msgstr "Certains programmes doivent être lancés avec les privilèges « root » même lorsqu'ils sont lancés par un utilisateur non privilégié. Un exemple notoire est le programme @command{passwd}, que les utilisateurs peuvent appeler pour modifier leur mot de passe et qui doit accéder à @file{/etc/passwd} et @file{/etc/shadow} — ce qui est normalement réservé à root, pour des raisons de sécurité évidentes. Pour contourner cela, ces exécutables sont @dfn{setuid-root}, ce qui signifie qu'ils seront toujours lancés avec les privilèges root (@pxref{How Change Persona,,, libc, The GNU C Library Reference Manual}, pour plus d'informations sur le mécanisme setuid)." #. type: Plain text #: doc/guix.texi:21669 msgid "The store itself @emph{cannot} contain setuid programs: that would be a security issue since any user on the system can write derivations that populate the store (@pxref{The Store}). Thus, a different mechanism is used: instead of changing the setuid bit directly on files that are in the store, we let the system administrator @emph{declare} which programs should be setuid root." -msgstr "" +msgstr "Le dépôt lui-même ne @emph{peut pas} contenir de programmes setuid ; cela serait un problème de sécurité puisque n'importe quel utilisateur du système peut écrire une dérivation qui rempli le dépôt (@pxref{The Store}). Donc, un mécanisme différent est utilisé : au lieu de changer le bit setuid directement sur les fichiers qui sont dans le dépôt, nous laissons à l'administrateur système le soit de @emph{déclarer} les programmes qui devraient être setuid root." #. type: Plain text #: doc/guix.texi:21675 msgid "The @code{setuid-programs} field of an @code{operating-system} declaration contains a list of G-expressions denoting the names of programs to be setuid-root (@pxref{Using the Configuration System}). For instance, the @command{passwd} program, which is part of the Shadow package, can be designated by this G-expression (@pxref{G-Expressions}):" -msgstr "" +msgstr "Le champ @code{setuid-programs} d'une déclaration @code{operating-system} contient une liste de G-expressions qui dénotent les noms des programmes à rendre setuid-root (@pxref{Using the Configuration System}). Par exemple, le programme @command{passwd}, qui fait partie du paquet Shadow, peut être désigné par cette G-expression (@pxref{G-Expressions}) :" #. type: example #: doc/guix.texi:21678 @@ -39917,7 +39926,7 @@ msgstr "#~(string-append #$shadow \"/bin/passwd\")\n" #. type: Plain text #: doc/guix.texi:21682 msgid "A default set of setuid programs is defined by the @code{%setuid-programs} variable of the @code{(gnu system)} module." -msgstr "" +msgstr "Un ensemble de programmes par défaut est défini par la variable @code{%setuid-programs} du module @code{(gnu system)}." #. type: defvr #: doc/guix.texi:21683 @@ -39928,29 +39937,29 @@ msgstr "{Variable Scheme} %setuid-programs" #. type: defvr #: doc/guix.texi:21685 msgid "A list of G-expressions denoting common programs that are setuid-root." -msgstr "" +msgstr "Une liste de G-expressions qui dénotent les programmes communément setuid-root." #. type: defvr #: doc/guix.texi:21688 msgid "The list includes commands such as @command{passwd}, @command{ping}, @command{su}, and @command{sudo}." -msgstr "" +msgstr "La liste inclus des commandes comme @command{passwd}, @command{ping}, @command{su} et @command{sudo}." #. type: Plain text #: doc/guix.texi:21694 msgid "Under the hood, the actual setuid programs are created in the @file{/run/setuid-programs} directory at system activation time. The files in this directory refer to the ``real'' binaries, which are in the store." -msgstr "" +msgstr "Sous le capot, les programmes setuid sont créés dans le répertoire @file{/run/setuid-programs} au moment de l'activation du système. Les fichiers dans ce répertoire se réfèrent aux « vrais » binaires, qui sont dans le dépot." #. type: cindex #: doc/guix.texi:21698 #, no-wrap msgid "HTTPS, certificates" -msgstr "" +msgstr "HTTPS, certificats" #. type: cindex #: doc/guix.texi:21699 #, no-wrap msgid "X.509 certificates" -msgstr "" +msgstr "certificats X.509" #. type: cindex #: doc/guix.texi:21700 @@ -39961,32 +39970,32 @@ msgstr "TLS" #. type: Plain text #: doc/guix.texi:21707 msgid "Web servers available over HTTPS (that is, HTTP over the transport-layer security mechanism, TLS) send client programs an @dfn{X.509 certificate} that the client can then use to @emph{authenticate} the server. To do that, clients verify that the server's certificate is signed by a so-called @dfn{certificate authority} (CA). But to verify the CA's signature, clients must have first acquired the CA's certificate." -msgstr "" +msgstr "Les serveurs web disponibles par HTTPS (c'est-à-dire HTTP sur le mécanisme de la couche de transport sécurisée, TLS) envoient aux clients un @dfn{certificat X.509} que les clients peuvent utiliser pour @emph{authentifier} le serveur. Pour cela, les clients vérifient que le certificat du serveur est signé par une @dfn{autorité de certification} (AC ou CA). Mais pour vérifier la signature de la CA, les clients doivent d'abord avoir récupéré le certificat de la CA." #. type: Plain text #: doc/guix.texi:21711 msgid "Web browsers such as GNU@tie{}IceCat include their own set of CA certificates, such that they are able to verify CA signatures out-of-the-box." -msgstr "" +msgstr "Les navigateurs web comme GNU@tie{}IceCat incluent leur propre liste de certificats, pour qu'ils puissent vérifier les signatures des CA directement." #. type: Plain text #: doc/guix.texi:21715 msgid "However, most other programs that can talk HTTPS---@command{wget}, @command{git}, @command{w3m}, etc.---need to be told where CA certificates can be found." -msgstr "" +msgstr "Cependant, la plupart des autres programmes qui peuvent parler HTTPS — @command{wget}, @command{git}, @command{w3m}, etc — doivent savoir où trouver les certificats des CA." #. type: Plain text #: doc/guix.texi:21722 msgid "In GuixSD, this is done by adding a package that provides certificates to the @code{packages} field of the @code{operating-system} declaration (@pxref{operating-system Reference}). GuixSD includes one such package, @code{nss-certs}, which is a set of CA certificates provided as part of Mozilla's Network Security Services." -msgstr "" +msgstr "Dans GuixSD, cela se fait en ajoutant un paquet qui fournit les certificats dans le champ @code{packages} de la déclaration @code{operating-system} (@pxref{operating-system Reference}). GuixSD inclut l'un de ces paquets, @code{nss-certs}, qui est un ensemble de certificats de CA fourni par les services de sécurité réseau de Mozilla (nss)." #. type: Plain text #: doc/guix.texi:21727 msgid "Note that it is @emph{not} part of @var{%base-packages}, so you need to explicitly add it. The @file{/etc/ssl/certs} directory, which is where most applications and libraries look for certificates by default, points to the certificates installed globally." -msgstr "" +msgstr "Remarquez qu'il ne fait @emph{pas} partie de @var{%base-packages}, donc vous devez explicitement l'ajouter. Le répertoire @file{/etc/ssl/certs}, là où la plupart des applications et bibliothèques vont rechercher les certificats par défaut, pointe vers les certificats installés globalement." #. type: Plain text #: doc/guix.texi:21737 msgid "Unprivileged users, including users of Guix on a foreign distro, can also install their own certificate package in their profile. A number of environment variables need to be defined so that applications and libraries know where to find them. Namely, the OpenSSL library honors the @code{SSL_CERT_DIR} and @code{SSL_CERT_FILE} variables. Some applications add their own environment variables; for instance, the Git version control system honors the certificate bundle pointed to by the @code{GIT_SSL_CAINFO} environment variable. Thus, you would typically run something like:" -msgstr "" +msgstr "Les utilisateurs non privilégiés, dont les utilisateurs de Guix sur une distro externe, peuvent aussi installer leur propre paquet de certificats dans leur profil. Un certain nombre de variables d'environnement doivent être définies pour que les applications et les bibliothèques puissent les trouver. En particulier, la bibliothèque OpenSSL honore les variables @code{SSL_CERT_DIR} et @code{SSL_CERT_FILE}. Certaines applications ajoutent leurs propres variables, par exemple le système de contrôle de version Git honore le lot de certificats pointé par la variable d'environnement @code{GIT_SSL_CAINFO}. Ainsi, vous lanceriez quelque chose comme ceci :" #. type: example #: doc/guix.texi:21743 @@ -39997,11 +40006,15 @@ msgid "" "$ export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n" "$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n" msgstr "" +"$ guix package -i nss-certs\n" +"$ export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n" +"$ export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n" +"$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n" #. type: Plain text #: doc/guix.texi:21748 msgid "As another example, R requires the @code{CURL_CA_BUNDLE} environment variable to point to a certificate bundle, so you would have to run something like this:" -msgstr "" +msgstr "Un autre exemple serait R, qui requière que la variable d'environnement @code{CURL_CA_BUNDLE} pointe sur le lot de certificats, donc vous lanceriez quelque chose comme ceci :" #. type: example #: doc/guix.texi:21752 @@ -40010,11 +40023,13 @@ msgid "" "$ guix package -i nss-certs\n" "$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n" msgstr "" +"$ guix package -i nss-certs\n" +"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n" #. type: Plain text #: doc/guix.texi:21756 msgid "For other applications you may want to look up the required environment variable in the relevant documentation." -msgstr "" +msgstr "Pour d'autres applications vous pourriez avoir besoin de chercher la variable d'environnement requise dans leur documentation." #. type: cindex #: doc/guix.texi:21761 @@ -40031,12 +40046,12 @@ msgstr "NSS" #. type: Plain text #: doc/guix.texi:21771 msgid "The @code{(gnu system nss)} module provides bindings to the configuration file of the libc @dfn{name service switch} or @dfn{NSS} (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}). In a nutshell, the NSS is a mechanism that allows libc to be extended with new ``name'' lookup methods for system databases, which includes host names, service names, user accounts, and more (@pxref{Name Service Switch, System Databases and Name Service Switch,, libc, The GNU C Library Reference Manual})." -msgstr "" +msgstr "Le module @code{(gnu system nss)} fournit des liaisons pour le fichier de configuration du @dfn{name service switch} ou @dfn{NSS} de la libc (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}). En résumé, NSS est un mécanisme qui permet à la libc d'être étendue avec de nouvelles méthodes de résolution de « noms » dans les bases de données du système, comme les noms d'hôtes, les noms des services, les comptes utilisateurs et bien plus (@pxref{Name Service Switch, System Databases and Name Service Switch,, libc, The GNU C Library Reference Manual})." #. type: Plain text #: doc/guix.texi:21778 msgid "The NSS configuration specifies, for each system database, which lookup method is to be used, and how the various methods are chained together---for instance, under which circumstances NSS should try the next method in the list. The NSS configuration is given in the @code{name-service-switch} field of @code{operating-system} declarations (@pxref{operating-system Reference, @code{name-service-switch}})." -msgstr "" +msgstr "La configuration de NSS spécifie, pour chaque base de données du système, quelle méthode de résolution utiliser, et comment les diverses méthodes sont enchaînées — par exemple, sous certaines circonstances, NSS devrait essayer la méthode suivante de la liste. La configuration de NSS est donnée dans le champ @code{name-service-switch} de la déclaration @code{operating-system} (@pxref{operating-system Reference, @code{name-service-switch}})." #. type: cindex #: doc/guix.texi:21779 @@ -40048,12 +40063,12 @@ msgstr "nss-mdns" #: doc/guix.texi:21780 #, no-wrap msgid ".local, host name lookup" -msgstr "" +msgstr ".local, résolution de nom d'hôte" #. type: Plain text #: doc/guix.texi:21785 msgid "As an example, the declaration below configures the NSS to use the @uref{http://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns} back-end}, which supports host name lookups over multicast DNS (mDNS) for host names ending in @code{.local}:" -msgstr "" +msgstr "Par exemple, la déclation ci-dessous configure NSS pour utiliser le @uref{http://0pointer.de/lennart/projects/nss-mdns/, moteur @code{nss-mdns}}, qui supporte la résolution de nom d'hôte sur le DNS multicast (mDNS) pour les noms d'hôtes terminant par @code{.local} :" #. type: example #: doc/guix.texi:21789 @@ -40077,6 +40092,11 @@ msgid "" " (name \"mdns_minimal\")\n" "\n" msgstr "" +" ;; Si ce qui précède n'a pas fonctionné, essayer\n" +" ;; avec « mdns_minimal ».\n" +" (name-service\n" +" (name \"mdns_minimal\")\n" +"\n" #. type: example #: doc/guix.texi:21800 @@ -40089,6 +40109,12 @@ msgid "" " (not-found => return))))\n" "\n" msgstr "" +" ;; « mdns_minimal » fait autorité pour\n" +" ;; « .local ». Lorsqu'il renvoie « pas trouvé »,\n" +" ;; inutile d'essayer la méthode suivante.\n" +" (reaction (lookup-specification\n" +" (not-found => return))))\n" +"\n" #. type: example #: doc/guix.texi:21804 @@ -40099,6 +40125,10 @@ msgid "" " (name \"dns\"))\n" "\n" msgstr "" +" ;; Puis revenir sur DNS.\n" +" (name-service\n" +" (name \"dns\"))\n" +"\n" #. type: example #: doc/guix.texi:21808 @@ -40108,21 +40138,24 @@ msgid "" " (name-service\n" " (name \"mdns\")))))\n" msgstr "" +" ;; Enfin, essayer avec « mdns complet ».\n" +" (name-service\n" +" (name \"mdns\")))))\n" #. type: Plain text #: doc/guix.texi:21813 msgid "Do not worry: the @code{%mdns-host-lookup-nss} variable (see below) contains this configuration, so you will not have to type it if all you want is to have @code{.local} host lookup working." -msgstr "" +msgstr "Ne vous inquiétez pas : la variable @code{%mdns-host-lookup-nss} (voir plus bas) contient cette configuration, donc vous n'avez pas besoin de tout taper si vous voulez simplement que la résolution de nom en @code{.local} fonctionne." #. type: Plain text #: doc/guix.texi:21821 msgid "Note that, in this case, in addition to setting the @code{name-service-switch} of the @code{operating-system} declaration, you also need to use @code{avahi-service} (@pxref{Networking Services, @code{avahi-service}}), or @var{%desktop-services}, which includes it (@pxref{Desktop Services}). Doing this makes @code{nss-mdns} accessible to the name service cache daemon (@pxref{Base Services, @code{nscd-service}})." -msgstr "" +msgstr "Remarquez que dans ce cas, en plus de mettre en place le @code{name-service-switch} de la déclaration @code{operating-system}, vous devez aussi utiliser @code{avahi-service} (@pxref{Networking Services, @code{avahi-service}}), ou @var{%desktop-services} qui l'inclut (@pxref{Desktop Services}). Cela rend @code{nss-mdns} accessible au démon de cache du service de nom (@pxref{Base Services, @code{nscd-service})." #. type: Plain text #: doc/guix.texi:21824 msgid "For convenience, the following variables provide typical NSS configurations." -msgstr "" +msgstr "Pour votre confort, les variables suivantes contiennent des configurations NSS typiques." #. type: defvr #: doc/guix.texi:21825 @@ -40133,7 +40166,7 @@ msgstr "{Variable Scheme} %default-nss" #. type: defvr #: doc/guix.texi:21828 msgid "This is the default name service switch configuration, a @code{name-service-switch} object." -msgstr "" +msgstr "C'est la configuration NSS par défaut, un objet @code{name-service-switch}." #. type: defvr #: doc/guix.texi:21830 @@ -40144,12 +40177,12 @@ msgstr "{Variable Scheme} %mdns-host-lookup-nss" #. type: defvr #: doc/guix.texi:21833 msgid "This is the name service switch configuration with support for host name lookup over multicast DNS (mDNS) for host names ending in @code{.local}." -msgstr "" +msgstr "C'est la configuration NSS avec le support de la résolution de noms sur DNS multicast (mDNS) pour les noms d'hôtes en @code{.local}." #. type: Plain text #: doc/guix.texi:21843 msgid "The reference for name service switch configuration is given below. It is a direct mapping of the configuration file format of the C library , so please refer to the C library manual for more information (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}). Compared to the configuration file format of libc NSS, it has the advantage not only of adding this warm parenthetic feel that we like, but also static checks: you will know about syntax errors and typos as soon as you run @command{guix system}." -msgstr "" +msgstr "La référence pour la configuration de NSS est donnée ci-dessous. C'est une correspondance directe avec le format de fichier de la bibliothèque C, donc référez-vous au manuel de la bibliothèque C pour plus d'informations (@pxref{NSS Configuration File,,, libc, The GNU C Library Reference Manual}). Comparé au format de fichier de configuration de NSS, cette configuration a l'avantage non seulement d'ajouter ces bonnes vieilles parenthèses, mais aussi des vérifications statiques ; vous saurez s'il y a des erreurs de syntaxe et des coquilles dès que vous lancerez @command{guix system}." #. type: deftp #: doc/guix.texi:21844 @@ -40160,7 +40193,7 @@ msgstr "{Type de données} name-service-switch" #. type: deftp #: doc/guix.texi:21849 msgid "This is the data type representation the configuration of libc's name service switch (NSS). Each field below represents one of the supported system databases." -msgstr "" +msgstr "C'est le type de données représentant la configuration de NSS. Chaque champ ci-dessous représente l'un des système de bases de données supportés." #. type: item #: doc/guix.texi:21851 @@ -40225,7 +40258,7 @@ msgstr "shadow" #. type: table #: doc/guix.texi:21866 msgid "The system databases handled by the NSS. Each of these fields must be a list of @code{} objects (see below)." -msgstr "" +msgstr "Les bases de données du système gérées par NSS. Chaque champ doit être une liste d'objets @code{} (voir plus bas)." #. type: deftp #: doc/guix.texi:21869 @@ -40236,28 +40269,28 @@ msgstr "{Type de données} name-service" #. type: deftp #: doc/guix.texi:21873 msgid "This is the data type representing an actual name service and the associated lookup action." -msgstr "" +msgstr "C'est le type de données représentant un service de noms et l'action de résolution associée." #. type: table #: doc/guix.texi:21878 msgid "A string denoting the name service (@pxref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual})." -msgstr "" +msgstr "Une chaîne dénotant le service de nom (@pxref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual})." #. type: table #: doc/guix.texi:21883 msgid "Note that name services listed here must be visible to nscd. This is achieved by passing the @code{#:name-services} argument to @code{nscd-service} the list of packages providing the needed name services (@pxref{Base Services, @code{nscd-service}})." -msgstr "" +msgstr "Remarquez que les services de dnoms listés ici doivent être visibles à nscd. Cela se fait en passant la liste des paquets fournissant les services de noms à l'argument @code{#:name-services} de @code{nscd-service} (@pxref{Base Services, @code{nscd-service}})." #. type: item #: doc/guix.texi:21884 #, no-wrap msgid "reaction" -msgstr "" +msgstr "reaction" #. type: table #: doc/guix.texi:21888 msgid "An action specified using the @code{lookup-specification} macro (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library Reference Manual}). For example:" -msgstr "" +msgstr "Une action spécifiée par la macro @code{lookup-specification} (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library Reference Manual}). Par exemple :" #. type: example #: doc/guix.texi:21892 @@ -40266,16 +40299,18 @@ msgid "" "(lookup-specification (unavailable => continue)\n" " (success => return))\n" msgstr "" +"(lookup-specification (unavailable => continue)\n" +" (success => return))\n" #. type: Plain text #: doc/guix.texi:21906 msgid "For bootstrapping purposes, the Linux-Libre kernel is passed an @dfn{initial RAM disk}, or @dfn{initrd}. An initrd contains a temporary root file system as well as an initialization script. The latter is responsible for mounting the real root file system, and for loading any kernel modules that may be needed to achieve that." -msgstr "" +msgstr "Pour le démarrage, on passe au noyau Linux-Libre un @dfn{disque de RAM initial} ou @dfn{initrd}. Un initrd contient un système de fichier racine temporaire ainsi qu'un script d'initialisation. Ce dernier est responsable du montage du vrai système de fichier racine et du chargement des modules du noyau qui peuvent être nécessaires à cette tâche." #. type: Plain text #: doc/guix.texi:21915 msgid "The @code{initrd-modules} field of an @code{operating-system} declaration allows you to specify Linux-libre kernel modules that must be available in the initrd. In particular, this is where you would list modules needed to actually drive the hard disk where your root partition is---although the default value of @code{initrd-modules} should cover most use cases. For example, assuming you need the @code{megaraid_sas} module in addition to the default modules to be able to access your root file system, you would write:" -msgstr "" +msgstr "Le champ @code{initrd-modules} d'une déclaration @code{operating-system} vous permet de spécifier les modules du noyau Linux-Libre qui doivent être disponibles dans l'initrd. En particulier, c'est là où vous devez lister les modules requis pour effectivement piloter le disque dur où se trouve la partition racine — bien que la valeur par défaut de @code{initrd-modules} couvre la plupart des cas. Par exemple, en supposant que vous ayez besoin du module @code{megaraid_sas} en plus des modules par défaut pour accéder à votre système de fichiers racine, vous écririez :" #. type: example #: doc/guix.texi:21920 @@ -40285,6 +40320,9 @@ msgid "" " ;; @dots{}\n" " (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n" msgstr "" +"(operating-system\n" +" ;; @dots{}\n" +" (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n" #. type: defvr #: doc/guix.texi:21922 @@ -40295,17 +40333,17 @@ msgstr "{Variable Scheme} %base-initrd-modules" #. type: defvr #: doc/guix.texi:21924 msgid "This is the list of kernel modules included in the initrd by default." -msgstr "" +msgstr "C'est la liste des modules du noyau inclus dans l'initrd par défaut." #. type: Plain text #: doc/guix.texi:21932 msgid "Furthermore, if you need lower-level customization, the @code{initrd} field of an @code{operating-system} declaration allows you to specify which initrd you would like to use. The @code{(gnu system linux-initrd)} module provides three ways to build an initrd: the high-level @code{base-initrd} procedure and the low-level @code{raw-initrd} and @code{expression->initrd} procedures." -msgstr "" +msgstr "En plus, si vous avez besoin de paramétrages plus bas niveau, le champ @code{initrd} d'une déclaration @code{operating-system} vous permet de spécifier quel initrd vous voudriez utiliser. Le module @code{(gnu system linux-initrd)} fournit trois manières de construire un initrd : la procédure @code{base-initrd} de haut niveau et les procédures @code{raw-initrd} et @code{expression->initrd} de bas niveau." #. type: Plain text #: doc/guix.texi:21937 msgid "The @code{base-initrd} procedure is intended to cover most common uses. For example, if you want to add a bunch of kernel modules to be loaded at boot time, you can define the @code{initrd} field of the operating system declaration like this:" -msgstr "" +msgstr "La procédure @code{base-initrd} est conçue pour couvrir la plupart des usages courants. Par exemple, si vous voulez ajouter des modules du noyau à charger au démarrage, vous pouvez définir le champ @code{initrd} de votre déclaration de système d'exploitation ainsi :" #. type: example #: doc/guix.texi:21945 @@ -40318,92 +40356,98 @@ msgid "" " #:qemu-networking? #t\n" " rest)))\n" msgstr "" +"(initrd (lambda (file-systems . rest)\n" +" ;; Crée un initrd standard mais paramètre le réseau\n" +" ;; avec les paramètres que QEMU attend par défaut.\n" +" (apply base-initrd file-systems\n" +" #:qemu-networking? #t\n" +" rest)))\n" #. type: Plain text #: doc/guix.texi:21950 msgid "The @code{base-initrd} procedure also handles common use cases that involves using the system as a QEMU guest, or as a ``live'' system with volatile root file system." -msgstr "" +msgstr "La procédure @code{base-initrd} gère aussi les cas d'utilisation courants qui concernent l'utilisation du système comme client QEMU, ou comme un système « live » avec un système de fichier racine volatile." #. type: Plain text #: doc/guix.texi:21957 msgid "The @code{base-initrd} procedure is built from @code{raw-initrd} procedure. Unlike @code{base-initrd}, @code{raw-initrd} doesn't do anything high-level, such as trying to guess which kernel modules and packages should be included to the initrd. An example use of @code{raw-initrd} is when a user has a custom Linux kernel configuration and default kernel modules included by @code{base-initrd} are not available." -msgstr "" +msgstr "La procédure @code{base-initrd} est construite à partir de la procédure @code{raw-initrd}. Contrairement à @code{base-initrd}, @code{raw-initrd} ne fait rien à haut-niveau, comme essayer de deviner les modules du noyau et les paquets qui devraient être inclus dans l'initrd. Un exemple d'utilisation de @code{raw-initrd} serait si un utilisateur a une configuration personnalisée du noyau Linux et que les modules du noyau inclus par défaut par @code{base-initrd} ne sont pas disponibles." #. type: Plain text #: doc/guix.texi:21962 msgid "The initial RAM disk produced by @code{base-initrd} or @code{raw-initrd} honors several options passed on the Linux kernel command line (that is, arguments passed @i{via} the @code{linux} command of GRUB, or the @code{-append} option of QEMU), notably:" -msgstr "" +msgstr "Le disque de RAM initial produit par @code{base-initrd} ou @code{raw-initrd} honore plusieurs options passées par la ligne de commande du noyau Linux (c'est-à-dire les arguments passés via la commande @code{linux} de GRUB ou l'option @code{-append} de QEMU), notamment :" #. type: item #: doc/guix.texi:21964 #, no-wrap msgid "--load=@var{boot}" -msgstr "" +msgstr "--load=@var{boot}" #. type: table #: doc/guix.texi:21967 msgid "Tell the initial RAM disk to load @var{boot}, a file containing a Scheme program, once it has mounted the root file system." -msgstr "" +msgstr "Dit au disque de RAM initial de charger @var{boot}, un fichier contenant un programme Scheme, une fois qu'il a monté le système de fichier racine." #. type: table #: doc/guix.texi:21971 msgid "GuixSD uses this option to yield control to a boot program that runs the service activation programs and then spawns the GNU@tie{}Shepherd, the initialization system." -msgstr "" +msgstr "GuixSD utilise cette option pour donner le contrôle à un programme de démarrage qui lance les programmes d'activation de services puis démarre le GNU@tie{}Shepherd, le système d'initialisation." #. type: item #: doc/guix.texi:21972 #, no-wrap msgid "--root=@var{root}" -msgstr "" +msgstr "--root=@var{root}" #. type: table #: doc/guix.texi:21976 msgid "Mount @var{root} as the root file system. @var{root} can be a device name like @code{/dev/sda1}, a file system label, or a file system UUID." -msgstr "" +msgstr "Monte @var{root} comme système de fichier racine. @var{root} peut être un nom de périphérique comme @code{/dev/sda1}, une étiquette de système de fichiers ou un UUID de système de fichiers." #. type: table #: doc/guix.texi:21980 msgid "Have @file{/run/booted-system} and @file{/run/current-system} point to @var{system}." -msgstr "" +msgstr "S'assure que @file{/run/booted-system} et @file{/run/current-system} pointent vers @var{system}." #. type: item #: doc/guix.texi:21981 #, no-wrap msgid "modprobe.blacklist=@var{modules}@dots{}" -msgstr "" +msgstr "modprobe.blacklist=@var{modules}@dots{}" #. type: cindex #: doc/guix.texi:21982 #, no-wrap msgid "module, black-listing" -msgstr "" +msgstr "module, black-list" #. type: cindex #: doc/guix.texi:21983 #, no-wrap msgid "black list, of kernel modules" -msgstr "" +msgstr "black-list, des modules du noyau" #. type: table #: doc/guix.texi:21988 msgid "Instruct the initial RAM disk as well as the @command{modprobe} command (from the kmod package) to refuse to load @var{modules}. @var{modules} must be a comma-separated list of module names---e.g., @code{usbkbd,9pnet}." -msgstr "" +msgstr "Dit au disque de RAM initial ainsi qu'à la commande @command{modprobe} (du paquet kmod) de refuser de charger @var{modules}. @var{modules} doit être une liste de noms de modules séparés par des virgules — p.@: ex.@: @code{usbkbd,9pnet}." #. type: item #: doc/guix.texi:21989 #, no-wrap msgid "--repl" -msgstr "" +msgstr "--repl" #. type: table #: doc/guix.texi:21995 msgid "Start a read-eval-print loop (REPL) from the initial RAM disk before it tries to load kernel modules and to mount the root file system. Our marketing team calls it @dfn{boot-to-Guile}. The Schemer in you will love it. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, for more information on Guile's REPL." -msgstr "" +msgstr "Démarre une boucle lecture-évaluation-affichage (REPL) depuis le disque de RAM initial avant qu'il n'essaye de charger les modules du noyau et de monter le système de fichiers racine. Notre équipe commerciale appelle cela @dfn{boot-to-Guile}. Le Schemeur en vous va adorer. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, pour plus d'information sur le REPL de Guile." #. type: Plain text #: doc/guix.texi:22001 msgid "Now that you know all the features that initial RAM disks produced by @code{base-initrd} and @code{raw-initrd} provide, here is how to use it and customize it further." -msgstr "" +msgstr "Maintenant que vous connaissez toutes les fonctionnalités des disques de RAM initiaux produits par @code{base-initrd} et @code{raw-initrd}, voici comment l'utiliser le personnalisé plus avant." #. type: deffn #: doc/guix.texi:22004 @@ -40415,16 +40459,19 @@ msgstr "{Procédure Scheme} raw-initrd @var{file-systems} @" #: doc/guix.texi:22016 msgid "[#:linux-modules '()] [#:mapped-devices '()] @ [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Return a derivation that builds a raw initrd. @var{file-systems} is a list of file systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @code{--root}. @var{linux-modules} is a list of kernel modules to be loaded at boot time. @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted (@pxref{Mapped Devices}). @var{helper-packages} is a list of packages to be copied in the initrd. It may include @code{e2fsck/static} or other packages needed by the initrd to check the root file system." msgstr "" +"[#:linux-modules '()] [#:mapped-devices '()] @\n" +"[#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f]\n" +"Renvoie une dérivation qui construit un initrd. @var{file-systems} est une liste de systèmes de fichiers à monter par l'initrd, éventuellement en plus du système de fichier racine spécifié sur la ligne de commande du noyau via @code{--root}. @var{linux-modules} est une liste de modules du noyau à charger au démarrage. @var{mapped-devices} est une liste de correspondances de périphériques à réaliser avant que les @var{file-systems} ne soient montés (@pxref{Mapped Devices}). @var{helper-packages} est une liste de paquets à copier dans l'initrd. Elle peut inclure @code{e2fsck/static} ou d'autres paquets requis par l'initrd pour vérifier le système de fichiers racine." #. type: deffn #: doc/guix.texi:22020 msgid "When @var{qemu-networking?} is true, set up networking with the standard QEMU parameters. When @var{virtio?} is true, load additional modules so that the initrd can be used as a QEMU guest with para-virtualized I/O drivers." -msgstr "" +msgstr "Lorsque @var{qemu-networking?} est vrai, paramètre le réseau avec les paramètres QEMU standards. Lorsque @var{virtio?} est vrai, charge des modules supplémentaires pour que l'initrd puisse être utilisé comme client QEMU avec les pilotes I/O para-virtualisés." #. type: deffn #: doc/guix.texi:22023 msgid "When @var{volatile-root?} is true, the root file system is writable but any changes to it are lost." -msgstr "" +msgstr "Lorsque @var{volatile-root?} est vrai, le système de fichier racine est inscriptible mais tous les changements seront perdus." #. type: deffn #: doc/guix.texi:22025 @@ -40436,21 +40483,24 @@ msgstr "{Procédure Scheme} base-initrd @var{file-systems} @" #: doc/guix.texi:22033 msgid "[#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f]@ [#:linux-modules '()] Return as a file-like object a generic initrd, with kernel modules taken from @var{linux}. @var{file-systems} is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @code{--root}. @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted." msgstr "" +"[#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f] @\n" +"[#:linux-modules '()]\n" +"Renvoie un objet simili-fichier contenant un initrd générique, avec les modules du noyau de @var{linux}. @var{file-systems} est une liste de systèmes de fichiers à monter par l'initrd, éventuellement en plus du système de fichiers racine spécifié sur la ligne de commande du noyau via @code{--root}. @var{mapped-devices} est une liste de correspondances de périphériques à réaliser avant de monter les @var{file-systems}." #. type: deffn #: doc/guix.texi:22035 msgid "@var{qemu-networking?} and @var{volatile-root?} behaves as in @code{raw-initrd}." -msgstr "" +msgstr "@var{qemu-networking?} et @var{volatile-root?} se comportent comme pour @code{raw-initrd}." #. type: deffn #: doc/guix.texi:22040 msgid "The initrd is automatically populated with all the kernel modules necessary for @var{file-systems} and for the given options. Additional kernel modules can be listed in @var{linux-modules}. They will be added to the initrd, and loaded at boot time in the order in which they appear." -msgstr "" +msgstr "L'initrd est automatiquement remplie avec tous les modules du noyau requis pour @var{file-systems} et pour les options données. On peut lister des modules supplémentaires dans @var{linux-modules}. Ils seront ajoutés à l'initrd et chargés au démarrage dans l'ordre dans lequel ils apparaissent." #. type: Plain text #: doc/guix.texi:22047 msgid "Needless to say, the initrds we produce and use embed a statically-linked Guile, and the initialization program is a Guile program. That gives a lot of flexibility. The @code{expression->initrd} procedure builds such an initrd, given the program to run in that initrd." -msgstr "" +msgstr "Inutile de le dire, les initrds que nous produisons et utilisons incluent une version de Guile liée statiquement, et le programme d'initialisation est un programme Guile. Cela donne beaucoup de flexibilité. La procédure @code{expression->initrd} construit un tel initrd, étant donné le programme à lancer dans cet initrd." #. type: deffn #: doc/guix.texi:22048 @@ -40462,22 +40512,24 @@ msgstr "{Procédure Scheme} expression->initrd @var{exp} @" #: doc/guix.texi:22054 msgid "[#:guile %guile-static-stripped] [#:name \"guile-initrd\"] Return as a file-like object a Linux initrd (a gzipped cpio archive) containing @var{guile} and that evaluates @var{exp}, a G-expression, upon booting. All the derivations referenced by @var{exp} are automatically copied to the initrd." msgstr "" +"[#:guile %guile-static-stripped] [#:name \"guile-initrd\"]\n" +"Renvoie un objet simili-fichier contenant un initrd Linux (une archive cpio compressée avec gzip) contenant @var{guile} et qui évalue @var{exp}, une G-expression, au démarrage. Toutes les dérivations référencées par @var{exp} sont automatiquement copiées dans l'initrd." #. type: cindex #: doc/guix.texi:22060 #, no-wrap msgid "boot loader" -msgstr "" +msgstr "chargeur d'amorçage" #. type: Plain text #: doc/guix.texi:22067 msgid "The operating system supports multiple bootloaders. The bootloader is configured using @code{bootloader-configuration} declaration. All the fields of this structure are bootloader agnostic except for one field, @code{bootloader} that indicates the bootloader to be configured and installed." -msgstr "" +msgstr "Le système d'exploitation supporte plusieurs chargeurs d'amorçage. La configuration du chargeur d'amorçage se fait avec la déclaration @code{bootloader-configuration}. Tous les champs de cette structure sont indépendants du chargeur d'amorçage sauf un, @code{bootloader} qui indique le chargeur d'amorçage à configurer et à installer." #. type: Plain text #: doc/guix.texi:22072 msgid "Some of the bootloaders do not honor every field of @code{bootloader-configuration}. For instance, the extlinux bootloader does not support themes and thus ignores the @code{theme} field." -msgstr "" +msgstr "Certains chargeurs d'amorçage ne respectent pas tous les champs de @code{bootloader-configuration}. Par exemple, le chargeur d'amorçage extlinux ne supporte pas les thèmes et ignore donc le champ @code{theme}." #. type: deftp #: doc/guix.texi:22073 @@ -40488,40 +40540,40 @@ msgstr "{Type de données} bootloader-configuration" #. type: deftp #: doc/guix.texi:22075 msgid "The type of a bootloader configuration declaration." -msgstr "" +msgstr "Le type d'une déclaration de configuration de chargeur d'amorçage." #. type: cindex #: doc/guix.texi:22079 #, no-wrap msgid "EFI, bootloader" -msgstr "" +msgstr "EFI, chargeur d'amorçage" #. type: cindex #: doc/guix.texi:22080 #, no-wrap msgid "UEFI, bootloader" -msgstr "" +msgstr "UEFI, chargeur d'amorçage" #. type: cindex #: doc/guix.texi:22081 #, no-wrap msgid "BIOS, bootloader" -msgstr "" +msgstr "BIOS, chargeur d'amorçage" #. type: table #: doc/guix.texi:22085 msgid "The bootloader to use, as a @code{bootloader} object. For now @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{extlinux-bootloader} and @code{u-boot-bootloader} are supported." -msgstr "" +msgstr "Le chargeur d'amorçage à utiliser, comme objet @code{bootloader}. Pour l'instant @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{extlinux-bootloader} et @code{u-boot-bootloader} sont supportés." #. type: table #: doc/guix.texi:22091 msgid "@code{grub-efi-bootloader} allows to boot on modern systems using the @dfn{Unified Extensible Firmware Interface} (UEFI). This is what you should use if the installation image contains a @file{/sys/firmware/efi} directory when you boot it on your system." -msgstr "" +msgstr "@code{grub-efi-bootloader} permet de démarrer sur un système moderne qui utilise l'UEFI (@dfn{Unified Extensible Firmware Interface}). C'est ce que vous devriez utiliser si l'image d'installation contient un répertoire @file{/sys/firmware/efi} lorsque vous démarrez dessus sur votre machine." #. type: table #: doc/guix.texi:22095 msgid "@code{grub-bootloader} allows you to boot in particular Intel-based machines in ``legacy'' BIOS mode." -msgstr "" +msgstr "@code{grub-bootloader} vous permet de démarrer en particulier sur des machines Intel en mode BIOS « legacy »." #. type: cindex #: doc/guix.texi:22096 @@ -40538,17 +40590,17 @@ msgstr "AArch64, chargeurs d'amorçage" #. type: table #: doc/guix.texi:22102 msgid "Available bootloaders are described in @code{(gnu bootloader @dots{})} modules. In particular, @code{(gnu bootloader u-boot)} contains definitions of bootloaders for a wide range of ARM and AArch64 systems, using the @uref{http://www.denx.de/wiki/U-Boot/, U-Boot bootloader}." -msgstr "" +msgstr "Les chargeurs d'amorçage disponibles sont décrits dans les modules @code{(gnu bootloader @dots{})}. En particulier, @code{(gnu bootloader u-boot)} contient des définitions de chargeurs d'amorçage pour une large gamme de systèmes ARM et AArch, à l'aide du @uref{http://www.denx.de/wiki/U-Boot/, chargeur d'amorçage U-Boot}" #. type: table #: doc/guix.texi:22106 msgid "This is a string denoting the target onto which to install the bootloader." -msgstr "" +msgstr "C'est une chaîne qui dénote la cible sur laquelle installer le chargeur d'amorçage." #. type: table #: doc/guix.texi:22113 msgid "The interpretation depends on the bootloader in question. For @code{grub-bootloader}, for example, it should be a device name understood by the bootloader @command{installer} command, such as @code{/dev/sda} or @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}). For @code{grub-efi-bootloader}, it should be the mount point of the EFI file system, usually @file{/boot/efi}." -msgstr "" +msgstr "L'interprétation dépend du chargeur d'amorçage en question. Pour @code{grub-bootloader} par exemple, cela devrait être un nom de périphérique compris par la commande @command{installer} du chargeur d'amorçage, comme @code{/dev/sda} ou @code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}). Pour @code{grub-efi-bootloader}, cela devrait être le point de montage du système de fichiers EFI, typiquement @file{/boot/efi}." #. type: item #: doc/guix.texi:22114 @@ -40559,7 +40611,7 @@ msgstr "@code{menu-entries} (par défaut : @code{()})" #. type: table #: doc/guix.texi:22118 msgid "A possibly empty list of @code{menu-entry} objects (see below), denoting entries to appear in the bootloader menu, in addition to the current system entry and the entry pointing to previous system generations." -msgstr "" +msgstr "Une liste éventuellement vide d'objets @code{menu-entry} (voir plus bas), dénotant les entrées qui doivent apparaître dans le menu du chargeur d'amorçage, en plus de l'entrée pour le système actuel et l'entrée pointant vers les générations précédentes." #. type: item #: doc/guix.texi:22119 @@ -40570,7 +40622,7 @@ msgstr "@code{default-entry} (par défaut : @code{0})" #. type: table #: doc/guix.texi:22122 msgid "The index of the default boot menu entry. Index 0 is for the entry of the current system." -msgstr "" +msgstr "L'index de l'entrée du menu de démarrage par défaut. L'index 0 correspond au système actuel." #. type: item #: doc/guix.texi:22123 @@ -40581,7 +40633,7 @@ msgstr "@code{timeout} (par défaut : @code{5})" #. type: table #: doc/guix.texi:22126 msgid "The number of seconds to wait for keyboard input before booting. Set to 0 to boot immediately, and to -1 to wait indefinitely." -msgstr "" +msgstr "Le nombre de secondes à attendre une entrée clavier avant de démarrer. Indiquez 0 pour démarre immédiatement, et -1 pour attendre indéfiniment." #. type: item #: doc/guix.texi:22127 @@ -40592,7 +40644,7 @@ msgstr "@code{theme} (par défaut : @var{#f})" #. type: table #: doc/guix.texi:22131 msgid "The bootloader theme object describing the theme to use. If no theme is provided, some bootloaders might use a default theme, that's true for GRUB." -msgstr "" +msgstr "L'objet de thème du chargeur d'amorçage décrivant le thème utilisé. Si aucun thème n'est fournit, certains chargeurs d'amorçage peuvent utiliser un thème par défaut, c'est le cas de GRUB." #. type: item #: doc/guix.texi:22132 @@ -40603,7 +40655,7 @@ msgstr "@code{terminal-outputs} (par défaut : @code{'gfxterm})" #. type: table #: doc/guix.texi:22139 msgid "The output terminals used for the bootloader boot menu, as a list of symbols. GRUB accepts the values: @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, @code{morse}, and @code{pkmodem}. This field corresponds to the GRUB variable @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})." -msgstr "" +msgstr "Les terminaux de sortie utilisés par le menu de démarrage du chargeur d'amorçage, en tant que liste de symboles. GRUB accepte les valeurs @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, @code{morse} et @code{pkmodem}. Ce champ correspond à la variable GRUB @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})." #. type: item #: doc/guix.texi:22140 @@ -40614,7 +40666,7 @@ msgstr "@code{terminal-inputs} (par défaut : @code{'()})" #. type: table #: doc/guix.texi:22148 msgid "The input terminals used for the bootloader boot menu, as a list of symbols. For GRUB, the default is the native platform terminal as determined at run-time. GRUB accepts the values: @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard}, and @code{usb_keyboard}. This field corresponds to the GRUB variable @code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})." -msgstr "" +msgstr "Les terminaux d'entrée utilisés par le menu de démarrage du chargeur d'amorçage, en tant que liste de symboles. Pour GRUB, la valeur par défaut est le terminal natif de la plate-forme déterminé à l'exécution. GRUB accepte les valeurs @code{console}, @code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard} et @code{usb_keyboard}. Ce champ correspond à la variable GRUB @code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, grub,GNU GRUB manual})." #. type: item #: doc/guix.texi:22149 @@ -40625,7 +40677,7 @@ msgstr "@code{serial-unit} (par défaut : @code{#f})" #. type: table #: doc/guix.texi:22153 msgid "The serial unit used by the bootloader, as an integer from 0 to 3. For GRUB, it is chosen at run-time; currently GRUB chooses 0, which corresponds to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual})." -msgstr "" +msgstr "L'unitié série utilisée par le chargeur d'amorçage, en tant qu'entier entre 0 et 3. Pour GRUB, il est choisi à l'exécution ; actuellement GRUB choisi 0, ce qui correspond à COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual})." #. type: item #: doc/guix.texi:22154 @@ -40636,24 +40688,24 @@ msgstr "@code{serial-speed} (par défaut : @code{#f})" #. type: table #: doc/guix.texi:22158 msgid "The speed of the serial interface, as an integer. For GRUB, the default value is chosen at run-time; currently GRUB chooses 9600@tie{}bps (@pxref{Serial terminal,,, grub,GNU GRUB manual})." -msgstr "" +msgstr "La vitesse de l'interface série, en tant qu'entier. Pour GRUB, la valeur par défaut est choisie à l'exécution ; actuellement GRUB choisi 9600@tie{}bps (@pxref{Serial terminal,,, grub,GNU GRUB manual})." #. type: cindex #: doc/guix.texi:22162 #, no-wrap msgid "dual boot" -msgstr "" +msgstr "dual boot" #. type: cindex #: doc/guix.texi:22163 #, no-wrap msgid "boot menu" -msgstr "" +msgstr "menu de démarrage" #. type: Plain text #: doc/guix.texi:22169 msgid "Should you want to list additional boot menu entries @i{via} the @code{menu-entries} field above, you will need to create them with the @code{menu-entry} form. For example, imagine you want to be able to boot another distro (hard to imagine!), you can define a menu entry along these lines:" -msgstr "" +msgstr "Si vous voulez lister des entrées du menu de démarrage supplémentaires via le champ @code{menu-entries} ci-dessus, vous devrez les créer avec la forme @code{menu-entry}. Par exemple, imaginons que vous souhaitiez pouvoir démarrer sur une autre distro (c'est difficile à concevoir !), vous pourriez alors définir une entrée du menu comme ceci :" #. type: example #: doc/guix.texi:22176 @@ -40665,11 +40717,16 @@ msgid "" " (linux-arguments '(\"root=/dev/sda2\"))\n" " (initrd \"/boot/old/initrd\"))\n" msgstr "" +"(menu-entry\n" +" (label \"L'autre distro\")\n" +" (linux \"/boot/old/vmlinux-2.6.32\")\n" +" (linux-arguments '(\"root=/dev/sda2\"))\n" +" (initrd \"/boot/old/initrd\"))\n" #. type: Plain text #: doc/guix.texi:22179 msgid "Details below." -msgstr "" +msgstr "Les détails suivent." #. type: deftp #: doc/guix.texi:22180 @@ -40680,51 +40737,51 @@ msgstr "{Type de données} menu-entry" #. type: deftp #: doc/guix.texi:22182 msgid "The type of an entry in the bootloader menu." -msgstr "" +msgstr "Le type d'une entrée dans le menu du chargeur d'amorçage." #. type: code{#1} #: doc/guix.texi:22185 #, no-wrap msgid "label" -msgstr "" +msgstr "label" #. type: table #: doc/guix.texi:22187 msgid "The label to show in the menu---e.g., @code{\"GNU\"}." -msgstr "" +msgstr "L'étiquette à montrer dans le menu — p.@: ex.@: @code{\"GNU\"}." #. type: code{#1} #: doc/guix.texi:22188 #, no-wrap msgid "linux" -msgstr "" +msgstr "linux" #. type: table #: doc/guix.texi:22190 msgid "The Linux kernel image to boot, for example:" -msgstr "" +msgstr "L'image du noyau Linux à démarrer, par exemple :" #. type: example #: doc/guix.texi:22193 #, no-wrap msgid "(file-append linux-libre \"/bzImage\")\n" -msgstr "" +msgstr "(file-append linux-libre \"/bzImage\")\n" #. type: table #: doc/guix.texi:22198 msgid "For GRUB, it is also possible to specify a device explicitly in the file path using GRUB's device naming convention (@pxref{Naming convention,,, grub, GNU GRUB manual}), for example:" -msgstr "" +msgstr "Pour GRUB, il est aussi possible de spécifier un périphérique explicitement dans le chemin de fichier avec la convention de nommage de GRUB (@pxref{Naming convention,,, grub, GNU GRUB manual}), par exemple :" #. type: example #: doc/guix.texi:22201 #, no-wrap msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n" -msgstr "" +msgstr "\"(hd0,msdos1)/boot/vmlinuz\"\n" #. type: table #: doc/guix.texi:22205 msgid "If the device is specified explicitly as above, then the @code{device} field is ignored entirely." -msgstr "" +msgstr "Si le périphérique est spécifié explicitement comme au-dessus, le champ @code{device} est complètement ignoré." #. type: item #: doc/guix.texi:22206 @@ -40735,12 +40792,12 @@ msgstr "@code{linux-arguments} (par défaut : @code{()})" #. type: table #: doc/guix.texi:22209 msgid "The list of extra Linux kernel command-line arguments---e.g., @code{(\"console=ttyS0\")}." -msgstr "" +msgstr "La liste des arguments de la ligne de commande du noyau supplémentaires — p.@: ex.@: @code{(\"console=ttyS0\")}." #. type: table #: doc/guix.texi:22213 msgid "A G-Expression or string denoting the file name of the initial RAM disk to use (@pxref{G-Expressions})." -msgstr "" +msgstr "Une G-expression ou une chaîne dénotant le nom de fichier du disque de RAM initial à utiliser (@pxref{G-Expressions})." #. type: item #: doc/guix.texi:22213 @@ -40751,27 +40808,27 @@ msgstr "@code{device} (par défaut : @code{#f})" #. type: table #: doc/guix.texi:22216 msgid "The device where the kernel and initrd are to be found---i.e., for GRUB, @dfn{root} for this menu entry (@pxref{root,,, grub, GNU GRUB manual})." -msgstr "" +msgstr "Le périphérique où le noyau et l'initrd se trouvent — c.-à-d.@: pour GRUB, l'option @dfn{root} de cette entrée de menu (@pxref{root,,, grub, GNU GRUB manual})." #. type: table #: doc/guix.texi:22222 msgid "This may be a file system label (a string), a file system UUID (a bytevector, @pxref{File Systems}), or @code{#f}, in which case the bootloader will search the device containing the file specified by the @code{linux} field (@pxref{search,,, grub, GNU GRUB manual}). It must @emph{not} be an OS device name such as @file{/dev/sda1}." -msgstr "" +msgstr "Cela peut être une étiquette de système de fichiers (une chaîne), un UUID de système de fichiers (un vecteur d'octets, @pxref{File Systems}) ou @code{#f}, auquel cas le chargeur d'amorçage recherchera le périphérique contenant le fichier spécifié par le champ @code{linux} (@pxref{search,,, grub, GNU GRUB manual}). Cela ne doit @emph{pas} être un nom de périphérique donné par l'OS comme @file{/dev/sda1}." #. type: Plain text #: doc/guix.texi:22229 msgid "Fow now only GRUB has theme support. GRUB themes are created using the @code{grub-theme} form, which is not documented yet." -msgstr "" +msgstr "Pour l'instant seul GRUB supporte les thèmes. On crée un thème GRUB avec la forme @code{grub-theme}, qui n'est pas encore documentée." #. type: defvr #: doc/guix.texi:22234 msgid "This is the default GRUB theme used by the operating system if no @code{theme} field is specified in @code{bootloader-configuration} record." -msgstr "" +msgstr "C'est le thème par défaut de GRUB utilisé par le système d'exploitation si aucun champ @code{theme} n'est spécifié dans l'enregistrement @code{bootloader-configuration}." #. type: defvr #: doc/guix.texi:22237 msgid "It comes with a fancy background image displaying the GNU and Guix logos." -msgstr "" +msgstr "Il contient une image de fond sympathique avec les logos de GNU et de Guix." #. type: subsection #: doc/guix.texi:22241 @@ -40782,29 +40839,29 @@ msgstr "Invoquer @code{guix system}" #. type: Plain text #: doc/guix.texi:22246 msgid "Once you have written an operating system declaration as seen in the previous section, it can be @dfn{instantiated} using the @command{guix system} command. The synopsis is:" -msgstr "" +msgstr "Une fois que vous avez écrit une déclaration de système d'exploitation comme nous l'avons vu dans les sections précédentes, elle peut être instanciée avec la commande @command{guix system}. Voici le résumé de la commande :" #. type: example #: doc/guix.texi:22249 #, no-wrap msgid "guix system @var{options}@dots{} @var{action} @var{file}\n" -msgstr "" +msgstr "guix system @var{options}@dots{} @var{action} @var{file}\n" #. type: Plain text #: doc/guix.texi:22255 msgid "@var{file} must be the name of a file containing an @code{operating-system} declaration. @var{action} specifies how the operating system is instantiated. Currently the following values are supported:" -msgstr "" +msgstr "@var{file} doit être le nom d'un fichier contenant une déclaration @code{operating-system}. @var{action} spécifie comme le système d'exploitation est instancié. Actuellement les valeurs suivantes sont supportées :" #. type: item #: doc/guix.texi:22257 #, no-wrap msgid "search" -msgstr "" +msgstr "search" #. type: table #: doc/guix.texi:22260 msgid "Display available service type definitions that match the given regular expressions, sorted by relevance:" -msgstr "" +msgstr "Affiche les définitions des types de services disponibles qui correspondent aux expressions régulières données, triées par pertinence." #. type: example #: doc/guix.texi:22272 @@ -40822,6 +40879,16 @@ msgid "" "relevance: 20\n" "\n" msgstr "" +"$ guix system search console font\n" +"name: console-fonts\n" +"location: gnu/services/base.scm:773:2\n" +"extends: shepherd-root\n" +"description: Installe des polices données sur les ttys spécifiés (les polices sont par console virtuelle sous GNU/Linux). la valeur de ces service est une liste de paires\n" +"+ de tty/police comme ceci :\n" +"+ \n" +"+ '((\"tty1\" . \"LatGrkCyr-8x16\"))\n" +"relevance: 16\n" +"\n" #. type: example #: doc/guix.texi:22278 @@ -40834,6 +40901,12 @@ msgid "" "relevance: 2\n" "\n" msgstr "" +"name: mingetty\n" +"location: gnu/services/base.scm:1144:2\n" +"extends: shepherd-root\n" +"description: Fournit la connexion en console avec le programme `mingetty'.\n" +"relevance: 4\n" +"\n" #. type: example #: doc/guix.texi:22285 @@ -40847,6 +40920,12 @@ msgid "" "relevance: 2\n" "\n" msgstr "" +"name: login\n" +"location: gnu/services/base.scm:819:2\n" +"extends: pam\n" +"description: Fournit un service de connexion en console tel que spécifié par sa valeur de configuration, un objet `login-configuration'.\n" +"relevance: 4\n" +"\n" #. type: example #: doc/guix.texi:22287 @@ -40857,183 +40936,183 @@ msgstr "@dots{}\n" #. type: table #: doc/guix.texi:22292 msgid "As for @command{guix package --search}, the result is written in @code{recutils} format, which makes it easy to filter the output (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})." -msgstr "" +msgstr "Comme pour @command{guix package --search}, le résultat est écrit au format @code{recutils}, ce qui rend facile le filtrage de la sortie (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})." #. type: item #: doc/guix.texi:22293 #, no-wrap msgid "reconfigure" -msgstr "" +msgstr "reconfigure" #. type: table #: doc/guix.texi:22298 msgid "Build the operating system described in @var{file}, activate it, and switch to it@footnote{This action (and the related actions @code{switch-generation} and @code{roll-back}) are usable only on systems already running GuixSD.}." -msgstr "" +msgstr "Construit le système d'exploitation décrit dans @var{file}, l'active et passe dessus@footnote{Cette action (et les action @code{switch-generation} et @code{roll-back} liées) ne sont utilisables que sur les systèmes sous GuixSD.}." #. type: table #: doc/guix.texi:22305 msgid "This effects all the configuration specified in @var{file}: user accounts, system services, global package list, setuid programs, etc. The command starts system services specified in @var{file} that are not currently running; if a service is currently running this command will arrange for it to be upgraded the next time it is stopped (eg. by @code{herd stop X} or @code{herd restart X})." -msgstr "" +msgstr "Cela met en application toute la configuration spécifiée dans @var{file} : les comptes utilisateurs, la liste globale des paquets, les programmes setuid, etc. La commande démarre les services systèmes spécifiés dans @var{file} qui ne sont pas actuellement lancés ; si un service est actuellement exécuté cette commande s'arrange pour qu'il soit mis à jour la prochaine fois qu'il est stoppé (p.@: ex@: par @code{herd stop X} ou @code{herd restart X})." #. type: table #: doc/guix.texi:22311 msgid "This command creates a new generation whose number is one greater than the current generation (as reported by @command{guix system list-generations}). If that generation already exists, it will be overwritten. This behavior mirrors that of @command{guix package} (@pxref{Invoking guix package})." -msgstr "" +msgstr "Cette commande crée une nouvelle génération dont le numéro est un de plus que la génération actuelle (rapportée par @command{guix system list-generations}). Si cette génération existe déjà, elle sera réécrite. Ce comportement correspond à celui de @command{guix package} (@pxref{Invoking guix package})." #. type: table #: doc/guix.texi:22316 msgid "It also adds a bootloader menu entry for the new OS configuration, ---unless @option{--no-bootloader} is passed. For GRUB, it moves entries for older configurations to a submenu, allowing you to choose an older system generation at boot time should you need it." -msgstr "" +msgstr "Elle ajoute aussi une entrée de menu du chargeur d'amorçage pour la nouvelle configuration, à moins que @option{--no-bootloader} ne soit passé. Pour GRUB, elle déplace les entrées pour les anciennes configurations dans un sous-menu, ce qui vous permet de choisir une ancienne génération au démarrage si vous en avez besoin." #. type: quotation #: doc/guix.texi:22324 msgid "It is highly recommended to run @command{guix pull} once before you run @command{guix system reconfigure} for the first time (@pxref{Invoking guix pull}). Failing to do that you would see an older version of Guix once @command{reconfigure} has completed." -msgstr "" +msgstr "Il est grandement recommandé de lancer @command{guix pull} une fois avant de lancer @command{guix system reconfigure} pour la première fois (@pxref{Invoking guix pull}). Sans cela, vous verriez une version plus ancienne de Guix une fois @command{reconfigure} terminé." #. type: item #: doc/guix.texi:22326 #, no-wrap msgid "switch-generation" -msgstr "" +msgstr "switch-generation" #. type: table #: doc/guix.texi:22335 msgid "Switch to an existing system generation. This action atomically switches the system profile to the specified system generation. It also rearranges the system's existing bootloader menu entries. It makes the menu entry for the specified system generation the default, and it moves the entries for the other generatiors to a submenu, if supported by the bootloader being used. The next time the system boots, it will use the specified system generation." -msgstr "" +msgstr "Passe à une génération existante du système. Cette action change automatiquement le profil système vers la génération spécifiée. Elle réarrange aussi les entrées existantes du menu du chargeur d'amorçage du système. Elle fait de l'entrée du menu pour la génération spécifiée l'entrée par défaut et déplace les entrées pour les autres générations dans un sous-menu, si cela est supporté par le chargeur d'amorçage utilisé. Lors du prochain démarrage du système, la génération du système spécifiée sera utilisée." #. type: table #: doc/guix.texi:22339 msgid "The bootloader itself is not being reinstalled when using this command. Thus, the installed bootloader is used with an updated configuration file." -msgstr "" +msgstr "Le chargeur d'amorçage lui-même n'est pas réinstallé avec cette commande. Ainsi, le chargeur d'amorçage est utilisé avec un fichier de configuration plus à jour." #. type: table #: doc/guix.texi:22343 msgid "The target generation can be specified explicitly by its generation number. For example, the following invocation would switch to system generation 7:" -msgstr "" +msgstr "La génération cible peut être spécifiée explicitement par son numéro de génération. Par exemple, l'invocation suivante passerait à la génération 7 du système :" #. type: example #: doc/guix.texi:22346 #, no-wrap msgid "guix system switch-generation 7\n" -msgstr "" +msgstr "guix system switch-generation 7\n" #. type: table #: doc/guix.texi:22354 msgid "The target generation can also be specified relative to the current generation with the form @code{+N} or @code{-N}, where @code{+3} means ``3 generations ahead of the current generation,'' and @code{-1} means ``1 generation prior to the current generation.'' When specifying a negative value such as @code{-1}, you must precede it with @code{--} to prevent it from being parsed as an option. For example:" -msgstr "" +msgstr "La génération cible peut aussi être spécifiée relativement à la génération actuelle avec la forme @code{+N} ou @code{-N}, où @code{+3} signifie « trois générations après la génération actuelle » et @code{-1} signifie « une génération précédent la génération actuelle ». Lorsque vous spécifiez un nombre négatif comme @code{-1}, il doit être précédé de @code{--} pour éviter qu'il ne soit compris comme une option. Par exemple :" #. type: example #: doc/guix.texi:22357 #, no-wrap msgid "guix system switch-generation -- -1\n" -msgstr "" +msgstr "guix system switch-generation -- -1\n" #. type: table #: doc/guix.texi:22365 msgid "Currently, the effect of invoking this action is @emph{only} to switch the system profile to an existing generation and rearrange the bootloader menu entries. To actually start using the target system generation, you must reboot after running this action. In the future, it will be updated to do the same things as @command{reconfigure}, like activating and deactivating services." -msgstr "" +msgstr "Actuellement, l'effet de l'invocation de cette action est @emph{uniquement} de passer au profil du système vers une autre génération existante et de réarranger le menu du chargeur d'amorçage. Pour vraiment commencer à utiliser la génération spécifiée, vous devez redémarrer après avoir lancé cette action. Dans le futur, elle sera corrigée pour faire la même chose que @command{reconfigure}, comme réactiver et désactiver les services." #. type: table #: doc/guix.texi:22367 msgid "This action will fail if the specified generation does not exist." -msgstr "" +msgstr "Cette action échouera si la génération spécifiée n'existe pas." #. type: item #: doc/guix.texi:22368 #, no-wrap msgid "roll-back" -msgstr "" +msgstr "roll-back" #. type: table #: doc/guix.texi:22374 msgid "Switch to the preceding system generation. The next time the system boots, it will use the preceding system generation. This is the inverse of @command{reconfigure}, and it is exactly the same as invoking @command{switch-generation} with an argument of @code{-1}." -msgstr "" +msgstr "Passe à la génération précédente du système. Au prochain démarrage, la génération précédente sera utilisée. C'est le contraire de @command{reconfigure}, et c'est exactement comme invoquer @command{switch-generation} avec pour argument @code{-1}." #. type: table #: doc/guix.texi:22378 msgid "Currently, as with @command{switch-generation}, you must reboot after running this action to actually start using the preceding system generation." -msgstr "" +msgstr "Actuellement, comme pour @command{switch-generation}, vous devez redémarrer après avoir lancé cette action pour vraiment démarrer sur la génération précédente du système." #. type: table #: doc/guix.texi:22383 msgid "Build the derivation of the operating system, which includes all the configuration files and programs needed to boot and run the system. This action does not actually install anything." -msgstr "" +msgstr "Construit la dérivation du système d'exploitation, ce qui comprend tous les fichiers de configuration et les programmes requis pour démarrer et lancer le système. Cette action n'installe rien." #. type: item #: doc/guix.texi:22384 #, no-wrap msgid "init" -msgstr "" +msgstr "init" #. type: table #: doc/guix.texi:22388 msgid "Populate the given directory with all the files necessary to run the operating system specified in @var{file}. This is useful for first-time installations of GuixSD. For instance:" -msgstr "" +msgstr "Rempli le répertoire donné avec tous les fichiers nécessaires à lancer le système d'exploitation spécifié dans @var{file}. C'est utile pour la première installation de GuixSD. Par exemple :" #. type: example #: doc/guix.texi:22391 #, no-wrap msgid "guix system init my-os-config.scm /mnt\n" -msgstr "" +msgstr "guix system init my-os-config.scm /mnt\n" #. type: table #: doc/guix.texi:22398 msgid "copies to @file{/mnt} all the store items required by the configuration specified in @file{my-os-config.scm}. This includes configuration files, packages, and so on. It also creates other essential files needed for the system to operate correctly---e.g., the @file{/etc}, @file{/var}, and @file{/run} directories, and the @file{/bin/sh} file." -msgstr "" +msgstr "copie tous les éléments du dépôt requis par la configuration spécifiée dans @file{my-os-config.scm} dans @file{/mnt}. Cela comprend les fichiers de configuration, les paquets, etc. Elle crée aussi d'autres fichiers essentiels requis pour que le système fonctionne correctement — p.@: ex.@: les répertoires @file{/etc}, @file{/var} et @file{/run} et le fichier @file{/bin/sh}." #. type: table #: doc/guix.texi:22402 msgid "This command also installs bootloader on the target specified in @file{my-os-config}, unless the @option{--no-bootloader} option was passed." -msgstr "" +msgstr "Cette commande installe aussi le chargeur d'amorçage sur la cible spécifiée dans @file{my-os-config}, à moins que l'option @option{--no-bootloader} ne soit passée." #. type: item #: doc/guix.texi:22403 #, no-wrap msgid "vm" -msgstr "" +msgstr "vm" #. type: cindex #: doc/guix.texi:22404 doc/guix.texi:22668 #, no-wrap msgid "virtual machine" -msgstr "" +msgstr "machine virtuelle" #. type: cindex #: doc/guix.texi:22405 #, no-wrap msgid "VM" -msgstr "" +msgstr "VM" #. type: anchor{#1} #: doc/guix.texi:22412 msgid "guix system vm" -msgstr "" +msgstr "guix system vm" #. type: table #: doc/guix.texi:22412 msgid "Build a virtual machine that contains the operating system declared in @var{file}, and return a script to run that virtual machine (VM). Arguments given to the script are passed to QEMU as in the example below, which enables networking and requests 1@tie{}GiB of RAM for the emulated machine:" -msgstr "" +msgstr "Construit une machine virtuelle qui contient le système d'exploitation déclaré dans @var{file} et renvoie un script pour lancer cette machine virtuelle (VM). Les arguments passés au script sont passés à QEMU comme dans l'exemple ci-dessous, qui active le réseau et demande 1@tie{}Go de RAM pour la machine émulée :" #. type: example #: doc/guix.texi:22415 #, no-wrap msgid "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user\n" -msgstr "" +msgstr "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user\n" #. type: table #: doc/guix.texi:22418 msgid "The VM shares its store with the host system." -msgstr "" +msgstr "La VM partage sont dépôt avec le système hôte." #. type: table #: doc/guix.texi:22423 msgid "Additional file systems can be shared between the host and the VM using the @code{--share} and @code{--expose} command-line options: the former specifies a directory to be shared with write access, while the latter provides read-only access to the shared directory." -msgstr "" +msgstr "Vous pouvez partager des fichiers supplémentaires entre l'hôte et la VM avec les options en ligne de commande @code{--share} et @code{--expose} : la première spécifie un répertoire à partager avec accès en écriture, tandis que le deuxième fournit un accès en lecture-seule au répertoire partagé." #. type: table #: doc/guix.texi:22427 msgid "The example below creates a VM in which the user's home directory is accessible read-only, and where the @file{/exchange} directory is a read-write mapping of @file{$HOME/tmp} on the host:" -msgstr "" +msgstr "L'exemple ci-dessous crée une VM dans laquelle le répertoire personnel de l'utilisateur est accessible en lecture-seule, et où le répertoire @file{/exchange} est une correspondance en lecture-écriture à @file{$HOME/tmp} sur l'hôte :" #. type: example #: doc/guix.texi:22431 @@ -41042,77 +41121,79 @@ msgid "" "guix system vm my-config.scm \\\n" " --expose=$HOME --share=$HOME/tmp=/exchange\n" msgstr "" +"guix system vm my-config.scm \\\n" +" --expose=$HOME --share=$HOME/tmp=/exchange\n" #. type: table #: doc/guix.texi:22436 msgid "On GNU/Linux, the default is to boot directly to the kernel; this has the advantage of requiring only a very tiny root disk image since the store of the host can then be mounted." -msgstr "" +msgstr "Sur GNU/Linux, le comportement par défaut consiste à démarrer directement sur le noyau ; cela a l'avantage de n'avoir besoin que d'une toute petite image disque puisque le dépôt de l'hôte peut ensuite être monté." #. type: table #: doc/guix.texi:22442 msgid "The @code{--full-boot} option forces a complete boot sequence, starting with the bootloader. This requires more disk space since a root image containing at least the kernel, initrd, and bootloader data files must be created. The @code{--image-size} option can be used to specify the size of the image." -msgstr "" +msgstr "L'option @code{--full-boot} force une séquence de démarrage complète, en commençant par le chargeur d'amorçage. Cela requiert plus d'espace disque puisqu'une image racine contenant au moins le noyau, l'initrd et les fichiers de données du chargeur d'amorçage doit être créé. On peut utiliser l'option @code{--image-size} pour spécifier la taille de l'image." #. type: cindex #: doc/guix.texi:22443 #, no-wrap msgid "System images, creation in various formats" -msgstr "" +msgstr "Images système, création en divers formats" #. type: cindex #: doc/guix.texi:22444 #, no-wrap msgid "Creating system images in various formats" -msgstr "" +msgstr "Créer des images systèmes sous différents formats" #. type: item #: doc/guix.texi:22445 #, no-wrap msgid "vm-image" -msgstr "" +msgstr "vm-image" #. type: itemx #: doc/guix.texi:22446 #, no-wrap msgid "disk-image" -msgstr "" +msgstr "disk-image" #. type: itemx #: doc/guix.texi:22447 #, no-wrap msgid "docker-image" -msgstr "" +msgstr "docker-image" #. type: table #: doc/guix.texi:22455 msgid "Return a virtual machine, disk image, or Docker image of the operating system declared in @var{file} that stands alone. By default, @command{guix system} estimates the size of the image needed to store the system, but you can use the @option{--image-size} option to specify a value. Docker images are built to contain exactly what they need, so the @option{--image-size} option is ignored in the case of @code{docker-image}." -msgstr "" +msgstr "Renvoie une machine virtuelle, une image disque ou une image Docker du système d'exploitation déclaré dans @var{file} qui se suffit à elle-même. Par défaut, @command{guix system} estime la taille de l'image requise pour stocker le système, mais vous pouvez utiliser l'option @option{--image-size} pour spécifier une valeur. Les images Docker sont construites pour contenir exactement ce dont elles ont besoin, donc l'option @option{--image-size} est ignorée dans le cas de @code{docker-image}." #. type: table #: doc/guix.texi:22458 msgid "You can specify the root file system type by using the @option{--file-system-type} option. It defaults to @code{ext4}." -msgstr "" +msgstr "Vous pouvez spécifier le type de système de fichiers racine avec l'option @option{--file-system-type}. La valeur par défaut est @code{ext4}." #. type: table #: doc/guix.texi:22462 msgid "When using @code{vm-image}, the returned image is in qcow2 format, which the QEMU emulator can efficiently use. @xref{Running GuixSD in a VM}, for more information on how to run the image in a virtual machine." -msgstr "" +msgstr "Lorsque vous utilisez @code{vm-image}, l'image renvoyée est au format qcow, que l'émulateur QEMU peut utiliser efficacement. @xref{Running GuixSD in a VM}, pour plus d'informations sur la manière de lancer l'image dans une machine virtuelle." #. type: table #: doc/guix.texi:22467 msgid "When using @code{disk-image}, a raw disk image is produced; it can be copied as is to a USB stick, for instance. Assuming @code{/dev/sdc} is the device corresponding to a USB stick, one can copy the image to it using the following command:" -msgstr "" +msgstr "Lorsque vous utilisez @code{disk-image}, une image disque brute est produite ; elle peut être copiée telle quelle sur un périphérique USB. En supposant que @code{/dev/sdc} est le périphérique correspondant à une clef USB, on peut copier l'image dessus avec la commande suivante :" #. type: example #: doc/guix.texi:22470 #, no-wrap msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc\n" -msgstr "" +msgstr "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc\n" #. type: table #: doc/guix.texi:22477 msgid "When using @code{docker-image}, a Docker image is produced. Guix builds the image from scratch, not from a pre-existing Docker base image. As a result, it contains @emph{exactly} what you define in the operating system configuration file. You can then load the image and launch a Docker container using commands like the following:" -msgstr "" +msgstr "En utilisant @code{docker-image}, on produit une image Docker. Guix construit l'image de zéro, et non à partir d'une image Docker de base pré-existante. En conséquence, elle contient @emph{exactly} ce que vous avez défini dans le fichier de configuration du système. Vous pouvez ensuite charger l'image et lancer un conteneur Docker avec des commande comme :" #. type: example #: doc/guix.texi:22483 @@ -41123,26 +41204,30 @@ msgid "" " --entrypoint /var/guix/profiles/system/profile/bin/guile \\\\\n" " $image_id /var/guix/profiles/system/boot\n" msgstr "" +"image_id=\"$(docker load < guixsd-docker-image.tar.gz)\"\n" +"docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\\\\n" +" --entrypoint /var/guix/profiles/system/profile/bin/guile \\\\\n" +" $image_id /var/guix/profiles/system/boot\n" #. type: table #: doc/guix.texi:22493 msgid "This command starts a new Docker container from the specified image. It will boot the GuixSD system in the usual manner, which means it will start any services you have defined in the operating system configuration. Depending on what you run in the Docker container, it may be necessary to give the container additional permissions. For example, if you intend to build software using Guix inside of the Docker container, you may need to pass the @option{--privileged} option to @code{docker run}." -msgstr "" +msgstr "Cette commande démarre un nouveau conteneur Docker à partir de l'image spécifiée. Il démarrera le système GuixSD de la manière habituelle, ce qui signifie qu'il démarrera tous les services que vous avez définis dans la configuration du système d'exploitation. En fonction de ce que vous lancez dans le conteneur Docker, il peut être nécessaire de donner des permissions supplémentaires au conteneur. Par exemple, si vous voulez construire des paquets avec Guix dans le conteneur Docker, vous devriez passer @option{--privileged} à @code{docker run}." #. type: table #: doc/guix.texi:22501 msgid "Return a script to run the operating system declared in @var{file} within a container. Containers are a set of lightweight isolation mechanisms provided by the kernel Linux-libre. Containers are substantially less resource-demanding than full virtual machines since the kernel, shared objects, and other resources can be shared with the host system; this also means they provide thinner isolation." -msgstr "" +msgstr "Renvoie un script qui lance le système d'exploitation déclaré dans @var{file} dans un conteneur. Les conteneurs sont un ensemble de mécanismes d'isolation légers fournis par le noyau Linux-libre. Les conteneurs sont substantiellement moins gourmands en ressources que les machines virtuelles complètes car le noyau, les objets partagés et d'autres ressources peuvent être partagés avec le système hôte ; cela signifie aussi une isolation moins complète." #. type: table #: doc/guix.texi:22505 msgid "Currently, the script must be run as root in order to support more than a single user and group. The container shares its store with the host system." -msgstr "" +msgstr "Actuellement, le script doit être lancé en root pour pouvoir supporter plus d'un utilisateur et d'un groupe. Le conteneur partage son dépôt avec le système hôte." #. type: table #: doc/guix.texi:22509 msgid "As with the @code{vm} action (@pxref{guix system vm}), additional file systems to be shared between the host and container can be specified using the @option{--share} and @option{--expose} options:" -msgstr "" +msgstr "Comme avec l'action @code{vm} (@pxref{guix system vm}), des systèmes de fichiers supplémentaires peuvent être partagés entre l'hôte et le conteneur avec les options @option{--share} et @option{--expose} :" #. type: example #: doc/guix.texi:22513 @@ -41151,92 +41236,94 @@ msgid "" "guix system container my-config.scm \\\n" " --expose=$HOME --share=$HOME/tmp=/exchange\n" msgstr "" +"guix system container my-config.scm \\\n" +" --expose=$HOME --share=$HOME/tmp=/exchange\n" #. type: quotation #: doc/guix.texi:22517 msgid "This option requires Linux-libre 3.19 or newer." -msgstr "" +msgstr "Cette option requiert Linux-libre ou supérieur." #. type: Plain text #: doc/guix.texi:22524 msgid "@var{options} can contain any of the common build options (@pxref{Common Build Options}). In addition, @var{options} can contain one of the following:" -msgstr "" +msgstr "@var{options} peut contenir n'importe quelle option commune de construction (@pxref{Common Build Options}). En plus, @var{options} peut contenir l'une de ces options :" #. type: table #: doc/guix.texi:22533 msgid "Consider the operating-system @var{expr} evaluates to. This is an alternative to specifying a file which evaluates to an operating system. This is used to generate the GuixSD installer @pxref{Building the Installation Image})." -msgstr "" +msgstr "Considère le système d'exploitation en lequel s'évalue @var{expr}. C'est une alternative à la spécification d'un fichier qui s'évalue en un système d'exploitation. C'est utilisé pour générer l'installateur GuixSD (@pxref{Building the Installation Image})." #. type: table #: doc/guix.texi:22538 msgid "Attempt to build for @var{system} instead of the host system type. This works as per @command{guix build} (@pxref{Invoking guix build})." -msgstr "" +msgstr "Essaye de construire pour @var{system} au lieu du type du système hôte. Cela fonction comme pour @command{guix build} (@pxref{Invoking guix build})." #. type: item #: doc/guix.texi:22539 #, no-wrap msgid "--derivation" -msgstr "" +msgstr "--derivation" #. type: table #: doc/guix.texi:22543 msgid "Return the derivation file name of the given operating system without building anything." -msgstr "" +msgstr "Renvoie le nom du fichier de dérivation du système d'exploitation donné sans rien construire." #. type: item #: doc/guix.texi:22544 #, no-wrap msgid "--file-system-type=@var{type}" -msgstr "" +msgstr "--file-system-type=@var{type}" #. type: table #: doc/guix.texi:22548 msgid "For the @code{disk-image} action, create a file system of the given @var{type} on the image." -msgstr "" +msgstr "Pour l'action @code{disk-image}, crée un système de fichier du @var{type} donné sur l'image." #. type: table #: doc/guix.texi:22550 msgid "When this option is omitted, @command{guix system} uses @code{ext4}." -msgstr "" +msgstr "Lorsque cette option est omise, @command{guix system} utilise @code{ext4}." #. type: cindex #: doc/guix.texi:22551 #, no-wrap msgid "ISO-9660 format" -msgstr "" +msgstr "format ISO-9660" #. type: cindex #: doc/guix.texi:22552 #, no-wrap msgid "CD image format" -msgstr "" +msgstr "format d'image de CD" #. type: cindex #: doc/guix.texi:22553 #, no-wrap msgid "DVD image format" -msgstr "" +msgstr "format d'image de DVD" #. type: table #: doc/guix.texi:22556 msgid "@code{--file-system-type=iso9660} produces an ISO-9660 image, suitable for burning on CDs and DVDs." -msgstr "" +msgstr "@code{--file-system-type=iso9660} produit une image ISO-9660, qu'il est possible de graver sur un CD ou un DVD." #. type: item #: doc/guix.texi:22557 #, no-wrap msgid "--image-size=@var{size}" -msgstr "" +msgstr "--image-size=@var{size}" #. type: table #: doc/guix.texi:22562 msgid "For the @code{vm-image} and @code{disk-image} actions, create an image of the given @var{size}. @var{size} may be a number of bytes, or it may include a unit as a suffix (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})." -msgstr "" +msgstr "Pour les actions @code{vm-image} et @code{disk-image}, crée une image de la taille donnée @var{size}. @var{size} peut être un nombre d'octets ou contenir un suffixe d'unité (@pxref{Block size, size specifications,, coreutils, GNU Coreutils})." #. type: table #: doc/guix.texi:22566 msgid "When this option is omitted, @command{guix system} computes an estimate of the image size as a function of the size of the system declared in @var{file}." -msgstr "" +msgstr "Lorsque cette option est omise, @command{guix system} calcule une estimation de la taille de l'image en fonction de la taille du système déclaré dans @var{file}." #. type: item #: doc/guix.texi:22572 @@ -41247,163 +41334,163 @@ msgstr "--skip-checks" #. type: table #: doc/guix.texi:22574 msgid "Skip pre-installation safety checks." -msgstr "" +msgstr "Passe les vérifications de sécurité avant l'installation." #. type: table #: doc/guix.texi:22581 msgid "By default, @command{guix system init} and @command{guix system reconfigure} perform safety checks: they make sure the file systems that appear in the @code{operating-system} declaration actually exist (@pxref{File Systems}), and that any Linux kernel modules that may be needed at boot time are listed in @code{initrd-modules} (@pxref{Initial RAM Disk}). Passing this option skips these tests altogether." -msgstr "" +msgstr "Par défaut, @command{guix system init} et @command{guix system reconfigure} effectuent des vérifications de sécurité : ils s'assurent que les systèmes de fichiers qui apparaissent dans la déclaration @code{operating-system} existent vraiment (@pxref{File Systems}) et que les modules de noyau Linux qui peuvent être requis au démarrage sont listés dans @code{initrd-modules} (@pxref{Initial RAM Disk}). Passer cette option saute ces vérifications complètement." #. type: item #: doc/guix.texi:22582 #, no-wrap msgid "--on-error=@var{strategy}" -msgstr "" +msgstr "--on-error=@var{strategy}" #. type: table #: doc/guix.texi:22585 msgid "Apply @var{strategy} when an error occurs when reading @var{file}. @var{strategy} may be one of the following:" -msgstr "" +msgstr "Applique @var{strategy} lorsqu'une erreur arrive lors de la lecture de @var{file}. @var{strategy} peut être l'une des valeurs suivantes :" #. type: item #: doc/guix.texi:22587 #, no-wrap msgid "nothing-special" -msgstr "" +msgstr "nothing-special" #. type: table #: doc/guix.texi:22589 msgid "Report the error concisely and exit. This is the default strategy." -msgstr "" +msgstr "Rapporte l'erreur de manière concise et quitte. C'est la stratégie par défaut." #. type: item #: doc/guix.texi:22590 #, no-wrap msgid "backtrace" -msgstr "" +msgstr "backtrace" #. type: table #: doc/guix.texi:22592 msgid "Likewise, but also display a backtrace." -msgstr "" +msgstr "Pareil, mais affiche aussi une trace de débogage." #. type: item #: doc/guix.texi:22593 #, no-wrap msgid "debug" -msgstr "" +msgstr "debug" #. type: table #: doc/guix.texi:22599 msgid "Report the error and enter Guile's debugger. From there, you can run commands such as @code{,bt} to get a backtrace, @code{,locals} to display local variable values, and more generally inspect the state of the program. @xref{Debug Commands,,, guile, GNU Guile Reference Manual}, for a list of available debugging commands." -msgstr "" +msgstr "Rapporte l'erreur et entre dans le débogueur Guile. À partir de là, vous pouvez lancer des commandes comme @code{,bt} pour obtenir une trace de débogage, @code{,locals} pour afficher les valeurs des variables locales et plus généralement inspecter l'état du programme. @xref{Debug Commands,,, guile, GNU Guile Reference Manual}, pour une liste de commandes de débogage disponibles." #. type: quotation #: doc/guix.texi:22609 msgid "All the actions above, except @code{build} and @code{init}, can use KVM support in the Linux-libre kernel. Specifically, if the machine has hardware virtualization support, the corresponding KVM kernel module should be loaded, and the @file{/dev/kvm} device node must exist and be readable and writable by the user and by the build users of the daemon (@pxref{Build Environment Setup})." -msgstr "" +msgstr "Toutes les actions ci-dessous, sauf @code{build} et @code{init}, peuvent utiliser le support KVM dans le noyau Linux-libre. En particulier, si la machine supporte la virtualisation matérielle, les modules du noyau KVM correspondants devraient être chargés et le nœud de périphérique @file{/dev/kvm} doit exister et être accessible en lecture et en écriture par l'utilisateur et les utilisateurs de construction du démon (@pxref{Build Environment Setup})." #. type: Plain text #: doc/guix.texi:22615 msgid "Once you have built, configured, re-configured, and re-re-configured your GuixSD installation, you may find it useful to list the operating system generations available on disk---and that you can choose from the bootloader boot menu:" -msgstr "" +msgstr "Une fois que vous avez construit, re-configuré et re-re-configuré votre installation GuixSD, vous pourriez trouver utile de lister les générations du système disponibles sur le disque — et que vous pouvez choisir dans le menu du chargeur d'amorçage :" #. type: item #: doc/guix.texi:22618 #, no-wrap msgid "list-generations" -msgstr "" +msgstr "list-generations" #. type: table #: doc/guix.texi:22623 msgid "List a summary of each generation of the operating system available on disk, in a human-readable way. This is similar to the @option{--list-generations} option of @command{guix package} (@pxref{Invoking guix package})." -msgstr "" +msgstr "Affiche un résumé de chaque génération du système d'exploitation disponible sur le disque, dans un format lisible pour un humain. C'est similaire à l'option @option{--list-generations} de @command{guix package} (@pxref{Invoking guix package})." #. type: table #: doc/guix.texi:22628 msgid "Optionally, one can specify a pattern, with the same syntax that is used in @command{guix package --list-generations}, to restrict the list of generations displayed. For instance, the following command displays generations that are up to 10 days old:" -msgstr "" +msgstr "Éventuellement, on peut spécifier un motif, avec la même syntaxe utilisée pour @command{guix package --list-generations}, pour restreindre la liste des générations affichées. Par exemple, la commande suivante affiche les générations de moins de 10 jours :" #. type: example #: doc/guix.texi:22631 #, no-wrap msgid "$ guix system list-generations 10d\n" -msgstr "" +msgstr "$ guix system list-generations 10d\n" #. type: Plain text #: doc/guix.texi:22638 msgid "The @command{guix system} command has even more to offer! The following sub-commands allow you to visualize how your system services relate to each other:" -msgstr "" +msgstr "La commande @command{guix system} a même plus à proposer ! Les sous-commandes suivantes vous permettent de visualiser comme vos services systèmes sont liés les uns aux autres :" #. type: anchor{#1} #: doc/guix.texi:22640 msgid "system-extension-graph" -msgstr "" +msgstr "system-extension-graph" #. type: item #: doc/guix.texi:22642 #, no-wrap msgid "extension-graph" -msgstr "" +msgstr "extension-graph" #. type: table #: doc/guix.texi:22647 msgid "Emit in Dot/Graphviz format to standard output the @dfn{service extension graph} of the operating system defined in @var{file} (@pxref{Service Composition}, for more information on service extensions.)" -msgstr "" +msgstr "Affiche le @dfn{graphe d'extension des services} du système d'exploitation défini dans @var{file} au format Dot/Graphviz sur la sortie standard (@pxref{Service Composition}, pour plus d'informations sur l'extension des services)." #. type: table #: doc/guix.texi:22649 msgid "The command:" -msgstr "" +msgstr "La commande :" #. type: example #: doc/guix.texi:22652 #, no-wrap msgid "$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf\n" -msgstr "" +msgstr "$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf\n" #. type: table #: doc/guix.texi:22655 msgid "produces a PDF file showing the extension relations among services." -msgstr "" +msgstr "produit un fichier PDF montrant les relations d'extension entre les services." #. type: anchor{#1} #: doc/guix.texi:22657 msgid "system-shepherd-graph" -msgstr "" +msgstr "system-shepherd-graph" #. type: item #: doc/guix.texi:22657 #, no-wrap msgid "shepherd-graph" -msgstr "" +msgstr "shepherd-graph" #. type: table #: doc/guix.texi:22662 msgid "Emit in Dot/Graphviz format to standard output the @dfn{dependency graph} of shepherd services of the operating system defined in @var{file}. @xref{Shepherd Services}, for more information and for an example graph." -msgstr "" +msgstr "Affiche le @dfn{graphe de dépendance} des services shepherd du système d'exploitation défini dans @var{file} au format Dot/Graphviz sur la sortie standard. @xref{Shepherd Services}, pour plus d'informations et un exemple de graphe." #. type: subsection #: doc/guix.texi:22666 #, no-wrap msgid "Running GuixSD in a Virtual Machine" -msgstr "" +msgstr "Exécuter GuixSD sur une machine virtuelle" #. type: Plain text #: doc/guix.texi:22676 msgid "To run GuixSD in a virtual machine (VM), one can either use the pre-built GuixSD VM image distributed at @indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.@var{system}.xz} , or build their own virtual machine image using @command{guix system vm-image} (@pxref{Invoking guix system}). The returned image is in qcow2 format, which the @uref{http://qemu.org/, QEMU emulator} can efficiently use." -msgstr "" +msgstr "Pour exécuter GuixSD sur une machine virtuelle (VM), on peut soit utiliser l'image de VM GuixSD pré-construite sur @indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.xz} ou construire sa propre image de machine virtuelle avec @command{guix system vm-image} (@pxref{Invoking guix system}). L'image renvoyée est au format qcow2, que l'@uref{http://qemu.org/,émulateur QEMU} peut utiliser efficacement." #. type: cindex #: doc/guix.texi:22677 #, no-wrap msgid "QEMU" -msgstr "" +msgstr "QEMU" #. type: Plain text #: doc/guix.texi:22684 msgid "If you built your own image, you must copy it out of the store (@pxref{The Store}) and give yourself permission to write to the copy before you can use it. When invoking QEMU, you must choose a system emulator that is suitable for your hardware platform. Here is a minimal QEMU invocation that will boot the result of @command{guix system vm-image} on x86_64 hardware:" -msgstr "" +msgstr "Si vous construisez votre propre image, vous devez la copier en dehors du dépôt (@pxref{The Store}) et vous donner la permission d'écrire sur la copie avant de pouvoir l'utiliser. Lorsque vous invoquez QEMU, vous devez choisir un émulateur système correspondant à votre plate-forme matérielle. Voici une invocation minimale de QEMU qui démarrera le résultat de @command{guix system vm-image} sur un matériel x8_64." #. type: example #: doc/guix.texi:22689 @@ -41413,131 +41500,134 @@ msgid "" " -net user -net nic,model=virtio \\\n" " -enable-kvm -m 256 /tmp/qemu-image\n" msgstr "" +"$ qemu-system-x86_64 \\\n" +" -net user -net nic,model=virtio \\\n" +" -enable-kvm -m 256 /tmp/qemu-image\n" #. type: Plain text #: doc/guix.texi:22692 msgid "Here is what each of these options means:" -msgstr "" +msgstr "Voici la signification de ces options :" #. type: item #: doc/guix.texi:22694 #, no-wrap msgid "qemu-system-x86_64" -msgstr "" +msgstr "qemu-system-x86_64" #. type: table #: doc/guix.texi:22697 msgid "This specifies the hardware platform to emulate. This should match the host." -msgstr "" +msgstr "Cela spécifie la plate-forme matérielle à émuler. Elle doit correspondre à l'hôte." #. type: item #: doc/guix.texi:22698 #, no-wrap msgid "-net user" -msgstr "" +msgstr "-net user" #. type: table #: doc/guix.texi:22702 msgid "Enable the unprivileged user-mode network stack. The guest OS can access the host but not vice versa. This is the simplest way to get the guest OS online." -msgstr "" +msgstr "Active la pile réseau non privilégiée en mode utilisateur. L'OS émulé peut accéder à l'hôte mais pas l'inverse. C'est la manière la plus simple de connecter le client." #. type: item #: doc/guix.texi:22703 #, no-wrap msgid "-net nic,model=virtio" -msgstr "" +msgstr "-net nic,model=virtio" #. type: table #: doc/guix.texi:22708 msgid "You must create a network interface of a given model. If you do not create a NIC, the boot will fail. Assuming your hardware platform is x86_64, you can get a list of available NIC models by running @command{qemu-system-x86_64 -net nic,model=help}." -msgstr "" +msgstr "Vous devez créer une interface réseau d'un modèle donné. Si vous ne créez pas de NIC, le démarrage échouera. En supposant que votre plate-forme est x86_64, vous pouvez récupérer une liste des modèles de NIC disponibles en lançant @command{qemu-system-x86_64 -net nic,model=help}." #. type: item #: doc/guix.texi:22709 #, no-wrap msgid "-enable-kvm" -msgstr "" +msgstr "-enable-kvm" #. type: table #: doc/guix.texi:22713 msgid "If your system has hardware virtualization extensions, enabling the virtual machine support (KVM) of the Linux kernel will make things run faster." -msgstr "" +msgstr "Si votre système a des extensions de virtualisation matérielle, activer le support des machines virtuelles de Linux (KVM) accélérera les choses." #. type: item #: doc/guix.texi:22714 #, no-wrap msgid "-m 256" -msgstr "" +msgstr "-m 256" #. type: table #: doc/guix.texi:22717 msgid "RAM available to the guest OS, in mebibytes. Defaults to 128@tie{}MiB, which may be insufficient for some operations." -msgstr "" +msgstr "RAM disponible sur l'OS émulé, en mébioctets. La valeur par défaut est 128@tie{}Mo, ce qui peut ne pas suffire pour certaines opérations." #. type: item #: doc/guix.texi:22718 #, no-wrap msgid "/tmp/qemu-image" -msgstr "" +msgstr "/tmp/qemu-image" #. type: table #: doc/guix.texi:22720 msgid "The file name of the qcow2 image." -msgstr "" +msgstr "Le nom de fichier de l'image qcow2." #. type: Plain text #: doc/guix.texi:22730 msgid "The default @command{run-vm.sh} script that is returned by an invocation of @command{guix system vm} does not add a @command{-net user} flag by default. To get network access from within the vm add the @code{(dhcp-client-service)} to your system definition and start the VM using @command{`guix system vm config.scm` -net user}. An important caveat of using @command{-net user} for networking is that @command{ping} will not work, because it uses the ICMP protocol. You'll have to use a different command to check for network connectivity, for example @command{guix download}." -msgstr "" +msgstr "Le script @command{run-vm.sh} par défaut renvoyé par une invocation de @command{guix system vm} n'ajoute pas le drapeau @command{-net user} par défaut. Pour avoir accès au réseau dans la vm, ajoutez le @code{(dhcp-client-service)} à votre définition et démarrez la VM avec @command{`guix system vm config.scm` -net user}. Un problème important avec @command{-net user} pour le réseau, est que @command{ping} ne fonctionnera pas, car il utilise le protocole ICMP. Vous devrez utiliser une autre commande pour vérifier la connectivité réseau, par exemple @command{guix download}." #. type: subsubsection #: doc/guix.texi:22731 #, no-wrap msgid "Connecting Through SSH" -msgstr "" +msgstr "Se connecter par SSH" #. type: Plain text #: doc/guix.texi:22740 msgid "To enable SSH inside a VM you need to add a SSH server like @code{(dropbear-service)} or @code{(lsh-service)} to your VM. The @code{(lsh-service}) doesn't currently boot unsupervised. It requires you to type some characters to initialize the randomness generator. In addition you need to forward the SSH port, 22 by default, to the host. You can do this with" -msgstr "" +msgstr "Pour activer SSH dans une VM vous devez ajouter un serveur SSH comme @code{(dropbear-service)} ou @code{(lsh-service)} à votre VM. Le service @code{(lsh-service)} ne peut actuellement pas démarrer sans supervision. Il a besoin que vous tapiez quelques caractères pour initialiser le générateur d'aléatoire. En plus vous devez transférer le port 22, par défaut, à l'hôte. Vous pouvez faire cela avec :" #. type: example #: doc/guix.texi:22743 #, no-wrap msgid "`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22\n" -msgstr "" +msgstr "`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22\n" #. type: Plain text #: doc/guix.texi:22746 msgid "To connect to the VM you can run" -msgstr "" +msgstr "Pour vous connecter à la VM vous pouvez lancer" #. type: example #: doc/guix.texi:22749 #, no-wrap msgid "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n" -msgstr "" +msgstr "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n" #. type: Plain text #: doc/guix.texi:22756 msgid "The @command{-p} tells @command{ssh} the port you want to connect to. @command{-o UserKnownHostsFile=/dev/null} prevents @command{ssh} from complaining every time you modify your @command{config.scm} file and the @command{-o StrictHostKeyChecking=no} prevents you from having to allow a connection to an unknown host every time you connect." -msgstr "" +msgstr "Le @command{-p} donne le port auquel vous voulez vous connecter à @command{ssh}, @command{-o UserKnownHostsFile=/dev/null} évite que @command{ssh} ne se plaigne à chaque fois que vous modifiez le fichier @command{config.scm} et @command{-o StrictHostKeyChecking=no} évite que vous n'ayez à autoriser une connexion à un hôte inconnu à chaque fois que vous vous connectez." #. type: subsubsection #: doc/guix.texi:22757 #, no-wrap msgid "Using @command{virt-viewer} with Spice" -msgstr "" +msgstr "Utiliser @command{virt-viewer} avec Spice" #. type: Plain text #: doc/guix.texi:22763 msgid "As an alternative to the default @command{qemu} graphical client you can use the @command{remote-viewer} from the @command{virt-viewer} package. To connect pass the @command{-spice port=5930,disable-ticketing} flag to @command{qemu}. See previous section for further information on how to do this." -msgstr "" +msgstr "Alternativement au client graphique @command{qemu} par défaut vous pouvez utiliser @command{remote-viewer} du paquet @command{virt-viewer}. Pour vous connecter, passez le drapeau @command{-spice port=5930,disable-ticketing} à @command{qemu}. Voir les sections précédentes pour plus d'informations sur comment faire cela." #. type: Plain text #: doc/guix.texi:22766 msgid "Spice also allows you to do some nice stuff like share your clipboard with your VM. To enable that you'll also have to pass the following flags to @command{qemu}:" -msgstr "" +msgstr "Spice a aussi de chouettes fonctionnalités comme le partage de votre presse-papier avec la VM. Pour activer cela vous devrez aussi passer les drapeaux suivants à @command{qemu} :" #. type: example #: doc/guix.texi:22772 @@ -41548,80 +41638,84 @@ msgid "" "-device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,\n" "name=com.redhat.spice.0\n" msgstr "" +"-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n" +"-chardev spicevmc,name=vdagent,id=vdagent\n" +"-device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,\n" +"name=com.redhat.spice.0\n" #. type: Plain text #: doc/guix.texi:22775 msgid "You'll also need to add the @pxref{Miscellaneous Services, Spice service}." -msgstr "" +msgstr "Vous devrez aussi ajouter le @pxref{Miscellaneous Services, Spice service}." #. type: Plain text #: doc/guix.texi:22782 msgid "The previous sections show the available services and how one can combine them in an @code{operating-system} declaration. But how do we define them in the first place? And what is a service anyway?" -msgstr "" +msgstr "Les sections précédentes montrent les services disponibles et comment on peut les combiner dans une déclaration @code{operating-system}. Mais, déjà, comment les définir ? Et qu'est-ce qu'un service au fait ?" #. type: cindex #: doc/guix.texi:22794 #, no-wrap msgid "daemons" -msgstr "" +msgstr "démons" #. type: Plain text #: doc/guix.texi:22807 msgid "Here we define a @dfn{service} as, broadly, something that extends the functionality of the operating system. Often a service is a process---a @dfn{daemon}---started when the system boots: a secure shell server, a Web server, the Guix build daemon, etc. Sometimes a service is a daemon whose execution can be triggered by another daemon---e.g., an FTP server started by @command{inetd} or a D-Bus service activated by @command{dbus-daemon}. Occasionally, a service does not map to a daemon. For instance, the ``account'' service collects user accounts and makes sure they exist when the system runs; the ``udev'' service collects device management rules and makes them available to the eudev daemon; the @file{/etc} service populates the @file{/etc} directory of the system." -msgstr "" +msgstr "Ici nous définissons un @dfn{service} comme étant, assez largement, quelque chose qui étend la fonctionnalité d'un système d'exploitation. Souvent un service est un processus — un @dfn{démon} — démarré lorsque le système démarre : un serveur ssh, un serveur web, le démon de construction de Guix, etc. Parfois un service est un démon dont l'exécution peut être déclenchée par un autre démon — p.@: ex.@: un serveur FTP démarré par @command{inetd} ou un service D-Bus activé par @command{dbus-daemon}. Parfois, un service ne correspond pas à un démon. Par exemple, le service « de comptes » récupère la liste des comptes utilisateurs et s'assure qu'ils existent bien lorsque le système est lancé ; le service « udev » récupère les règles de gestion des périphériques et les rend disponible au démon eudev ; le service @file{/etc} rempli le répertoire @file{/etc} du système." #. type: cindex #: doc/guix.texi:22808 #, no-wrap msgid "service extensions" -msgstr "" +msgstr "extensions de service" #. type: Plain text #: doc/guix.texi:22820 msgid "GuixSD services are connected by @dfn{extensions}. For instance, the secure shell service @emph{extends} the Shepherd---the GuixSD initialization system, running as PID@tie{}1---by giving it the command lines to start and stop the secure shell daemon (@pxref{Networking Services, @code{lsh-service}}); the UPower service extends the D-Bus service by passing it its @file{.service} specification, and extends the udev service by passing it device management rules (@pxref{Desktop Services, @code{upower-service}}); the Guix daemon service extends the Shepherd by passing it the command lines to start and stop the daemon, and extends the account service by passing it a list of required build user accounts (@pxref{Base Services})." -msgstr "" +msgstr "Les services de GuixSD sont connectés par des @dfn{extensions}. Par exemple, le service ssh @dfn{étend} le Shepherd — le système d'initialisation de GuixSD, qui tourne en tant que PID@tie{}1 — en lui donnant les lignes de commande pour démarrer et arrêter le démon ssh (@pxref{Networking Services, @code{lsh-service}}) ; le service UPower étend le service D-Bus en lui passant sa spécification @file{.service} et étend le service udev en lui passant des règles de gestion de périphériques (@pxref{Desktop Services, @code{upower-service}}) ; le démon Guix étend le Shepherd en lui passant les lignes de commande pour démarrer et arrêter le démon et étend le service de comptes en lui passant une liste des comptes utilisateurs de constructions requis (@pxref{Base Services})." #. type: Plain text #: doc/guix.texi:22824 msgid "All in all, services and their ``extends'' relations form a directed acyclic graph (DAG). If we represent services as boxes and extensions as arrows, a typical system might provide something like this:" -msgstr "" +msgstr "En définitive, les services et leurs relation « d'extensions » forment un graphe orienté acyclique (DAG). Si nous représentons les services comme des boîtes et les extensions comme des flèches, un système typique pourrait fournir quelque chose comme cela :" #. type: Plain text #: doc/guix.texi:22826 msgid "@image{images/service-graph,,5in,Typical service extension graph.}" -msgstr "" +msgstr "@image{images/service-graph,,5in,Graphe d'extension des services typique.}" #. type: cindex #: doc/guix.texi:22827 #, no-wrap msgid "system service" -msgstr "" +msgstr "service système" #. type: Plain text #: doc/guix.texi:22835 msgid "At the bottom, we see the @dfn{system service}, which produces the directory containing everything to run and boot the system, as returned by the @command{guix system build} command. @xref{Service Reference}, to learn about the other service types shown here. @xref{system-extension-graph, the @command{guix system extension-graph} command}, for information on how to generate this representation for a particular operating system definition." -msgstr "" +msgstr "En bas, on voit le @dfn{service système} qui produit le répertoire contenant tout et lançant et démarrant le système, renvoyé par la commande @command{guix system build}. @xref{Service Reference}, pour apprendre les autres types de services montrés ici. @xref{system-extension-graph, the @command{guix system extension-graph} command}, pour plus d'informations sur la manière de générer cette représentation pour une définition de système d'exploitation particulière." #. type: cindex #: doc/guix.texi:22836 #, no-wrap msgid "service types" -msgstr "" +msgstr "types de services" #. type: Plain text #: doc/guix.texi:22842 msgid "Technically, developers can define @dfn{service types} to express these relations. There can be any number of services of a given type on the system---for instance, a system running two instances of the GNU secure shell server (lsh) has two instances of @var{lsh-service-type}, with different parameters." -msgstr "" +msgstr "Techniquement, les développeurs peuvent définir des @dfn{types de services} pour exprimer ces relations. Il peut y avoir n'importe quel quantité de services d'un type donné sur le système — par exemple, un système sur lequel tournent deux instances du serveur ssh de GNU (lsh) a deux instance de @var{lsh-service-type}, avec des paramètres différents." #. type: Plain text #: doc/guix.texi:22845 msgid "The following section describes the programming interface for service types and services." -msgstr "" +msgstr "La section suivante décrit l'interface de programmation des types de services et des services." #. type: Plain text #: doc/guix.texi:22852 msgid "A @dfn{service type} is a node in the DAG described above. Let us start with a simple example, the service type for the Guix build daemon (@pxref{Invoking guix-daemon}):" -msgstr "" +msgstr "Un @dfn{type de service} est un nœud dans le DAG décrit plus haut. Commençons avec un exemple simple, le type de service pour le démon de construction de Guix (@pxref{Invoking guix-daemon}) :" #. type: example #: doc/guix.texi:22862 @@ -41636,74 +41730,82 @@ msgid "" " (service-extension activation-service-type guix-activation)))\n" " (default-value (guix-configuration))))\n" msgstr "" +"(define guix-service-type\n" +" (service-type\n" +" (name 'guix)\n" +" (extensions\n" +" (list (service-extension shepherd-root-service-type guix-shepherd-service)\n" +" (service-extension account-service-type guix-accounts)\n" +" (service-extension activation-service-type guix-activation)))\n" +" (default-value (guix-configuration))))\n" #. type: Plain text #: doc/guix.texi:22866 msgid "It defines three things:" -msgstr "" +msgstr "Il définit trois choses :" #. type: enumerate #: doc/guix.texi:22870 msgid "A name, whose sole purpose is to make inspection and debugging easier." -msgstr "" +msgstr "Un nom, dont le seul but de rendre l'inspection et le débogage plus faciles." #. type: enumerate #: doc/guix.texi:22875 msgid "A list of @dfn{service extensions}, where each extension designates the target service type and a procedure that, given the parameters of the service, returns a list of objects to extend the service of that type." -msgstr "" +msgstr "Une liste d'@dfn{extensions de services}, où chaque extension désigne le type de service cible et une procédure qui, étant donné les paramètres du service, renvoie une liste d'objets pour étendre le service de ce type." #. type: enumerate #: doc/guix.texi:22878 msgid "Every service type has at least one service extension. The only exception is the @dfn{boot service type}, which is the ultimate service." -msgstr "" +msgstr "Chaque type de service a au moins une extension de service. La seule exception est le @dfn{type de service boot}, qui est le service ultime." #. type: enumerate #: doc/guix.texi:22881 msgid "Optionally, a default value for instances of this type." -msgstr "" +msgstr "Éventuellement, une valeur par défaut pour les instances de ce type." #. type: Plain text #: doc/guix.texi:22884 msgid "In this example, @var{guix-service-type} extends three services:" -msgstr "" +msgstr "Dans cet exemple, @var{guix-service-type} étend trois services :" #. type: item #: doc/guix.texi:22886 #, no-wrap msgid "shepherd-root-service-type" -msgstr "" +msgstr "shepherd-root-service-type" #. type: table #: doc/guix.texi:22891 msgid "The @var{guix-shepherd-service} procedure defines how the Shepherd service is extended. Namely, it returns a @code{} object that defines how @command{guix-daemon} is started and stopped (@pxref{Shepherd Services})." -msgstr "" +msgstr "La procédure @var{guix-shepherd-service} définit comment le service du Shepherd est étendu. En fait, elle renvoie un objet @code{} qui définit comment @command{guix-daemon} est démarré et stoppé (@pxref{Shepherd Services})." #. type: item #: doc/guix.texi:22892 #, no-wrap msgid "account-service-type" -msgstr "" +msgstr "account-service-type" #. type: table #: doc/guix.texi:22897 msgid "This extension for this service is computed by @var{guix-accounts}, which returns a list of @code{user-group} and @code{user-account} objects representing the build user accounts (@pxref{Invoking guix-daemon})." -msgstr "" +msgstr "Cette extension pour ce service est calculée par @var{guix-accounts}, qui renvoie une liste d'objets @code{user-group} et @code{user-account} représentant les comptes des utilisateurs de construction (@pxref{Invoking guix-daemon})." #. type: item #: doc/guix.texi:22898 #, no-wrap msgid "activation-service-type" -msgstr "" +msgstr "activation-service-type" #. type: table #: doc/guix.texi:22902 msgid "Here @var{guix-activation} is a procedure that returns a gexp, which is a code snippet to run at ``activation time''---e.g., when the service is booted." -msgstr "" +msgstr "Ici, @var{guix-activation} est une procédure qui renvoie une gexp, qui est un bout de code qui s'exécute au moment de l'activation — p.@: ex.@: lorsque le service est démarré." #. type: Plain text #: doc/guix.texi:22905 msgid "A service of this type is instantiated like this:" -msgstr "" +msgstr "Un service de ce type est instancié de cette manière :" #. type: example #: doc/guix.texi:22911 @@ -41714,27 +41816,31 @@ msgid "" " (build-accounts 5)\n" " (use-substitutes? #f)))\n" msgstr "" +"(service guix-service-type\n" +" (guix-configuration\n" +" (build-accounts 5)\n" +" (use-substitutes? #f)))\n" #. type: Plain text #: doc/guix.texi:22919 msgid "The second argument to the @code{service} form is a value representing the parameters of this specific service instance. @xref{guix-configuration-type, @code{guix-configuration}}, for information about the @code{guix-configuration} data type. When the value is omitted, the default value specified by @code{guix-service-type} is used:" -msgstr "" +msgstr "Le deuxième argument de la forme @code{service} est une valeur représentant les paramètres de cet instance spécifique du service. @xref{guix-configuration-type, @code{guix-configuration}}, pour plus d'informations sur le type de données @code{guix-configuration}. Lorsque la valeur est omise, la valeur par défaut spécifiée par @code{guix-service-type} est utilisée :" #. type: example #: doc/guix.texi:22922 #, no-wrap msgid "(service guix-service-type)\n" -msgstr "" +msgstr "(service guix-service-type)\n" #. type: Plain text #: doc/guix.texi:22926 msgid "@var{guix-service-type} is quite simple because it extends other services but is not extensible itself." -msgstr "" +msgstr "@var{guix-service-type} est très simple car il étend d'autres services mais ne peut pas être étendu." #. type: Plain text #: doc/guix.texi:22930 msgid "The service type for an @emph{extensible} service looks like this:" -msgstr "" +msgstr "Le type de service pour un service @emph{extensible} ressemble à ceci :" #. type: example #: doc/guix.texi:22937 @@ -41747,6 +41853,12 @@ msgid "" " udev-shepherd-service)))\n" "\n" msgstr "" +"(define udev-service-type\n" +" (service-type (name 'udev)\n" +" (extensions\n" +" (list (service-extension shepherd-root-service-type\n" +" udev-shepherd-service)))\n" +"\n" #. type: example #: doc/guix.texi:22945 @@ -41760,63 +41872,70 @@ msgid "" " (udev udev) ;the udev package to use\n" " (rules (append initial-rules rules)))))))))\n" msgstr "" +" (compose concatenate) ; concatène la liste des règles\n" +" (extend (lambda (config rules)\n" +" (match config\n" +" (($ udev initial-rules)\n" +" (udev-configuration\n" +" (udev udev) ; le paquet udev à utiliser\n" +" (rules (append initial-rules rules)))))))))\n" #. type: Plain text #: doc/guix.texi:22951 msgid "This is the service type for the @uref{https://wiki.gentoo.org/wiki/Project:Eudev, eudev device management daemon}. Compared to the previous example, in addition to an extension of @var{shepherd-root-service-type}, we see two new fields:" -msgstr "" +msgstr "C'est le type de service pour le @uref{https://wiki.gentoo.org/wiki/Project:Eudev, le démon de gestion des périphériques eudev}. Comparé à l'exemple précédent, en plus d'une extension de @var{shepherd-root-service-type}, on trouve deux nouveaux champs :" #. type: item #: doc/guix.texi:22953 #, no-wrap msgid "compose" -msgstr "" +msgstr "compose" #. type: table #: doc/guix.texi:22956 msgid "This is the procedure to @dfn{compose} the list of extensions to services of this type." -msgstr "" +msgstr "C'est la procédure pour @dfn{composer} la liste des extensions de services de ce type." #. type: table #: doc/guix.texi:22959 msgid "Services can extend the udev service by passing it lists of rules; we compose those extensions simply by concatenating them." -msgstr "" +msgstr "Les services peuvent étendre le service udev en lui passant des listes de règles ; on compose ces extensions simplement en les concaténant." #. type: item #: doc/guix.texi:22960 #, no-wrap msgid "extend" -msgstr "" +msgstr "extend" #. type: table #: doc/guix.texi:22963 msgid "This procedure defines how the value of the service is @dfn{extended} with the composition of the extensions." -msgstr "" +msgstr "Cette procédure définie comme la valeur du service est @dfn{étendue} avec la composition des extensions." #. type: table #: doc/guix.texi:22968 msgid "Udev extensions are composed into a list of rules, but the udev service value is itself a @code{} record. So here, we extend that record by appending the list of rules it contains to the list of contributed rules." -msgstr "" +msgstr "Les extensions Udev sont composés en une liste de règles, mais la valeur du service udev est elle-même un enregistrement @code{}. Donc ici, nous étendons cet enregistrement en ajoutant la liste des règle contribuées à la liste des règles qu'il contient déjà." #. type: table #: doc/guix.texi:22974 msgid "This is a string giving an overview of the service type. The string can contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}). The @command{guix system search} command searches these strings and displays them (@pxref{Invoking guix system})." -msgstr "" +msgstr "C'est une chaîne donnant un aperçu du type de service. Elle peut contenir du balisage Texinfo (@pxref{Overview,,, texinfo, GNU Texinfo}). La commande @command{guix system search} permet de rechercher dans ces chaînes et de les afficher (@pxref{Invoking guix system})." #. type: Plain text #: doc/guix.texi:22979 msgid "There can be only one instance of an extensible service type such as @var{udev-service-type}. If there were more, the @code{service-extension} specifications would be ambiguous." -msgstr "" +msgstr "Il ne peut y avoir qu'une instance d'un type de service extensible comme @var{udev-service-type}. S'il y en avait plus, les spécification @code{service-extension} seraient ambiguës." #. type: Plain text #: doc/guix.texi:22982 msgid "Still here? The next section provides a reference of the programming interface for services." -msgstr "" +msgstr "Toujours ici ? La section suivante fournit une référence de l'interface de programmation des services." #. type: Plain text #: doc/guix.texi:22990 msgid "We have seen an overview of service types (@pxref{Service Types and Services}). This section provides a reference on how to manipulate services and service types. This interface is provided by the @code{(gnu services)} module." -msgstr "" +msgstr "Nous avons vu un résumé des types de services (@pxref{Service Types and Services}). Cette section fournit une référence sur la manière de manipuler les services et les types de services. Cette interface est fournie par le module @code{(gnu services)}." #. type: deffn #: doc/guix.texi:22991 @@ -41827,28 +41946,28 @@ msgstr "{Procédure Scheme} service @var{type} [@var{value}]" #. type: deffn #: doc/guix.texi:22995 msgid "Return a new service of @var{type}, a @code{} object (see below.) @var{value} can be any object; it represents the parameters of this particular service instance." -msgstr "" +msgstr "Renvoie un nouveau service de type @var{type}, un objet @code{} (voir plus bas). @var{value}peut être n'importe quel objet ; il représente les paramètres de cette instance particulière du service." #. type: deffn #: doc/guix.texi:22999 msgid "When @var{value} is omitted, the default value specified by @var{type} is used; if @var{type} does not specify a default value, an error is raised." -msgstr "" +msgstr "Lorsque @var{value} est omise, la valeur par défaut spécifiée par @var{type} est utilisée ; si @var{type} ne spécifie pas de valeur par défaut, une erreur est levée." #. type: deffn #: doc/guix.texi:23001 msgid "For instance, this:" -msgstr "" +msgstr "Par exemple ceci :" #. type: example #: doc/guix.texi:23004 #, no-wrap msgid "(service openssh-service-type)\n" -msgstr "" +msgstr "(service openssh-service-type)\n" #. type: deffn #: doc/guix.texi:23008 msgid "is equivalent to this:" -msgstr "" +msgstr "est équivalent à ceci :" #. type: example #: doc/guix.texi:23012 @@ -41857,11 +41976,13 @@ msgid "" "(service openssh-service-type\n" " (openssh-configuration))\n" msgstr "" +"(service openssh-service-type\n" +" (openssh-configuration))\n" #. type: deffn #: doc/guix.texi:23016 msgid "In both cases the result is an instance of @code{openssh-service-type} with the default configuration." -msgstr "" +msgstr "Dans les deux cas le résultat est une instance de @code{openssh-service-type} avec la configuration par défaut." #. type: deffn #: doc/guix.texi:23018 @@ -41872,7 +41993,7 @@ msgstr "{Procédure Scheme} service? @var{obj}" #. type: deffn #: doc/guix.texi:23020 msgid "Return true if @var{obj} is a service." -msgstr "" +msgstr "Renvoie vrai si @var{obj} est un service." #. type: deffn #: doc/guix.texi:23022 @@ -41883,7 +42004,7 @@ msgstr "{Procédure Scheme} service-kind @var{service}" #. type: deffn #: doc/guix.texi:23024 msgid "Return the type of @var{service}---i.e., a @code{} object." -msgstr "" +msgstr "Renvoie le type de @var{service} — c.-à-d.@: un objet @code{}." #. type: deffn #: doc/guix.texi:23026 @@ -41894,12 +42015,12 @@ msgstr "{Procédure Scheme} service-value @var{service}" #. type: deffn #: doc/guix.texi:23029 msgid "Return the value associated with @var{service}. It represents its parameters." -msgstr "" +msgstr "Renvoie la valeur associée à @var{service}. Elle représente ses paramètres." #. type: Plain text #: doc/guix.texi:23032 msgid "Here is an example of how a service is created and manipulated:" -msgstr "" +msgstr "Voici un exemple de la manière dont un service est créé et manipulé :" #. type: example #: doc/guix.texi:23041 @@ -41948,49 +42069,49 @@ msgstr "" #. type: Plain text #: doc/guix.texi:23057 msgid "The @code{modify-services} form provides a handy way to change the parameters of some of the services of a list such as @var{%base-services} (@pxref{Base Services, @code{%base-services}}). It evaluates to a list of services. Of course, you could always use standard list combinators such as @code{map} and @code{fold} to do that (@pxref{SRFI-1, List Library,, guile, GNU Guile Reference Manual}); @code{modify-services} simply provides a more concise form for this common pattern." -msgstr "" +msgstr "La forme @code{modify-services} fournit une manière pratique de modifier les paramètres de certains services d'une liste comme @var{%base-services} (@pxref{Base Services, @code{%base-services}}). Elle s'évalue en une liste de services. Bien sûr, vous pouvez toujours utiliser les combinateurs de liste standards comme @code{map} et @code{fold} pour cela (@pxref{SRFI-1, List Library,, guile, GNU Guile Reference Manual}) ; @code{modify-services} fournit simplement une manière plus concise pour ce besoin commun." #. type: deffn #: doc/guix.texi:23058 #, no-wrap msgid "{Scheme Syntax} modify-services @var{services} @" -msgstr "" +msgstr "{Syntaxe Scheme} modify-services @var{services} @" #. type: deffn #: doc/guix.texi:23060 msgid "(@var{type} @var{variable} => @var{body}) @dots{}" -msgstr "" +msgstr "(@var{type} @var{variable} => @var{body}) @dots{}" #. type: deffn #: doc/guix.texi:23063 msgid "Modify the services listed in @var{services} according to the given clauses. Each clause has the form:" -msgstr "" +msgstr "Modifie les services listés dans @var{services} en fonction des clauses données. Chaque clause à la forme :" #. type: example #: doc/guix.texi:23066 #, no-wrap msgid "(@var{type} @var{variable} => @var{body})\n" -msgstr "" +msgstr "(@var{type} @var{variable} => @var{body})\n" #. type: deffn #: doc/guix.texi:23073 msgid "where @var{type} is a service type---e.g., @code{guix-service-type}---and @var{variable} is an identifier that is bound within the @var{body} to the service parameters---e.g., a @code{guix-configuration} instance---of the original service of that @var{type}." -msgstr "" +msgstr "où @var{type} est un type de service — p.@: ex.@: @code{guix-service-type} — et @var{variable} est un identifiant lié dans @var{body} aux paramètres du service — p.@: ex.@: une instance de @code{guix-configuration} — du service original de ce @var{type}." #. type: deffn #: doc/guix.texi:23080 msgid "The @var{body} should evaluate to the new service parameters, which will be used to configure the new service. This new service will replace the original in the resulting list. Because a service's service parameters are created using @code{define-record-type*}, you can write a succinct @var{body} that evaluates to the new service parameters by using the @code{inherit} feature that @code{define-record-type*} provides." -msgstr "" +msgstr "La variable @var{body} devrait s'évaluer en de nouveaux paramètres de service, qui seront utilisés pour configurer le nouveau service. Ce nouveau service remplacera l'original dans la liste qui en résulte. Comme les paramètres d'un service sont créés avec @code{define-record-type*}, vous pouvez écrire un @var{body} court qui s'évalue en de nouveaux paramètres pour le services en utilisant @code{inherit}, fourni par @code{define-record-type*}." #. type: deffn #: doc/guix.texi:23082 msgid "@xref{Using the Configuration System}, for example usage." -msgstr "" +msgstr "@xref{Using the Configuration System} pour des exemples d'utilisation." #. type: Plain text #: doc/guix.texi:23089 msgid "Next comes the programming interface for service types. This is something you want to know when writing new service definitions, but not necessarily when simply looking for ways to customize your @code{operating-system} declaration." -msgstr "" +msgstr "Suit l'interface de programmation des types de services. Vous devrez la connaître pour écrire de nouvelles définitions de services, mais pas forcément lorsque vous cherchez des manières simples de personnaliser votre déclaration @code{operating-system}." #. type: deftp #: doc/guix.texi:23090 @@ -42007,12 +42128,12 @@ msgstr "type de service" #. type: deftp #: doc/guix.texi:23094 msgid "This is the representation of a @dfn{service type} (@pxref{Service Types and Services})." -msgstr "" +msgstr "C'est la représentation d'un @dfn{type de service} (@pxref{Service Types and Services})." #. type: table #: doc/guix.texi:23098 msgid "This is a symbol, used only to simplify inspection and debugging." -msgstr "" +msgstr "C'est un symbole, utilisé seulement pour simplifier l'inspection et le débogage." #. type: code{#1} #: doc/guix.texi:23099 @@ -42023,7 +42144,7 @@ msgstr "extensions" #. type: table #: doc/guix.texi:23101 msgid "A non-empty list of @code{} objects (see below)." -msgstr "" +msgstr "Une liste non-vide d'objets @code{} (voir plus bas)." #. type: item #: doc/guix.texi:23102 @@ -42034,12 +42155,12 @@ msgstr "@code{compose} (par défaut : @code{#f})" #. type: table #: doc/guix.texi:23106 msgid "If this is @code{#f}, then the service type denotes services that cannot be extended---i.e., services that do not receive ``values'' from other services." -msgstr "" +msgstr "S'il s'agit de @code{#f}, le type de service dénote des services qui ne peuvent pas être étendus — c.-à-d.@: qui ne reçoivent pas de « valeurs » d'autres services." #. type: table #: doc/guix.texi:23110 msgid "Otherwise, it must be a one-argument procedure. The procedure is called by @code{fold-services} and is passed a list of values collected from extensions. It may return any single value." -msgstr "" +msgstr "Sinon, ce doit être une procédure à un argument. La procédure est appelée par @code{fold-services} et on lui passe une liste de valeurs collectées par les extensions. Elle peut renvoyer n'importe quelle valeur simple." #. type: item #: doc/guix.texi:23111 @@ -42050,17 +42171,17 @@ msgstr "@code{extend} (par défaut : @code{#f})" #. type: table #: doc/guix.texi:23113 msgid "If this is @code{#f}, services of this type cannot be extended." -msgstr "" +msgstr "Si la valeur est @code{#f}, les services de ce type ne peuvent pas être étendus." #. type: table #: doc/guix.texi:23119 msgid "Otherwise, it must be a two-argument procedure: @code{fold-services} calls it, passing it the initial value of the service as the first argument and the result of applying @code{compose} to the extension values as the second argument. It must return a value that is a valid parameter value for the service instance." -msgstr "" +msgstr "Sinon, il doit s'agir 'une procédure à deux arguments : @code{fold-services} l'appelle et lui passe la valeur initiale du service comme premier argument et le résultat de l'application de @code{compose} sur les valeurs d'extension en second argument. Elle doit renvoyer une valeur qui est une valeur de paramètre valide pour l'instance du service." #. type: deftp #: doc/guix.texi:23122 msgid "@xref{Service Types and Services}, for examples." -msgstr "" +msgstr "@xref{Service Types and Services}, pour des exemples." #. type: deffn #: doc/guix.texi:23124 @@ -42072,6 +42193,8 @@ msgstr "{Procédure Scheme} service-extension @var{target-type} @" #: doc/guix.texi:23130 msgid "@var{compute} Return a new extension for services of type @var{target-type}. @var{compute} must be a one-argument procedure: @code{fold-services} calls it, passing it the value associated with the service that provides the extension; it must return a valid value for the target service." msgstr "" +"@var{compute}\n" +"Renvoie une nouvelle extension pour les services de type @var{target-type}. @var{compute} doit être une procédure à un argument : @code{fold-services} l'appelle et lui passe la valeur associée au service qui fournit cette extension ; elle doit renvoyer une valeur valide pour le service cible." #. type: deffn #: doc/guix.texi:23132 @@ -42082,12 +42205,12 @@ msgstr "{Procédure Scheme} service-extension? @var{obj}" #. type: deffn #: doc/guix.texi:23134 msgid "Return true if @var{obj} is a service extension." -msgstr "" +msgstr "Renvoie vrai si @var{obj} est une extension de service." #. type: Plain text #: doc/guix.texi:23140 msgid "Occasionally, you might want to simply extend an existing service. This involves creating a new service type and specifying the extension of interest, which can be verbose; the @code{simple-service} procedure provides a shorthand for this." -msgstr "" +msgstr "Parfois, vous voudrez simplement étendre un service existant. Cela implique de créer un nouveau type de service et de spécifier l'extension qui vous intéresse, ce qui peut être assez verbeux ; la procédure @code{simple-service} fournit un raccourci pour ce cas." #. type: deffn #: doc/guix.texi:23141 @@ -42098,12 +42221,12 @@ msgstr "{Procédure Scheme} simple-service @var{name} @var{target} @var{value}" #. type: deffn #: doc/guix.texi:23145 msgid "Return a service that extends @var{target} with @var{value}. This works by creating a singleton service type @var{name}, of which the returned service is an instance." -msgstr "" +msgstr "Renvoie un service qui étend @var{target} avec @var{value}. Cela fonctionne en créant un type de service singleton @var{name}, dont le service renvoyé est une instance." #. type: deffn #: doc/guix.texi:23148 msgid "For example, this extends mcron (@pxref{Scheduled Job Execution}) with an additional job:" -msgstr "" +msgstr "Par exemple, cela étend mcron (@pxref{Scheduled Job Execution}) avec une tâche supplémentaire :" #. type: example #: doc/guix.texi:23152 @@ -42112,11 +42235,13 @@ msgid "" "(simple-service 'my-mcron-job mcron-service-type\n" " #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n" msgstr "" +"(simple-service 'my-mcron-job mcron-service-type\n" +" #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n" #. type: Plain text #: doc/guix.texi:23162 msgid "At the core of the service abstraction lies the @code{fold-services} procedure, which is responsible for ``compiling'' a list of services down to a single directory that contains everything needed to boot and run the system---the directory shown by the @command{guix system build} command (@pxref{Invoking guix system}). In essence, it propagates service extensions down the service graph, updating each node parameters on the way, until it reaches the root node." -msgstr "" +msgstr "Au cœur de l'abstraction des services se cache la procédure @code{fold-services}, responsable de la « compilation » d'une liste de services en un répertoire unique qui contient tout ce qui est nécessaire au démarrage et à l'exécution du système — le répertoire indiqué par la commande @command{guix system build} (@pxref{Invoking guix system}). En soit, elle propage les extensions des services le long du graphe des services, en mettant à jour chaque paramètre des nœuds sur son chemin, jusqu'à atteindre le nœud racine." #. type: deffn #: doc/guix.texi:23163 @@ -42128,11 +42253,13 @@ msgstr "{Procédure Scheme} fold-services @var{services} @" #: doc/guix.texi:23167 msgid "[#:target-type @var{system-service-type}] Fold @var{services} by propagating their extensions down to the root of type @var{target-type}; return the root service adjusted accordingly." msgstr "" +"[#:target-type @var{system-service-type}]\n" +"Replie @var{services} en propageant leurs extensions jusqu'à la racine de type @var{target-type} ; renvoie le service racine ajusté de cette manière." #. type: Plain text #: doc/guix.texi:23171 msgid "Lastly, the @code{(gnu services)} module also defines several essential service types, some of which are listed below." -msgstr "" +msgstr "Enfin, le module @code{(gnu services)} définie aussi divers types de services essentiels, dont certains sont listés ci-dessous." #. type: defvr #: doc/guix.texi:23172 @@ -42143,7 +42270,7 @@ msgstr "{Variable Scheme} system-service-type" #. type: defvr #: doc/guix.texi:23175 msgid "This is the root of the service graph. It produces the system directory as returned by the @command{guix system build} command." -msgstr "" +msgstr "C'est la racine du graphe des services. Il produit le répertoire du système renvoyé par la commande @command{guix system build}." #. type: defvr #: doc/guix.texi:23177 @@ -42154,7 +42281,7 @@ msgstr "{Variable Scheme} boot-service-type" #. type: defvr #: doc/guix.texi:23180 msgid "The type of the ``boot service'', which produces the @dfn{boot script}. The boot script is what the initial RAM disk runs when booting." -msgstr "" +msgstr "Le type du service « boot », qui produit le @dfn{script de démarrage}. Le script de démarrage est ce que le disque de RAM initial lance au démarrage." #. type: defvr #: doc/guix.texi:23182 @@ -42165,18 +42292,18 @@ msgstr "{Variable Scheme} etc-service-type" #. type: defvr #: doc/guix.texi:23186 msgid "The type of the @file{/etc} service. This service is used to create files under @file{/etc} and can be extended by passing it name/file tuples such as:" -msgstr "" +msgstr "Le type du service @file{/etc}. Ce service est utilisé pour créer des fichiers dans @file{/etc} et peut être étendu en lui passant des tuples nom/fichier comme ceci :" #. type: example #: doc/guix.texi:23189 #, no-wrap msgid "(list `(\"issue\" ,(plain-file \"issue\" \"Welcome!\\n\")))\n" -msgstr "" +msgstr "(list `(\"issue\" ,(plain-file \"issue\" \"Bienvenue !\\n\")))\n" #. type: defvr #: doc/guix.texi:23193 msgid "In this example, the effect would be to add an @file{/etc/issue} file pointing to the given file." -msgstr "" +msgstr "Dans cet exemple, l'effet serait d'ajouter un fichier @file{/etc/issue} pointant vers le fichier donné." #. type: defvr #: doc/guix.texi:23195 @@ -42187,7 +42314,7 @@ msgstr "{Variable Scheme} setuid-program-service-type" #. type: defvr #: doc/guix.texi:23199 msgid "Type for the ``setuid-program service''. This service collects lists of executable file names, passed as gexps, and adds them to the set of setuid-root programs on the system (@pxref{Setuid Programs})." -msgstr "" +msgstr "Le type du « service setuid ». Ce service récupère des listes de noms de fichiers exécutables, passés en tant que gexps, et les ajoute à l'ensemble des programmes setuid root sur le système (@pxref{Setuid Programs})." #. type: defvr #: doc/guix.texi:23201 @@ -42198,7 +42325,7 @@ msgstr "{Variable Scheme} profile-service-type" #. type: defvr #: doc/guix.texi:23205 msgid "Type of the service that populates the @dfn{system profile}---i.e., the programs under @file{/run/current-system/profile}. Other services can extend it by passing it lists of packages to add to the system profile." -msgstr "" +msgstr "De type du service qui rempli le @dfn{profil du système} — c.-à-d.@: les programmes dans @file{/run/current-system/profile}. Les autres services peuvent l'étendre en lui passant des listes de paquets à ajouter au profil du système." #. type: cindex #: doc/guix.texi:23211 @@ -42216,32 +42343,32 @@ msgstr "PID 1" #: doc/guix.texi:23213 #, no-wrap msgid "init system" -msgstr "" +msgstr "système d'init" #. type: Plain text #: doc/guix.texi:23219 msgid "The @code{(gnu services shepherd)} module provides a way to define services managed by the GNU@tie{}Shepherd, which is the GuixSD initialization system---the first process that is started when the system boots, also known as PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual})." -msgstr "" +msgstr "Le module @code{(gnu services shepherd)} fournit une manière de définir les services gérés par le GNU@trie{}Shepherd, qui est le système d'initialisation de GuixSD — le premier processus démarré lorsque le système démarre, aussi connu comme étant le PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual})." #. type: Plain text #: doc/guix.texi:23225 msgid "Services in the Shepherd can depend on each other. For instance, the SSH daemon may need to be started after the syslog daemon has been started, which in turn can only happen once all the file systems have been mounted. The simple operating system defined earlier (@pxref{Using the Configuration System}) results in a service graph like this:" -msgstr "" +msgstr "Les services dans le Shepherd peuvent dépendre les uns des autres. Par exemple, le démon SSH peut avoir besoin d'être démarré après le démon syslog, qui à son tour doit être démarré après le montage des systèmes de fichiers. Le système d'exploitation simple déclaré précédemment (@pxref{Using the Configuration System}) crée un graphe de service comme ceci :" #. type: Plain text #: doc/guix.texi:23227 msgid "@image{images/shepherd-graph,,5in,Typical shepherd service graph.}" -msgstr "" +msgstr "@image{images/shepherd-graph,,5in,Graphe de service typique du shepherd.}" #. type: Plain text #: doc/guix.texi:23231 msgid "You can actually generate such a graph for any operating system definition using the @command{guix system shepherd-graph} command (@pxref{system-shepherd-graph, @command{guix system shepherd-graph}})." -msgstr "" +msgstr "Vous pouvez générer un tel graphe pour n'importe quelle définition de système d'exploitation avec la commande @command{guix system shepherd-graph} (@pxref{system-shepherd-graph, @command{guix system shepherd-graph}})." #. type: Plain text #: doc/guix.texi:23235 msgid "The @var{%shepherd-root-service} is a service object representing PID@tie{}1, of type @var{shepherd-root-service-type}; it can be extended by passing it lists of @code{} objects." -msgstr "" +msgstr "La variable @var{%shepherd-root-service} est un objet de service représentant le PID@tie{}1, de type @var{shepherd-root-service-type} ; il peut être étendu en lui passant des listes d'objets @code{}." #. type: deftp #: doc/guix.texi:23236 @@ -42252,7 +42379,7 @@ msgstr "{Type de données} shepherd-service" #. type: deftp #: doc/guix.texi:23238 msgid "The data type representing a service managed by the Shepherd." -msgstr "" +msgstr "Le type de données représentant un service géré par le Shepherd." #. type: code{#1} #: doc/guix.texi:23240 @@ -42263,12 +42390,12 @@ msgstr "provision" #. type: table #: doc/guix.texi:23242 msgid "This is a list of symbols denoting what the service provides." -msgstr "" +msgstr "C'est une liste de symboles dénotant ce que le service fournit." #. type: table #: doc/guix.texi:23247 msgid "These are the names that may be passed to @command{herd start}, @command{herd status}, and similar commands (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}). @xref{Slots of services, the @code{provides} slot,, shepherd, The GNU Shepherd Manual}, for details." -msgstr "" +msgstr "Ce sont les noms qui peuvent être passés à @command{herd start}, @command{herd status} et les commandes similaires (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}). @xref{Slots of services, the @code{provides} slot,, shepherd, The GNU Shepherd Manual}, pour plus de détails." #. type: item #: doc/guix.texi:23248 @@ -42279,7 +42406,7 @@ msgstr "@code{requirements} (par défaut : @code{'()})" #. type: table #: doc/guix.texi:23250 msgid "List of symbols denoting the Shepherd services this one depends on." -msgstr "" +msgstr "Liste de symboles dénotant les services du Shepherd dont celui-ci dépend." #. type: item #: doc/guix.texi:23251 @@ -42290,7 +42417,7 @@ msgstr "@code{respawn?} (par défaut : @code{#t})" #. type: table #: doc/guix.texi:23254 msgid "Whether to restart the service when it stops, for instance when the underlying process dies." -msgstr "" +msgstr "Indique s'il faut redémarrer le service lorsqu'il s'arrête, par exemple si le processus sous-jacent meurt." #. type: code{#1} #: doc/guix.texi:23255 @@ -42307,7 +42434,7 @@ msgstr "@code{stop} (par défaut : @code{#~(const #f)})" #. type: table #: doc/guix.texi:23262 msgid "The @code{start} and @code{stop} fields refer to the Shepherd's facilities to start and stop processes (@pxref{Service De- and Constructors,,, shepherd, The GNU Shepherd Manual}). They are given as G-expressions that get expanded in the Shepherd configuration file (@pxref{G-Expressions})." -msgstr "" +msgstr "Les champs @code{start} et @code{stop} se réfèrent à la capacité du Shepherd de démarrer et d'arrêter des processus (@pxref{Service De- and Constructors,,, shepherd, The GNU Shepherd Manual}). Ils sont donnés comme des G-expressions qui sont étendues dans le fichier de configuration du Shepherd (@pxref{G-Expressions})." #. type: item #: doc/guix.texi:23263 @@ -42324,7 +42451,7 @@ msgstr "action, des services Shepherd" #. type: table #: doc/guix.texi:23269 msgid "This is a list of @code{shepherd-action} objects (see below) defining @dfn{actions} supported by the service, in addition to the standard @code{start} and @code{stop} actions. Actions listed here become available as @command{herd} sub-commands:" -msgstr "" +msgstr "C'est une liste d'objets @code{shepherd-action} (voir plus bas) définissant des @dfn{actions} supportées par le service, en plus des actions @code{start} et @code{stop} standards. Les actions listées ici sont disponibles en tant que sous-commande de @command{herd}." #. type: example #: doc/guix.texi:23272 @@ -42335,18 +42462,18 @@ msgstr "herd @var{action} @var{service} [@var{arguments}@dots{}]\n" #. type: table #: doc/guix.texi:23276 msgid "A documentation string, as shown when running:" -msgstr "" +msgstr "Une chaîne de documentation, montrée lorsqu'on lance :" #. type: example #: doc/guix.texi:23279 #, no-wrap msgid "herd doc @var{service-name}\n" -msgstr "" +msgstr "herd doc @var{service-name}\n" #. type: table #: doc/guix.texi:23283 msgid "where @var{service-name} is one of the symbols in @var{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})." -msgstr "" +msgstr "où @var{service-name} est l'un des symboles dans @var{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})." #. type: item #: doc/guix.texi:23284 @@ -42357,7 +42484,7 @@ msgstr "@code{modules} (par défaut : @var{%default-modules})" #. type: table #: doc/guix.texi:23287 msgid "This is the list of modules that must be in scope when @code{start} and @code{stop} are evaluated." -msgstr "" +msgstr "C'est la liste des modules qui doivent être dans le contexte lorsque @code{start} et @code{stop} sont évalués." #. type: deftp #: doc/guix.texi:23291 @@ -42368,7 +42495,7 @@ msgstr "{Type de données} shepherd-action" #. type: deftp #: doc/guix.texi:23294 msgid "This is the data type that defines additional actions implemented by a Shepherd service (see above)." -msgstr "" +msgstr "C'est le type de données qui définie des actions supplémentaires implémentées par un service Shepherd (voir au-dessus)." #. type: table #: doc/guix.texi:23298 @@ -42378,29 +42505,29 @@ msgstr "Symbole nommant l'action" #. type: table #: doc/guix.texi:23301 msgid "This is a documentation string for the action. It can be viewed by running:" -msgstr "" +msgstr "C'est une chaîne de documentation pour l'action. Elle peut être consultée avec :" #. type: example #: doc/guix.texi:23304 #, no-wrap msgid "herd doc @var{service} action @var{action}\n" -msgstr "" +msgstr "herd doc @var{service} action @var{action}\n" #. type: item #: doc/guix.texi:23306 #, no-wrap msgid "procedure" -msgstr "" +msgstr "procedure" #. type: table #: doc/guix.texi:23310 msgid "This should be a gexp that evaluates to a procedure of at least one argument, which is the ``running value'' of the service (@pxref{Slots of services,,, shepherd, The GNU Shepherd Manual})." -msgstr "" +msgstr "Cela devrait être une gexp qui s'évalue en une procédure à au moins un argument, la « valeur de lancement » du service (@pxref{Slots of services,,, shepherd, The GNU Shepherd Manual})." #. type: deftp #: doc/guix.texi:23314 msgid "The following example defines an action called @code{say-hello} that kindly greets the user:" -msgstr "" +msgstr "L'exemple suivant définie une action nommée @code{dire-bonjour} qui salue amicalement l'utilisateur :" #. type: example #: doc/guix.texi:23323 @@ -42414,11 +42541,18 @@ msgid "" " args)\n" " #t)))\n" msgstr "" +"(shepherd-action\n" +" (name 'dire-bonjour)\n" +" (documentation \"Dit salut !\")\n" +" (procedure #~(lambda (running . args)\n" +" (format #t \"Salut, l'ami ! arguments : ~s\\n\"\n" +" args)\n" +" #t)))\n" #. type: deftp #: doc/guix.texi:23326 msgid "Assuming this action is added to the @code{example} service, then you can do:" -msgstr "" +msgstr "En supposant que cette action est ajoutée dans le service @code{example}, vous pouvez écrire :" #. type: example #: doc/guix.texi:23332 @@ -42429,11 +42563,15 @@ msgid "" "# herd say-hello example a b c\n" "Hello, friend! arguments: (\"a\" \"b\" \"c\")\n" msgstr "" +"# herd dire-bonjour example\n" +"Salut, l'ami ! arguments : ()\n" +"# herd dire-bonjour example a b c\n" +"Salut, l'ami ! arguments : (\"a\" \"b\" \"c\")\n" #. type: deftp #: doc/guix.texi:23337 msgid "This, as you can see, is a fairly sophisticated way to say hello. @xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, for more info on actions." -msgstr "" +msgstr "Comme vous pouvez le voir, c'est une manière assez sophistiquée de dire bonjour. @xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, pour plus d'informations sur les actions." #. type: defvr #: doc/guix.texi:23339 @@ -42444,12 +42582,12 @@ msgstr "{Variable Scheme} shepherd-root-service-type" #. type: defvr #: doc/guix.texi:23341 msgid "The service type for the Shepherd ``root service''---i.e., PID@tie{}1." -msgstr "" +msgstr "Le type de service pour le « service racine » du Shepherd — c.-à-d.@: le PID@tie{}1." #. type: defvr #: doc/guix.texi:23345 msgid "This is the service type that extensions target when they want to create shepherd services (@pxref{Service Types and Services}, for an example). Each extension must pass a list of @code{}." -msgstr "" +msgstr "C'est le type de service que les extensions ciblent lorqu'elles veulent créer un service shepherd (@pxref{Service Types and Services}, pour un exemple). Chaque extension doit passer une liste de @code{}." #. type: defvr #: doc/guix.texi:23347 @@ -42460,47 +42598,47 @@ msgstr "{Variable Scheme} %shepherd-root-service" #. type: defvr #: doc/guix.texi:23349 msgid "This service represents PID@tie{}1." -msgstr "" +msgstr "Ce service représente le PID@tie{}1." #. type: cindex #: doc/guix.texi:23355 #, no-wrap msgid "documentation, searching for" -msgstr "" +msgstr "documentation, recherche" #. type: cindex #: doc/guix.texi:23356 #, no-wrap msgid "searching for documentation" -msgstr "" +msgstr "chercher de la documentation" #. type: cindex #: doc/guix.texi:23357 #, no-wrap msgid "Info, documentation format" -msgstr "" +msgstr "Info, format de documentation" #. type: cindex #: doc/guix.texi:23358 #, no-wrap msgid "man pages" -msgstr "" +msgstr "man, pages de manuel" #. type: cindex #: doc/guix.texi:23359 #, no-wrap msgid "manual pages" -msgstr "" +msgstr "pages de manuel" #. type: Plain text #: doc/guix.texi:23366 msgid "In most cases packages installed with Guix come with documentation. There are two main documentation formats: ``Info'', a browseable hypertext format used for GNU software, and ``manual pages'' (or ``man pages''), the linear documentation format traditionally found on Unix. Info manuals are accessed with the @command{info} command or with Emacs, and man pages are accessed using @command{man}." -msgstr "" +msgstr "Dans la plupart des cas les paquets installés avec Guix ont une documentation. Il y a deux formats de documentation principaux : « Info », un format hypertexte navigable utilisé par les logiciels GNU et les « pages de manuel » (ou « pages de man »), le format de documentation linéaire traditionnel chez Unix. Les manuels Info sont disponibles via la commande @command{info} ou avec Emacs, et les pages de man sont accessibles via la commande @command{man}." #. type: Plain text #: doc/guix.texi:23370 msgid "You can look for documentation of software installed on your system by keyword. For example, the following command searches for information about ``TLS'' in Info manuals:" -msgstr "" +msgstr "Vous pouvez chercher de la documentation pour les logiciels installés sur votre système par mot-clef. Par exemple, la commande suivante recherche des informations sur « TLS » dans les manuels Info :" #. type: example #: doc/guix.texi:23378 @@ -42513,11 +42651,17 @@ msgid "" "\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_function\n" "@dots{}\n" msgstr "" +"$ info -k TLS\n" +"\"(emacs)Network Security\" -- STARTTLS\n" +"\"(emacs)Network Security\" -- TLS\n" +"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_flags\n" +"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_function\n" +"@dots{}\n" #. type: Plain text #: doc/guix.texi:23382 msgid "The command below searches for the same keyword in man pages:" -msgstr "" +msgstr "La commande suivante recherche le même mot-clef dans les pages de man :" #. type: example #: doc/guix.texi:23388 @@ -42528,49 +42672,53 @@ msgid "" "certtool (1) - GnuTLS certificate tool\n" "@dots {}\n" msgstr "" +"$ man -k TLS\n" +"SSL (7) - OpenSSL SSL/TLS library\n" +"certtool (1) - GnuTLS certificate tool\n" +"@dots {}\n" #. type: Plain text #: doc/guix.texi:23394 msgid "These searches are purely local to your computer so you have the guarantee that documentation you find corresponds to what you have actually installed, you can access it off-line, and your privacy is respected." -msgstr "" +msgstr "Ces recherches sont purement locales à votre ordinateur donc vous savez que la documentation trouvée correspond à ce qui est effectivement installé, vous pouvez y accéder hors ligne et votre vie privée est préservée." #. type: Plain text #: doc/guix.texi:23397 msgid "Once you have these results, you can view the relevant documentation by running, say:" -msgstr "" +msgstr "Une fois que vous avez ces résultats, vous pouvez visualiser la documentation appropriée avec, disons :" #. type: example #: doc/guix.texi:23400 #, no-wrap msgid "$ info \"(gnutls)Core TLS API\"\n" -msgstr "" +msgstr "$ info \"(gnutls)Core TLS API\"\n" #. type: Plain text #: doc/guix.texi:23404 msgid "or:" -msgstr "" +msgstr "ou :" #. type: example #: doc/guix.texi:23407 #, no-wrap msgid "$ man certtool\n" -msgstr "" +msgstr "$ man certtool\n" #. type: Plain text #: doc/guix.texi:23415 msgid "Info manuals contain sections and indices as well as hyperlinks like those found in Web pages. The @command{info} reader (@pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}) and its Emacs counterpart (@pxref{Misc Help,,, emacs, The GNU Emacs Manual}) provide intuitive key bindings to navigate manuals. @xref{Getting Started,,, info, Info: An Introduction}, for an introduction to Info navigation." -msgstr "" +msgstr "Les manuels Info contiennent des sections et des indexs ainsi que des hyperliens comme ce qu'on trouve sur les pages Web. Le lecteur @command{info} (@pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}) et sa contre-partie dans Emacs (@pxref{Misc Help,,, emacs, The GNU Emacs Manual}) fournissent des raccourcis claviers intuitifs pour naviguer dans les manuels @xref{Getting Started,,, info, Info: An Introduction} pour trouver une introduction sur la navigation dans info." #. type: cindex #: doc/guix.texi:23419 #, no-wrap msgid "debugging files" -msgstr "" +msgstr "fichiers de débogage" #. type: Plain text #: doc/guix.texi:23425 msgid "Program binaries, as produced by the GCC compilers for instance, are typically written in the ELF format, with a section containing @dfn{debugging information}. Debugging information is what allows the debugger, GDB, to map binary code to source code; it is required to debug a compiled program in good conditions." -msgstr "" +msgstr "Les binaires des programmes, produits par les compilateurs GCC par exemple, sont typiquement écrits au format ELF, avec une section contenant des @dfn{informations de débogage}. Les informations de débogage sont ce qui permet au débogueur, GDB, de relier le code binaire et le code source ; elles sont requises pour déboguer un programme compilé dans de bonnes conditions." #. type: Plain text #: doc/guix.texi:23433 @@ -42580,55 +42728,55 @@ msgstr "Le problème avec les informations de débogage est qu'elles prennent pa #. type: Plain text #: doc/guix.texi:23440 msgid "Thankfully, the GNU Binary Utilities (Binutils) and GDB provide a mechanism that allows users to get the best of both worlds: debugging information can be stripped from the binaries and stored in separate files. GDB is then able to load debugging information from those files, when they are available (@pxref{Separate Debug Files,,, gdb, Debugging with GDB})." -msgstr "" +msgstr "Heureusement, les utilitaires binaires de GNU (Binutils) et GDB fournissent un mécanisme qui permet aux utilisateurs d'avoir le meilleur des deux mondes : les informations de débogage peuvent être nettoyées des binaires et stockées dans des fichiers séparés. GDB peut ensuite charger les informations de débogage depuis ces fichiers, lorsqu'elles sont disponibles (@pxref{Separate Debug Files,,, gdb, Debugging with GDB})." #. type: Plain text #: doc/guix.texi:23448 msgid "The GNU distribution takes advantage of this by storing debugging information in the @code{lib/debug} sub-directory of a separate package output unimaginatively called @code{debug} (@pxref{Packages with Multiple Outputs}). Users can choose to install the @code{debug} output of a package when they need it. For instance, the following command installs the debugging information for the GNU C Library and for GNU Guile:" -msgstr "" +msgstr "La distribution GNU se sert de cela pour stocker les informations de débogage dans le sous-répertoire @code{lib/debug} d'une sortie séparée du paquet appelée sans grande imagination @code{debug} (@pxref{Packages with Multiple Outputs}). Les utilisateurs peuvent choisir d'installer la sortie @code{debug} d'un paquet lorsqu'ils en ont besoin. Par exemple, la commande suivante installe les informations de débogage pour la bibliothèque C de GNU et pour GNU Guile." #. type: example #: doc/guix.texi:23451 #, no-wrap msgid "guix package -i glibc:debug guile:debug\n" -msgstr "" +msgstr "guix package -i glibc:debug guile:debug\n" #. type: Plain text #: doc/guix.texi:23457 msgid "GDB must then be told to look for debug files in the user's profile, by setting the @code{debug-file-directory} variable (consider setting it from the @file{~/.gdbinit} file, @pxref{Startup,,, gdb, Debugging with GDB}):" -msgstr "" +msgstr "On doit ensuite dire à GDB de chercher les fichiers de débogage dans le profil de l'utilisateur, en remplissant la variable @code{debug-file-directory} (vous pourriez aussi l'instancier depuis le fichier @file{~/.gdbinit}, @pxref{Startup,,, gdb, Debugging with GDB}) :" #. type: example #: doc/guix.texi:23460 #, no-wrap msgid "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n" -msgstr "" +msgstr "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n" #. type: Plain text #: doc/guix.texi:23464 msgid "From there on, GDB will pick up debugging information from the @code{.debug} files under @file{~/.guix-profile/lib/debug}." -msgstr "" +msgstr "À partir de maintenant, GDB récupérera les informations de débogage dans les fichiers @code{.debug} de @file{~/.guix-profile/lib/debug}." #. type: Plain text #: doc/guix.texi:23471 msgid "In addition, you will most likely want GDB to be able to show the source code being debugged. To do that, you will have to unpack the source code of the package of interest (obtained with @code{guix build --source}, @pxref{Invoking guix build}), and to point GDB to that source directory using the @code{directory} command (@pxref{Source Path, @code{directory},, gdb, Debugging with GDB})." -msgstr "" +msgstr "EN plus, vous voudrez sans doute que GDB puisse montrer le code source débogué. Pour cela, vous devrez désarchiver le code source du paquet qui vous intéresse (obtenu via @code{guix build --source}, @pxref{Invoking guix build}) et pointer GDB vers ce répertoire des sources avec la commande @code{directory} (@pxref{Source Path, @code{directory},, gdb, Debugging with GDB})." #. type: Plain text #: doc/guix.texi:23480 msgid "The @code{debug} output mechanism in Guix is implemented by the @code{gnu-build-system} (@pxref{Build Systems}). Currently, it is opt-in---debugging information is available only for the packages with definitions explicitly declaring a @code{debug} output. This may be changed to opt-out in the future if our build farm servers can handle the load. To check whether a package has a @code{debug} output, use @command{guix package --list-available} (@pxref{Invoking guix package})." -msgstr "" +msgstr "Le mécanisme de la sortie @code{debug} dans Guix est implémenté par le @code{gnu-build-system} (@pxref{Build Systems}). Actuellement, ce n'est pas obligatoire — les informations de débogage sont disponibles uniquement si les définitions déclarent explicitement une sortie @code{debug}. Cela pourrait être modifié tout en permettant aux paquets de s'en passer dans le futur si nos serveurs de construction peuvent tenir la charge. Pour vérifier si un paquet a une sortie @code{debug}, utilisez @command{guix package --list-available} (@pxref{Invoking guix package})." #. type: cindex #: doc/guix.texi:23485 #, no-wrap msgid "security updates" -msgstr "" +msgstr "mises à jour de sécurité" #. type: Plain text #: doc/guix.texi:23494 msgid "Occasionally, important security vulnerabilities are discovered in software packages and must be patched. Guix developers try hard to keep track of known vulnerabilities and to apply fixes as soon as possible in the @code{master} branch of Guix (we do not yet provide a ``stable'' branch containing only security updates.) The @command{guix lint} tool helps developers find out about vulnerable versions of software packages in the distribution:" -msgstr "" +msgstr "Parfois, des vulnérabilités importantes sont découvertes dans les paquets logiciels et doivent être corrigées. Les développeurs de Guix essayent de suivre les vulnérabilités connues et d'appliquer des correctifs aussi vite que possible dans la branche @code{master} de Guix (nous n'avons pas encore de branche « stable » contenant seulement des mises à jour de sécurité). L'outil @command{guix lint} aide les développeurs à trouver les versions vulnérables des paquets logiciels dans la distribution." #. type: smallexample #: doc/guix.texi:23501 @@ -42640,16 +42788,21 @@ msgid "" "gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probably vulnerable to CVE-2016-1923, CVE-2016-1924\n" "@dots{}\n" msgstr "" +"$ guix lint -c cve\n" +"gnu/packages/base.scm:652:2: glibc@@2.21: probablement vulnérable à CVE-2015-1781, CVE-2015-7547\n" +"gnu/packages/gcc.scm:334:2: gcc@@4.9.3: probablement vulnérable à CVE-2015-5276\n" +"gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probablement vulnérable à CVE-2016-1923, CVE-2016-1924\n" +"@dots{}\n" #. type: Plain text #: doc/guix.texi:23504 msgid "@xref{Invoking guix lint}, for more information." -msgstr "" +msgstr "@xref{Invoking guix lint}, pour plus d'informations." #. type: quotation #: doc/guix.texi:23508 msgid "As of version @value{VERSION}, the feature described below is considered ``beta''." -msgstr "" +msgstr "À la version @value{VERSION}, la fonctionnalité ci-dessous est considérée comme « bêta »." #. type: Plain text #: doc/guix.texi:23518 @@ -42665,18 +42818,18 @@ msgstr "greffes" #. type: Plain text #: doc/guix.texi:23527 msgid "To address this, Guix implements @dfn{grafts}, a mechanism that allows for fast deployment of critical updates without the costs associated with a whole-distribution rebuild. The idea is to rebuild only the package that needs to be patched, and then to ``graft'' it onto packages explicitly installed by the user and that were previously referring to the original package. The cost of grafting is typically very low, and order of magnitudes lower than a full rebuild of the dependency chain." -msgstr "" +msgstr "Pour corriger cela, Guix implémente les @dfn{greffes}, un mécanisme qui permet un déploiement rapide des mises à jour de sécurité critiques sans le coût associé à une reconstruction complète de la distribution. L'idée est de reconstruire uniquement le paquet qui doit être corrigé puis de le « greffer » sur les paquets qui sont explicitement installés par l'utilisateur et qui se référaient avant au paquet d'origine. Le coût d'une greffe est typiquement très bas, et plusieurs ordres de grandeurs moins élevé que de reconstruire tout la chaîne de dépendance." #. type: cindex #: doc/guix.texi:23528 #, no-wrap msgid "replacements of packages, for grafts" -msgstr "" +msgstr "remplacement de paquet, pour les greffes" #. type: Plain text #: doc/guix.texi:23534 msgid "For instance, suppose a security update needs to be applied to Bash. Guix developers will provide a package definition for the ``fixed'' Bash, say @var{bash-fixed}, in the usual way (@pxref{Defining Packages}). Then, the original package definition is augmented with a @code{replacement} field pointing to the package containing the bug fix:" -msgstr "" +msgstr "Par exemple, supposons qu'une mise à jour de sécurité doive être appliquée à Bash. Les développeurs de Guix fourniront une définition de paquet pour le Bash « corrigé », disons @var{bash-fixed}, de la manière habituelle (@pxref{Defining Packages}). Ensuite, la définition originale du paquet est augmentée avec un champ @code{replacement} qui pointe vers le paquet contenant le correctif de sécurité :" #. type: example #: doc/guix.texi:23541 @@ -42688,32 +42841,37 @@ msgid "" " ;; @dots{}\n" " (replacement bash-fixed)))\n" msgstr "" +"(define bash\n" +" (package\n" +" (name \"bash\")\n" +" ;; @dots{}\n" +" (replacement bash-fixed)))\n" #. type: Plain text #: doc/guix.texi:23551 msgid "From there on, any package depending directly or indirectly on Bash---as reported by @command{guix gc --requisites} (@pxref{Invoking guix gc})---that is installed is automatically ``rewritten'' to refer to @var{bash-fixed} instead of @var{bash}. This grafting process takes time proportional to the size of the package, usually less than a minute for an ``average'' package on a recent machine. Grafting is recursive: when an indirect dependency requires grafting, then grafting ``propagates'' up to the package that the user is installing." -msgstr "" +msgstr "À partir de maintenant, tout paquet dépendant directement ou indirectement de Bash — rapporté par @command{guix gc --requisites} (@pxref{Invoking guix gc}) — installé est automatiquement « réécrit » pour se référer à @var{bash-fixed} au lieu de @var{bash}. Ce processus de greffe prend du temps en proportion de la taille du paquet, typiquement moins d'une minute pour un paquet de taille « moyenne » sur une machine récente. La greffe est récursive : lorsqu'une dépendance indirecte a besoin d'être greffée, la greffe se « propage » jusqu'au paquet que l'utilisateur installe." #. type: Plain text #: doc/guix.texi:23559 msgid "Currently, the length of the name and version of the graft and that of the package it replaces (@var{bash-fixed} and @var{bash} in the example above) must be equal. This restriction mostly comes from the fact that grafting works by patching files, including binary files, directly. Other restrictions may apply: for instance, when adding a graft to a package providing a shared library, the original shared library and its replacement must have the same @code{SONAME} and be binary-compatible." -msgstr "" +msgstr "Actuellement la longueur du nom et la version de la greffe et du paquet qu'il remplace (@var{bash-fixed} et @var{bash} dans l'exemple ci-dessus) doivent être identiques. Cette restriction vient surtout du fait que la greffe fonctionne en corrigeant les fichiers, dont des fichiers binaires, directement. D'autres restrictions peuvent apparaître : par exemple, si vous ajoutez une greffe à un paquet fournissant une bibliothèque partagée, la bibliothèque partagée originale et son remplacement doivent avoir le même @code{SONAME} et être compatibles au niveau binaire." #. type: Plain text #: doc/guix.texi:23563 msgid "The @option{--no-grafts} command-line option allows you to forcefully avoid grafting (@pxref{Common Build Options, @option{--no-grafts}}). Thus, the command:" -msgstr "" +msgstr "L'option en ligne de commande @option{--no-grafts} vous permet d'éviter les greffes (@pxref{Common Build Options, @option{--no-grafts}}). Donc la commande :" #. type: example #: doc/guix.texi:23566 #, no-wrap msgid "guix build bash --no-grafts\n" -msgstr "" +msgstr "guix build bash --no-grafts\n" #. type: Plain text #: doc/guix.texi:23570 msgid "returns the store file name of the original Bash, whereas:" -msgstr "" +msgstr "renvoie le nom de fichier dans les dépôt du Bash original, alors que :" #. type: example #: doc/guix.texi:23573 @@ -42724,118 +42882,118 @@ msgstr "guix build bash\n" #. type: Plain text #: doc/guix.texi:23578 msgid "returns the store file name of the ``fixed'', replacement Bash. This allows you to distinguish between the two variants of Bash." -msgstr "" +msgstr "renvoie le nom de fichier du Bash « corrigé » de remplacement. Cela vous permet de distinguer les deux variantes de Bash." #. type: Plain text #: doc/guix.texi:23581 msgid "To verify which Bash your whole profile refers to, you can run (@pxref{Invoking guix gc}):" -msgstr "" +msgstr "Pour vérifier à quel Bash votre profil se réfère, vous pouvez lancer (@pxref{Invoking guix gc}) :" #. type: example #: doc/guix.texi:23584 #, no-wrap msgid "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n" -msgstr "" +msgstr "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n" #. type: Plain text #: doc/guix.texi:23589 msgid "@dots{} and compare the store file names that you get with those above. Likewise for a complete GuixSD system generation:" -msgstr "" +msgstr "@dots{} et comparer les noms de fichiers que vous obtenez avec ceux du dessus. De la même manière pour une génération du système GuixSD :" #. type: example #: doc/guix.texi:23592 #, no-wrap msgid "guix gc -R `guix system build my-config.scm` | grep bash\n" -msgstr "" +msgstr "guix gc -R `guix system build my-config.scm` | grep bash\n" #. type: Plain text #: doc/guix.texi:23596 msgid "Lastly, to check which Bash running processes are using, you can use the @command{lsof} command:" -msgstr "" +msgstr "Enfin, pour vérifier quelles processus Bash lancés vous utilisez, vous pouvez utiliser la commande @command{lsof} :" #. type: example #: doc/guix.texi:23599 #, no-wrap msgid "lsof | grep /gnu/store/.*bash\n" -msgstr "" +msgstr "lsof | grep /gnu/store/.*bash\n" #. type: Plain text #: doc/guix.texi:23616 msgid "From a programming viewpoint, the package definitions of the GNU distribution are provided by Guile modules in the @code{(gnu packages @dots{})} name space@footnote{Note that packages under the @code{(gnu packages @dots{})} module name space are not necessarily ``GNU packages''. This module naming scheme follows the usual Guile module naming convention: @code{gnu} means that these modules are distributed as part of the GNU system, and @code{packages} identifies modules that define packages.} (@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual}). For instance, the @code{(gnu packages emacs)} module exports a variable named @code{emacs}, which is bound to a @code{} object (@pxref{Defining Packages})." -msgstr "" +msgstr "D'un point de vue programmatique, les définitions de paquets de la distribution GNU sont fournies par des modules Guile dans l'espace de noms @code{(gnu packages @dots{})}@footnote{Remarquez que les paquets sous l'espace de nom @code{(gnu packages @dots{})} ne sont pas nécessairement des « paquets GNU ». Le nom de ce module suit la convention de nommage usuelle de Guile : @code{gnu} signifie que ces modules sont distribués dans le système GNU, et @code{packages} identifie les modules qui définissent les paquets.} (@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual}). Par exemple, le module @code{(gnu packages emacs)} exporte une variable nommée @code{emacs}, qui est liée à un objet @code{} (@pxref{Defining Packages})." #. type: Plain text #: doc/guix.texi:23623 msgid "The @code{(gnu packages @dots{})} module name space is automatically scanned for packages by the command-line tools. For instance, when running @code{guix package -i emacs}, all the @code{(gnu packages @dots{})} modules are scanned until one that exports a package object whose name is @code{emacs} is found. This package search facility is implemented in the @code{(gnu packages)} module." -msgstr "" +msgstr "L'espace de nom @code{(gnu packages @dots{})} est automatiquement scanné par les outils en ligne de commande. Par exemple, lorsque vous lancez @code{guix package -i emacs}, tous les modules @code{(gnu packages @dots{})} sont scannés jusqu'à en trouver un qui exporte un objet de paquet dont le nom est @code{emacs}. Cette capacité à chercher des paquets est implémentée dans le module @code{(gnu packages)}." #. type: cindex #: doc/guix.texi:23625 #, no-wrap msgid "package module search path" -msgstr "" +msgstr "chemin de recherche des modules de paquets" #. type: Plain text #: doc/guix.texi:23634 msgid "Users can store package definitions in modules with different names---e.g., @code{(my-packages emacs)}@footnote{Note that the file name and module name must match. For instance, the @code{(my-packages emacs)} module must be stored in a @file{my-packages/emacs.scm} file relative to the load path specified with @option{--load-path} or @code{GUIX_PACKAGE_PATH}. @xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for details.}. There are two ways to make these package definitions visible to the user interfaces:" -msgstr "" +msgstr "Les utilisateurs peuvent stocker des définitions dans des modules avec des noms différents — p.@: ex.@: @code{(my-packages emacs)}@footnote{Remarquez que le nom de fichier et de module doivent être identiques. Par exemple, le module @code{(my-packages emacs)} doit être stocké dans un fichier @file{my-packages/emacs.scm} relativement au chemin de chargement spécifié avec @option{--load-path} ou @code{GUIX_PACKAGE_PATH}. @xref{Modules and the File System,,, guile, GNU Guile Reference Manual} pour plus de détails}. Il y a deux manières de rendre ces définitions visibles aux interfaces utilisateurs :" #. type: enumerate #: doc/guix.texi:23641 msgid "By adding the directory containing your package modules to the search path with the @code{-L} flag of @command{guix package} and other commands (@pxref{Common Build Options}), or by setting the @code{GUIX_PACKAGE_PATH} environment variable described below." -msgstr "" +msgstr "En ajoutant le répertoire contenant vos modules de paquets au chemin de recherche avec le drapeau @code{-L} de @command{guix package} et des autres commandes (@pxref{Common Build Options}) ou en indiquant la variable d'environnement @code{GUIX_PACKAGE_PATH} décrite plus bas." #. type: enumerate #: doc/guix.texi:23647 msgid "By defining a @dfn{channel} and configuring @command{guix pull} so that it pulls from it. A channel is essentially a Git repository containing package modules. @xref{Channels}, for more information on how to define and use channels." -msgstr "" +msgstr "En définissant un @dfn{canal} et en configurant @command{guix pull} pour qu'il l'utilise. Un canal est essentiellement un dépôt Git contenant des modules de paquets. @xref{Channels}, pour plus d'informations sur comment définir et utiliser des canaux." #. type: Plain text #: doc/guix.texi:23650 msgid "@code{GUIX_PACKAGE_PATH} works similarly to other search path variables:" -msgstr "" +msgstr "@code{GUIX_PACKAGE_PATH} fonctionne comme les autres variables de chemins de recherche :" #. type: defvr #: doc/guix.texi:23651 #, no-wrap msgid "{Environment Variable} GUIX_PACKAGE_PATH" -msgstr "" +msgstr "{Variable d'environnement} GUIX_PACKAGE_PATH" #. type: defvr #: doc/guix.texi:23655 msgid "This is a colon-separated list of directories to search for additional package modules. Directories listed in this variable take precedence over the own modules of the distribution." -msgstr "" +msgstr "C'est une liste séparée par des deux-points de répertoires dans lesquels trouver des modules de paquets supplémentaires. Les répertoires listés dans cette variable sont prioritaires par rapport aux paquets de la distribution." #. type: Plain text #: doc/guix.texi:23663 msgid "The distribution is fully @dfn{bootstrapped} and @dfn{self-contained}: each package is built based solely on other packages in the distribution. The root of this dependency graph is a small set of @dfn{bootstrap binaries}, provided by the @code{(gnu packages bootstrap)} module. For more information on bootstrapping, @pxref{Bootstrapping}." -msgstr "" +msgstr "La distribution est entièrement @dfn{bootstrappée} et @dfn{auto-contenue} : chaque paquet est construit uniquement à partir d'autres paquets de la distribution. La racine de ce graphe de dépendance est un petit ensemble de @dfn{binaires de bootstrap} fournis par le module @code{(gnu packages bootstrap)}. Pour plus d'informations sur le bootstrap, @pxref{Bootstrapping}." #. type: cindex #: doc/guix.texi:23667 #, no-wrap msgid "packages, creating" -msgstr "" +msgstr "paquets, création" #. type: Plain text #: doc/guix.texi:23672 msgid "The GNU distribution is nascent and may well lack some of your favorite packages. This section describes how you can help make the distribution grow. @xref{Contributing}, for additional information on how you can help." -msgstr "" +msgstr "La distribution GNU est jeune et vos paquets préférés peuvent manquer. Cette section décrit comment vous pouvez aider à agrandir la distribution. @xref{Contributing} pour des informations supplémentaires sur les différentes manière de nous aider." #. type: Plain text #: doc/guix.texi:23680 msgid "Free software packages are usually distributed in the form of @dfn{source code tarballs}---typically @file{tar.gz} files that contain all the source files. Adding a package to the distribution means essentially two things: adding a @dfn{recipe} that describes how to build the package, including a list of other packages required to build it, and adding @dfn{package metadata} along with that recipe, such as a description and licensing information." -msgstr "" +msgstr "Les paquets de logiciels libres sont habituellement distribués sous forme @dfn{d'archives de sources} — typiquement des fichiers @file{.tar.gz} contenant tous les fichiers sources. Ajouter un paquet à la distribution signifie essentiellement deux choses : ajouter une @dfn{recette} qui décrit comment construire le paquet, avec une liste d'autres paquets requis pour le construire, et ajouter des @dfn{métadonnées de paquet} avec la recette, comme une description et une licence." #. type: Plain text #: doc/guix.texi:23689 msgid "In Guix all this information is embodied in @dfn{package definitions}. Package definitions provide a high-level view of the package. They are written using the syntax of the Scheme programming language; in fact, for each package we define a variable bound to the package definition, and export that variable from a module (@pxref{Package Modules}). However, in-depth Scheme knowledge is @emph{not} a prerequisite for creating packages. For more information on package definitions, @pxref{Defining Packages}." -msgstr "" +msgstr "Dans Guix, toutes ces informations sont incorporées dans les @dfn{définitions de paquets}. Les définitions de paquets fournissent une vue de haut-niveau du paquet. Elles sont écrites avec la syntaxe du langage de programmation Scheme ; en fait, pour chaque paquet nous définissons une variable liée à la définition et exportons cette variable à partir d'un module (@pxref{Package Modules}). Cependant, il n'est @emph{pas} nécessaire d'avoir une connaissance approfondie du Scheme pour créer des paquets. Pour plus d'informations sur les définitions des paquets, @pxref{Defining Packages}." #. type: Plain text #: doc/guix.texi:23695 msgid "Once a package definition is in place, stored in a file in the Guix source tree, it can be tested using the @command{guix build} command (@pxref{Invoking guix build}). For example, assuming the new package is called @code{gnew}, you may run this command from the Guix build tree (@pxref{Running Guix Before It Is Installed}):" -msgstr "" +msgstr "Une fois une définition de paquet en place, stocké dans un fichier de l'arborescence des sources de Guix, il peut être testé avec la commande @command{guix build} (@pxref{Invoking guix build}). Par exemple, en supposant que le nouveau paquet s'appelle @code{gnew}, vous pouvez lancer cette commande depuis l'arborescence de construction de Guix (@pxref{Running Guix Before It Is Installed}) :" #. type: example #: doc/guix.texi:23698 @@ -42846,29 +43004,29 @@ msgstr "./pre-inst-env guix build gnew --keep-failed\n" #. type: Plain text #: doc/guix.texi:23704 msgid "Using @code{--keep-failed} makes it easier to debug build failures since it provides access to the failed build tree. Another useful command-line option when debugging is @code{--log-file}, to access the build log." -msgstr "" +msgstr "Utiliser @code{--keep-failed} rend facile le débogage des échecs car il fournit l'accès à l'arborescence de construction qui a échouée. Une autre sous-commande utile pour le débogage est @code{--log-file}, pour accéder au journal de construction." #. type: Plain text #: doc/guix.texi:23709 msgid "If the package is unknown to the @command{guix} command, it may be that the source file contains a syntax error, or lacks a @code{define-public} clause to export the package variable. To figure it out, you may load the module from Guile to get more information about the actual error:" -msgstr "" +msgstr "Si le paquet n'est pas connu de la commande @command{guix}, il se peut que le fichier source ait une erreur de syntaxe, ou qu'il manque une clause @code{define-public} pour exporter la variable du paquet. Pour comprendre cela, vous pouvez charger le module depuis Guile pour avoir plus d'informations sur la véritable erreur :" #. type: example #: doc/guix.texi:23712 #, no-wrap msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n" -msgstr "" +msgstr "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n" #. type: Plain text #: doc/guix.texi:23720 msgid "Once your package builds correctly, please send us a patch (@pxref{Contributing}). Well, if you need help, we will be happy to help you too. Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{http://hydra.gnu.org/jobset/gnu/master, our continuous integration system}." -msgstr "" +msgstr "Une fois que votre paquet est correctement construit, envoyez-nous un correctif (@pxref{Contributing}). Enfin, si vous avez besoin d'aide, nous serrons ravis de vous aider. Une fois que le correctif soumis est commité dans le dépôt Guix, le nouveau paquet est automatiquement construit sur les plate-formes supportées par @url{http://hydra.gnu.org/jobset/gnu/master, notre système d'intégration continue}." #. type: cindex #: doc/guix.texi:23721 #, no-wrap msgid "substituter" -msgstr "" +msgstr "substitution" #. type: Plain text #: doc/guix.texi:23728 @@ -42879,69 +43037,69 @@ msgstr "On peut obtenir la nouvelle définition du paquet simplement en lançant #: doc/guix.texi:23745 #, no-wrap msgid "free software" -msgstr "" +msgstr "logiciel libre" #. type: Plain text #: doc/guix.texi:23753 msgid "The GNU operating system has been developed so that users can have freedom in their computing. GNU is @dfn{free software}, meaning that users have the @url{http://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to run the program, to study and change the program in source code form, to redistribute exact copies, and to distribute modified versions. Packages found in the GNU distribution provide only software that conveys these four freedoms." -msgstr "" +msgstr "Le système d'exploitation GNU a été développé pour que les utilisateurs puissent utiliser leur ordinateur en toute liberté. GNU est un @dfn{logiciel libre}, ce qui signifie que les utilisateur ont les @url{http://www.gnu.org/philosophy/free-sw.fr.html,quatre libertés essentielles} : exécuter le programmer, étudier et modifier le programme sous sa forme source, redistribuer des copies exactes et distribuer les versions modifiées. Les paquets qui se trouvent dans la distribution GNU ne fournissent que des logiciels qui respectent ces quatre libertés." #. type: Plain text #: doc/guix.texi:23759 msgid "In addition, the GNU distribution follow the @url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,free software distribution guidelines}. Among other things, these guidelines reject non-free firmware, recommendations of non-free software, and discuss ways to deal with trademarks and patents." -msgstr "" +msgstr "En plus, la distribution GNU suit les @url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,recommandations pour les distributions systèmes libres}. Entre autres choses, ces recommandations rejettent les microgiciels non libres, les recommandations de logiciels non libres et discute des façon de gérer les marques et les brevets." #. type: Plain text #: doc/guix.texi:23767 msgid "Some otherwise free upstream package sources contain a small and optional subset that violates the above guidelines, for instance because this subset is itself non-free code. When that happens, the offending items are removed with appropriate patches or code snippets in the @code{origin} form of the package (@pxref{Defining Packages}). This way, @code{guix build --source} returns the ``freed'' source rather than the unmodified upstream source." -msgstr "" +msgstr "Certaines sources amont autrement parfaitement libres contiennent une petite partie facultative qui viole les recommandations ci-dessus, par exemple car cette partie est du code non-libre. Lorsque cela arrive, les éléments en question sont supprimés avec des correctifs ou des bouts de codes appropriés dans la forme @code{origin} du paquet (@pxref{Defining Packages}). De cette manière, @code{guix build --source} renvoie la source « libérée » plutôt que la source amont sans modification." #. type: cindex #: doc/guix.texi:23772 #, no-wrap msgid "package name" -msgstr "" +msgstr "nom du paquet" #. type: Plain text #: doc/guix.texi:23780 msgid "A package has actually two names associated with it: First, there is the name of the @emph{Scheme variable}, the one following @code{define-public}. By this name, the package can be made known in the Scheme code, for instance as input to another package. Second, there is the string in the @code{name} field of a package definition. This name is used by package management commands such as @command{guix package} and @command{guix build}." -msgstr "" +msgstr "Un paquet a en fait deux noms qui lui sont associés : d'abord il y a le nom de la @emph{variable Scheme}, celui qui suit @code{define-public}. Par ce nom, le paquet peut se faire connaître par le code Scheme, par exemple comme entrée d'un autre paquet. Deuxièmement, il y a la chaîne dans le champ @code{name} d'une définition de paquet. Ce nom est utilisé par les commandes de gestion des paquets comme @command{guix package} et @command{guix build}." #. type: Plain text #: doc/guix.texi:23785 msgid "Both are usually the same and correspond to the lowercase conversion of the project name chosen upstream, with underscores replaced with hyphens. For instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-net}." -msgstr "" +msgstr "Les deux sont habituellement les mêmes et correspondent à la conversion en minuscule du nom du projet choisi en amont, où les underscores sont remplacés par des tirets. Par exemple, GNUnet est disponible en tant que @code{gnunet} et SDL_net en tant que @code{sdl-net}." #. type: Plain text #: doc/guix.texi:23790 msgid "We do not add @code{lib} prefixes for library packages, unless these are already part of the official project name. But @pxref{Python Modules} and @ref{Perl Modules} for special rules concerning modules for the Python and Perl languages." -msgstr "" +msgstr "Nous n'ajoutons pas de préfixe @code{lib} au bibliothèques de paquets, à moins qu'il ne fasse partie du nom officiel du projet. Mais @pxref{Python Modules} et @ref{Perl Modules} pour des règles spéciales concernant les modules pour les langages Python et Perl." #. type: Plain text #: doc/guix.texi:23792 msgid "Font package names are handled differently, @pxref{Fonts}." -msgstr "" +msgstr "Les noms de paquets de polices sont gérés différemment, @pxref{Fonts}." #. type: cindex #: doc/guix.texi:23797 #, no-wrap msgid "package version" -msgstr "" +msgstr "version du paquet" #. type: Plain text #: doc/guix.texi:23806 msgid "We usually package only the latest version of a given free software project. But sometimes, for instance for incompatible library versions, two (or more) versions of the same package are needed. These require different Scheme variable names. We use the name as defined in @ref{Package Naming} for the most recent version; previous versions use the same name, suffixed by @code{-} and the smallest prefix of the version number that may distinguish the two versions." -msgstr "" +msgstr "Nous n'incluons en général que la dernière version d'un projet de logiciel libre donné. Mais parfois, par exemple pour des versions incompatibles de bibliothèques, deux (ou plus) versions du même paquet sont requises. Elles ont besoin d'un nom de variable Scheme différent. Nous utilisons le nom défini dans @ref{Package Naming} pour la version la plus récente ; les versions précédentes utilisent le même nom, suffixé par @code{-} et le plus petit préfixe du numéro de version qui permet de distinguer deux versions." #. type: Plain text #: doc/guix.texi:23809 msgid "The name inside the package definition is the same for all versions of a package and does not contain any version number." -msgstr "" +msgstr "Le nom dans la définition du paquet est le même pour toutes les versions d'un paquet et ne contient pas de numéro de version." #. type: Plain text #: doc/guix.texi:23811 msgid "For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows:" -msgstr "" +msgstr "Par exemple, les version 2.24.20 et 3.9.12 de GTK+ peuvent être inclus de cette manière :" #. type: example #: doc/guix.texi:23823 @@ -42972,7 +43130,7 @@ msgstr "" #. type: Plain text #: doc/guix.texi:23825 msgid "If we also wanted GTK+ 3.8.2, this would be packaged as" -msgstr "" +msgstr "Si nous voulons aussi GTK+ 3.8.2, cela serait inclus de cette manière :" #. type: example #: doc/guix.texi:23831 @@ -42994,17 +43152,17 @@ msgstr "" #: doc/guix.texi:23835 #, no-wrap msgid "version number, for VCS snapshots" -msgstr "" +msgstr "numéro de version, pour les instantanés des systèmes de contrôle de version" #. type: Plain text #: doc/guix.texi:23841 msgid "Occasionally, we package snapshots of upstream's version control system (VCS) instead of formal releases. This should remain exceptional, because it is up to upstream developers to clarify what the stable release is. Yet, it is sometimes necessary. So, what should we put in the @code{version} field?" -msgstr "" +msgstr "Parfois, nous incluons des paquets provenant d'instantanés de systèmes de contrôle de version (VCS) au lieu de versions publiées formellement. Cela devrait rester exceptionnel, car c'est le rôle des développeurs amont de spécifier quel est la version stable. Cependant, c'est parfois nécessaire. Donc, que faut-il mettre dans le champ @code{version} ?" #. type: Plain text #: doc/guix.texi:23849 msgid "Clearly, we need to make the commit identifier of the VCS snapshot visible in the version string, but we also need to make sure that the version string is monotonically increasing so that @command{guix package --upgrade} can determine which version is newer. Since commit identifiers, notably with Git, are not monotonically increasing, we add a revision number that we increase each time we upgrade to a newer snapshot. The resulting version string looks like this:" -msgstr "" +msgstr "Clairement, nous devons rendre l'identifiant de commit de l'instantané du VCS visible dans la version, mais nous devons aussi nous assurer que la version augmente de manière monotone pour que @command{guix package --upgrade} puisse déterminer quelle version est la plus récente. Comme les identifiants de commits, notamment avec Git, n'augmentent pas, nous ajoutons un numéro de révision qui nous augmentons à chaque fois que nous mettons à jour vers un nouvel instantané. La chaîne qui en résulte ressemble à cela :" #. type: example #: doc/guix.texi:23858 @@ -43018,11 +43176,18 @@ msgid "" " |\n" "latest upstream version\n" msgstr "" +"2.0.11-3.cabba9e\n" +" ^ ^ ^\n" +" | | `-- ID du commit en amont\n" +" | |\n" +" | `--- révision du paquet Guix\n" +" |\n" +"dernière version en amont\n" #. type: Plain text #: doc/guix.texi:23867 msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits. It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel.) It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities. A typical package definition may look like this:" -msgstr "" +msgstr "C'est une bonne idée de tronquer les identifiants dans le champ @code{version} à disons 7 caractères. Cela évite un problème esthétique (en supposant que l'esthétique ait un rôle à jouer ici) et des problèmes avec les limites de l'OS comme la longueur maximale d'un shebang (127 octets pour le noyau Linux). Il vaut mieux utilise l'identifiant de commit complet dans @code{origin} cependant, pour éviter les ambiguïtés. Une définition de paquet peut ressembler à ceci :" #. type: example #: doc/guix.texi:23883 @@ -43062,54 +43227,54 @@ msgstr "" #: doc/guix.texi:23888 #, no-wrap msgid "package description" -msgstr "" +msgstr "description du paquet" #. type: cindex #: doc/guix.texi:23889 #, no-wrap msgid "package synopsis" -msgstr "" +msgstr "résumé du paquet" #. type: Plain text #: doc/guix.texi:23896 msgid "As we have seen before, each package in GNU@tie{}Guix includes a synopsis and a description (@pxref{Defining Packages}). Synopses and descriptions are important: They are what @command{guix package --search} searches, and a crucial piece of information to help users determine whether a given package suits their needs. Consequently, packagers should pay attention to what goes into them." -msgstr "" +msgstr "Comme nous l'avons vu avant, chaque paquet dans GNU@tie{}Guix contient un résumé et une description (@pxref{Defining Packages}). Les résumés et les descriptions sont importants : ce sont eux que recherche @command{guix package --search}, et c'est une source d'informations cruciale pour aider les utilisateurs à déterminer si un paquet donner correspond à leurs besoins. En conséquence, les mainteneurs doivent prêter attention à leur contenu." #. type: Plain text #: doc/guix.texi:23904 msgid "Synopses must start with a capital letter and must not end with a period. They must not start with ``a'' or ``the'', which usually does not bring anything; for instance, prefer ``File-frobbing tool'' over ``A tool that frobs files''. The synopsis should say what the package is---e.g., ``Core GNU utilities (file, text, shell)''---or what it is used for---e.g., the synopsis for GNU@tie{}grep is ``Print lines matching a pattern''." -msgstr "" +msgstr "Les résumés doivent commencer par une lettre capitale et ne doit pas finir par un point. Ils ne doivent pas commencer par « a » ou « the » (« un » ou « le/la »), ce qui n'apporte généralement rien ; par exemple, préférez « File-frobbing tool » (« Outil de frobage de fichier ») à « A tool that frobs file » (« Un outil qui frobe les fichiers »). Le résumé devrait dire ce que le paquet est — p.@: ex.@: « Utilitaire du cœur de GNU (fichier, text, shell) » — ou ce à quoi il sert — p.@: ex.@: le résumé de grep est « Affiche des lignes correspondant à un motif »." #. type: Plain text #: doc/guix.texi:23914 msgid "Keep in mind that the synopsis must be meaningful for a very wide audience. For example, ``Manipulate alignments in the SAM format'' might make sense for a seasoned bioinformatics researcher, but might be fairly unhelpful or even misleading to a non-specialized audience. It is a good idea to come up with a synopsis that gives an idea of the application domain of the package. In this example, this might give something like ``Manipulate nucleotide sequence alignments'', which hopefully gives the user a better idea of whether this is what they are looking for." -msgstr "" +msgstr "Gardez à l'esprit que le résumé doit avoir un sens pour une large audience. Par exemple « Manipulation d'alignements au format SAM » peut avoir du sens pour un bioinformaticien chevronné, mais n'aidera pas ou pourra perdre une audience de non-spécialistes. C'est une bonne idée de créer un résumé qui donne une idée du domaine d'application du paquet. Dans cet exemple, cela donnerait « Manipulation d'alignements de séquences de nucléotides », ce qui devrait donner une meilleure idée à l'utilisateur pour savoir si c'est ce qu'il recherche." #. type: Plain text #: doc/guix.texi:23922 msgid "Descriptions should take between five and ten lines. Use full sentences, and avoid using acronyms without first introducing them. Please avoid marketing phrases such as ``world-leading'', ``industrial-strength'', and ``next-generation'', and avoid superlatives like ``the most advanced''---they are not helpful to users looking for a package and may even sound suspicious. Instead, try to be factual, mentioning use cases and features." -msgstr "" +msgstr "Les descriptions devraient faire entre cinq et dix lignes. Utilisez des phrases complètes, et évitez d'utiliser des acronymes sans les introduire d'abord. Évitez les phrases marketings comme « world-leading », « industrial-strength » et « next-generation » et évitez les superlatifs comme « the most advanced » — ils ne sont pas utiles pour les utilisateurs qui cherchent un paquet et semblent même un peu suspects. À la place, essayez d'être factuels, en mentionnant les cas d'utilisation et les fonctionnalités." #. type: cindex #: doc/guix.texi:23923 #, no-wrap msgid "Texinfo markup, in package descriptions" -msgstr "" +msgstr "balisage texinfo, dans les descriptions de paquets" #. type: Plain text #: doc/guix.texi:23932 msgid "Descriptions can include Texinfo markup, which is useful to introduce ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks (@pxref{Overview,,, texinfo, GNU Texinfo}). However you should be careful when using some characters for example @samp{@@} and curly braces which are the basic special characters in Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}). User interfaces such as @command{guix package --show} take care of rendering it appropriately." -msgstr "" +msgstr "Les descriptions peuvent inclure du balisage Texinfo, ce qui est utile pour introduire des ornements comme @code{@@code} ou @code{@@dfn}, des listes à points ou des hyperliens (@pxref{Overview,,, texinfo, GNU Texinfo}). Cependant soyez prudents lorsque vous utilisez certains symboles, par exemple @samp{@@} et les accolades qui sont les caractères spéciaux de base en Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}). Les interfaces utilisateurs comme @command{guix package --show} prennent en charge le rendu." #. type: Plain text #: doc/guix.texi:23938 msgid "Synopses and descriptions are translated by volunteers @uref{http://translationproject.org/domain/guix-packages.html, at the Translation Project} so that as many users as possible can read them in their native language. User interfaces search them and display them in the language specified by the current locale." -msgstr "" +msgstr "Les résumés et les descriptions sont traduits par des volontaires @uref{http://translationproject.org/domain/guix-packages.html, sur le projet de traduction} pour que le plus d'utilisateurs possible puissent les lire dans leur langue natale. Les interfaces utilisateurs les recherchent et les affichent dans la langue spécifiée par le paramètre de régionalisation actuel." #. type: Plain text #: doc/guix.texi:23943 msgid "To allow @command{xgettext} to extract them as translatable strings, synopses and descriptions @emph{must be literal strings}. This means that you cannot use @code{string-append} or @code{format} to construct these strings:" -msgstr "" +msgstr "Pour permettre à @command{xgettext} de les extraire comme des chaînes traduisibles, les résumés et les descriptions @emph{doivent être des chaînes litérales}. Cela signifie que vous ne pouvez pas utiliser @code{string-append} ou @code{format} pour construire ces chaînes :" #. type: lisp #: doc/guix.texi:23949 @@ -43120,11 +43285,15 @@ msgid "" " (synopsis \"This is translatable\")\n" " (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n" msgstr "" +"(package\n" +" ;; @dots{}\n" +" (synopsis \"Ceci est traduisible\")\n" +" (description (string-append \"Ceci n'est \" \"*pas*\" \" traduisible.\")))\n" #. type: Plain text #: doc/guix.texi:23957 msgid "Translation is a lot of work so, as a packager, please pay even more attention to your synopses and descriptions as every change may entail additional work for translators. In order to help them, it is possible to make recommendations or instructions visible to them by inserting special comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):" -msgstr "" +msgstr "La traduction demande beaucoup de travail, donc en tant que packageur, faîtes encore plus attention à vos résumés et descriptions car chaque changement peut demander d'autant plus de travail de la part des traducteurs. Pour les aider, il est possible de donner des recommandations ou des instructions qu'ils pourront voir en insérant des commentaires spéciaux comme ceci (@pxref{xgettext Invocation,,, gettext, GNU Gettext}) :" #. type: example #: doc/guix.texi:23962 @@ -43134,6 +43303,9 @@ msgid "" "(description \"ARandR is designed to provide a simple visual front end\n" "for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n" msgstr "" +";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n" +"(description \"ARandR is designed to provide a simple visual front end\n" +"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n" #. type: cindex #: doc/guix.texi:23968 @@ -43144,69 +43316,69 @@ msgstr "python" #. type: Plain text #: doc/guix.texi:23974 msgid "We currently package Python 2 and Python 3, under the Scheme variable names @code{python-2} and @code{python} as explained in @ref{Version Numbers}. To avoid confusion and naming clashes with other programming languages, it seems desirable that the name of a package for a Python module contains the word @code{python}." -msgstr "" +msgstr "Nous incluons actuellement Python 2 et Python 3, sous les noms de variables Scheme @code{python-2} et @code{python} comme expliqué dans @ref{Version Numbers}. Pour éviter la confusion et les problèmes de noms avec d'autres langages de programmation, il semble désirable que le nom d'un paquet pour un module Python contienne le mot @code{python}." #. type: Plain text #: doc/guix.texi:23980 msgid "Some modules are compatible with only one version of Python, others with both. If the package Foo compiles only with Python 3, we name it @code{python-foo}; if it compiles only with Python 2, we name it @code{python2-foo}. If it is compatible with both versions, we create two packages with the corresponding names." -msgstr "" +msgstr "Certains modules ne sont compatibles qu'avec une version de Python, d'autres avec les deux. Si le paquet Foo ne compile qu'avec Ptyhon 3, on le nomme @code{python-foo} ; s'il ne compile qu'avec Python 2, on le nome @code{python2-foo}. S'il est compatible avec les deux versions, nous créons deux paquets avec les noms correspondant." #. type: Plain text #: doc/guix.texi:23986 msgid "If a project already contains the word @code{python}, we drop this; for instance, the module python-dateutil is packaged under the names @code{python-dateutil} and @code{python2-dateutil}. If the project name starts with @code{py} (e.g. @code{pytz}), we keep it and prefix it as described above." -msgstr "" +msgstr "Si un projet contient déjà le mot @code{python}, on l'enlève, par exemple le module python-dateutil est packagé sous les noms @code{python-dateutil} et @code{python2-dateutil}. Si le nom du projet commence par @code{py} (p.@: ex.@: @code{pytz}), on le garde et on le préfixe comme décrit ci-dessus." #. type: subsubsection #: doc/guix.texi:23987 #, no-wrap msgid "Specifying Dependencies" -msgstr "" +msgstr "Spécifier les dépendances" #. type: cindex #: doc/guix.texi:23988 #, no-wrap msgid "inputs, for Python packages" -msgstr "" +msgstr "entrées, pour les paquets Python" #. type: Plain text #: doc/guix.texi:23993 msgid "Dependency information for Python packages is usually available in the package source tree, with varying degrees of accuracy: in the @file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini}." -msgstr "" +msgstr "Les informations de dépendances pour les paquets Python se trouvent généralement dans l'arborescence des source du paquet, avec plus ou moins de précision : dans le fichier @file{setup.py}, dans @file{requirements.txt} ou dans @file{tox.ini}." #. type: Plain text #: doc/guix.texi:23999 msgid "Your mission, when writing a recipe for a Python package, is to map these dependencies to the appropriate type of ``input'' (@pxref{package Reference, inputs}). Although the @code{pypi} importer normally does a good job (@pxref{Invoking guix import}), you may want to check the following check list to determine which dependency goes where." -msgstr "" +msgstr "Votre mission, lorsque vous écrivez une recette pour un paquet Python, est de faire correspondre ces dépendances au bon type « d'entrée » (@pxref{package Reference, inputs}). Bien que l'importeur @code{pypi} fasse du bon boulot (@pxref{Invoking guix import}), vous devriez vérifier la liste suivant pour déterminer où va telle dépendance." #. type: itemize #: doc/guix.texi:24007 msgid "We currently package Python 2 with @code{setuptools} and @code{pip} installed like Python 3.4 has per default. Thus you don't need to specify either of these as an input. @command{guix lint} will warn you if you do." -msgstr "" +msgstr "Nous empaquetons Python 2 avec @code{setuptools} et @code{pip} installé comme Python 3.4 par défaut. Ainsi, vous n'avez pas à spécifié ces entrées. @command{guix lint} vous avertira si vous faîtes cela." #. type: itemize #: doc/guix.texi:24013 msgid "Python dependencies required at run time go into @code{propagated-inputs}. They are typically defined with the @code{install_requires} keyword in @file{setup.py}, or in the @file{requirements.txt} file." -msgstr "" +msgstr "Les dépendances Python requises à l'exécutions vont dans @code{propagated-inputs}. Elles sont typiquement définies dans le mot-clef @code{install_requires} dans @file{setup.py} ou dans le fichier @file{requirements.txt}." #. type: itemize #: doc/guix.texi:24021 msgid "Python packages required only at build time---e.g., those listed with the @code{setup_requires} keyword in @file{setup.py}---or only for testing---e.g., those in @code{tests_require}---go into @code{native-inputs}. The rationale is that (1) they do not need to be propagated because they are not needed at run time, and (2) in a cross-compilation context, it's the ``native'' input that we'd want." -msgstr "" +msgstr "Les paquets Python requis uniquement à la construction — p.@: ex.@: ceux listés dans le mot-clef @code{setup_requires} de @file{setup.py} — ou seulement pour les tests — p.@: ex.@: ceux dans @code{tests_require} — vont dans @code{native-inputs}. La raison est qu'ils n'ont pas besoin d'être propagés car ils ne sont pas requis à l'exécution et dans le cas d'une compilation croisée, c'est l'entrée « native » qu'il nous faut." #. type: itemize #: doc/guix.texi:24025 msgid "Examples are the @code{pytest}, @code{mock}, and @code{nose} test frameworks. Of course if any of these packages is also required at run-time, it needs to go to @code{propagated-inputs}." -msgstr "" +msgstr "Les cadriciels de tests @code{pytest}, @code{mock} et @code{nose} sont des exemples. Bien sûr si l'un de ces paquets est aussi requis à l'exécution, il doit aller dans @code{propagated-inputs}." #. type: itemize #: doc/guix.texi:24030 msgid "Anything that does not fall in the previous categories goes to @code{inputs}, for example programs or C libraries required for building Python packages containing C extensions." -msgstr "" +msgstr "Tout ce qui ne tombe pas dans les catégories précédentes va dans @code{inputs}, par exemple des programmes pour des bibliothèques C requises pour construire des paquets Python avec des extensions C." #. type: itemize #: doc/guix.texi:24036 msgid "If a Python package has optional dependencies (@code{extras_require}), it is up to you to decide whether to add them or not, based on their usefulness/overhead ratio (@pxref{Submitting Patches, @command{guix size}})." -msgstr "" +msgstr "Si un paquet Python a des dépendances facultatives (@code{extras_require}), c'est à vous de décider de les ajouter ou non, en fonction du ratio entre utilité et complexité (@pxref{Submitting Patches, @command{guix size}})." #. type: cindex #: doc/guix.texi:24043 @@ -43217,7 +43389,7 @@ msgstr "perl" #. type: Plain text #: doc/guix.texi:24054 msgid "Perl programs standing for themselves are named as any other package, using the lowercase upstream name. For Perl packages containing a single class, we use the lowercase class name, replace all occurrences of @code{::} by dashes and prepend the prefix @code{perl-}. So the class @code{XML::Parser} becomes @code{perl-xml-parser}. Modules containing several classes keep their lowercase upstream name and are also prepended by @code{perl-}. Such modules tend to have the word @code{perl} somewhere in their name, which gets dropped in favor of the prefix. For instance, @code{libwww-perl} becomes @code{perl-libwww}." -msgstr "" +msgstr "Les programmes Perl utiles en soit sont nommés comme les autres paquets, avec le nom amont en minuscule. Pour les paquets Perl contenant une seule classe, nous utilisons le nom de la classe en minuscule, en remplaçant les occurrences de @code{::} par des tirets et en préfixant le tout par @code{perl-}. Donc la classe @code{XML::Parser} devient @code{perl-xml-parser}. Les modules contenant plusieurs classes gardent leur nom amont en minuscule et sont aussi préfixés par @code{perl-}. Ces modules tendent à avoir le mot @code{perl} quelque part dans leur nom, que nous supprimons en faveur du préfixe. Par exemple, @code{libwww-perl} devient @code{perl-libwww}." #. type: cindex #: doc/guix.texi:24059 @@ -43228,85 +43400,85 @@ msgstr "java" #. type: Plain text #: doc/guix.texi:24062 msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name." -msgstr "" +msgstr "Le programmes Java utiles en soit sont nommés comme les autres paquets, avec le nom amont en minuscule." #. type: Plain text #: doc/guix.texi:24068 msgid "To avoid confusion and naming clashes with other programming languages, it is desirable that the name of a package for a Java package is prefixed with @code{java-}. If a project already contains the word @code{java}, we drop this; for instance, the package @code{ngsjava} is packaged under the name @code{java-ngs}." -msgstr "" +msgstr "Pour éviter les confusions et les problèmes de nom avec d'autres langages de programmation, il est désirable que le nom d'un paquet Java soit préfixé par @code{java-}. Si un projet contient déjà le mot @code{java}, nous le supprimons, par exemple le paquet @code{ngsjava} est empaqueté sous le nom @code{java-ngs}." #. type: Plain text #: doc/guix.texi:24074 msgid "For Java packages containing a single class or a small class hierarchy, we use the lowercase class name, replace all occurrences of @code{.} by dashes and prepend the prefix @code{java-}. So the class @code{apache.commons.cli} becomes package @code{java-apache-commons-cli}." -msgstr "" +msgstr "Pour les paquets java contenant une seul classe ou une petite hiérarchie de classes, nous utilisons le nom de la classe en minuscule, en remplaçant les occurrences de @code{.} par des tirets et en préfixant le tout par @code{java-}. Donc la classe @code{apache.commons.cli} devient @code{java-apache-commons-cli}." #. type: Plain text #: doc/guix.texi:24085 msgid "For fonts that are in general not installed by a user for typesetting purposes, or that are distributed as part of a larger software package, we rely on the general packaging rules for software; for instance, this applies to the fonts delivered as part of the X.Org system or fonts that are part of TeX Live." -msgstr "" +msgstr "Pour les polices qui n esont en général par installées par un utilisateurs pour du traitement de texte, ou qui sont distribuées en tant que partie d'un paquet logiciel plus gros, nous nous appuyons sur les règles générales pour les logiciels ; par exemple, cela s'applique aux polices livrées avec le système X.Org ou les polices qui font partie de TeX Live." #. type: Plain text #: doc/guix.texi:24089 msgid "To make it easier for a user to search for fonts, names for other packages containing only fonts are constructed as follows, independently of the upstream package name." -msgstr "" +msgstr "Pour rendre plus facile la recherche par l'utilisateur, les noms des autres paquets contenant seulement des polices sont construits ainsi, indépendamment du nom du paquet en amont." #. type: Plain text #: doc/guix.texi:24097 msgid "The name of a package containing only one font family starts with @code{font-}; it is followed by the foundry name and a dash @code{-} if the foundry is known, and the font family name, in which spaces are replaced by dashes (and as usual, all upper case letters are transformed to lower case). For example, the Gentium font family by SIL is packaged under the name @code{font-sil-gentium}." -msgstr "" +msgstr "Le nom d'un paquet contenant une unique famille de polices commence par @code{font-} ; il est suivi du nom du fondeur et d'un tiret @code{-} si le fondeur est connu, et du nom de la police, dont les espaces sont remplacés par des tirets (et comme d'habitude, toutes les lettres majuscules sont transformées en minuscules). Par exemple, la famille de polices Gentium de SIL est empaqueté sous le nom @code{font-sil-gentium}." #. type: Plain text #: doc/guix.texi:24106 msgid "For a package containing several font families, the name of the collection is used in the place of the font family name. For instance, the Liberation fonts consist of three families, Liberation Sans, Liberation Serif and Liberation Mono. These could be packaged separately under the names @code{font-liberation-sans} and so on; but as they are distributed together under a common name, we prefer to package them together as @code{font-liberation}." -msgstr "" +msgstr "Pour un paquet contenant plusieurs familles de polices, le nom de la collection est utilisée à la place du nom de la famille. Par exemple les polices Liberation consistent en trois familles, Liberation Sans, Liberation Serif et Liberation Mono. Elles pourraient être empaquetées séparément sous les noms @code{font-liberation-sans} etc, mais comme elles sont distribuées ensemble sous un nom commun, nous préférons les empaqueter ensemble en tant que @code{font-liberation}." #. type: Plain text #: doc/guix.texi:24112 msgid "In the case where several formats of the same font family or font collection are packaged separately, a short form of the format, prepended by a dash, is added to the package name. We use @code{-ttf} for TrueType fonts, @code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1 fonts." -msgstr "" +msgstr "Dans le cas où plusieurs formats de la même famille ou collection sont empaquetés séparément, une forme courte du format, préfixé d'un tiret est ajouté au nom du paquet. Nous utilisont @code{-ttf} pour les polices TrueType, @code{-otf} pour les polices OpenType et @code{-type1} pour les polices Type 1 de PostScript." #. type: cindex #: doc/guix.texi:24120 #, no-wrap msgid "bootstrapping" -msgstr "" +msgstr "bootstrap" #. type: Plain text #: doc/guix.texi:24130 msgid "Bootstrapping in our context refers to how the distribution gets built ``from nothing''. Remember that the build environment of a derivation contains nothing but its declared inputs (@pxref{Introduction}). So there's an obvious chicken-and-egg problem: how does the first package get built? How does the first compiler get compiled? Note that this is a question of interest only to the curious hacker, not to the regular user, so you can shamelessly skip this section if you consider yourself a ``regular user''." -msgstr "" +msgstr "Dans notre contexte, le bootstrap se réfère à la manière dont la distribution est construite « à partir de rien ». Rappelez-vous que l'environnement de construction d'une dérivation ne contient rien d'autre que les entrées déclarées (@pxref{Introduction}). Donc il y a un problème évident de poule et d'œuf : comment le premier paquet est-il construit ? Comment le premier compilateur est-il construit ? Remarquez que c'est une question qui intéressera uniquement le hacker curieux, pas l'utilisateur normal, donc vous pouvez sauter cette section sans avoir honte si vous vous considérez comme un « utilisateur normal »." #. type: cindex #: doc/guix.texi:24131 doc/guix.texi:24253 #, no-wrap msgid "bootstrap binaries" -msgstr "" +msgstr "binaires de bootstrap" #. type: Plain text #: doc/guix.texi:24141 msgid "The GNU system is primarily made of C code, with libc at its core. The GNU build system itself assumes the availability of a Bourne shell and command-line tools provided by GNU Coreutils, Awk, Findutils, `sed', and `grep'. Furthermore, build programs---programs that run @code{./configure}, @code{make}, etc.---are written in Guile Scheme (@pxref{Derivations}). Consequently, to be able to build anything at all, from scratch, Guix relies on pre-built binaries of Guile, GCC, Binutils, libc, and the other packages mentioned above---the @dfn{bootstrap binaries}." -msgstr "" +msgstr "Le système GNU est surtout fait de code C, avec la libc en son cœur. Le système de construction GNU lui-même suppose la disponibilité d'un shell Bourne et d'outils en ligne de commande fournis par GNU Coreutils, Awk, Findutils, sed et grep. En plus, les programmes de construction — les programmes qui exécutent @code{./configure}, @code{make} etc — sont écrits en Guile Scheme (@pxref{Derivations}). En conséquence, pour pouvoir construire quoi que ce soit, de zéro, Guix a besoin de binaire pré-construits de Guile, GCC, Binutils, la libc et des autres paquets mentionnés plus haut — les @dfn{binaires de bootstrap}." #. type: Plain text #: doc/guix.texi:24144 msgid "These bootstrap binaries are ``taken for granted'', though we can also re-create them if needed (more on that later)." -msgstr "" +msgstr "Ces binaires de bootstrap sont pris comme des acquis, bien qu'on puisse les recréer (ça arrive plus tard)." #. type: unnumberedsubsec #: doc/guix.texi:24145 #, no-wrap msgid "Preparing to Use the Bootstrap Binaries" -msgstr "" +msgstr "Se préparer à utiliser les binaires de bootstrap" #. type: Plain text #: doc/guix.texi:24150 msgid "@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap derivations}" -msgstr "" +msgstr "@image{images/bootstrap-graph,6in,,Graphe de dépendance des premières dérivations de bootstrap}" #. type: Plain text #: doc/guix.texi:24155 msgid "The figure above shows the very beginning of the dependency graph of the distribution, corresponding to the package definitions of the @code{(gnu packages bootstrap)} module. A similar figure can be generated with @command{guix graph} (@pxref{Invoking guix graph}), along the lines of:" -msgstr "" +msgstr "La figure ci-dessus montre le tout début du graphe de dépendances de la distribution, correspondant aux définitions des paquets du module @code{(gnu packages bootstrap)}. Une figure similaire peut être générée avec @command{guix graph} (@pxref{Invoking guix graph}), de cette manière :" #. type: example #: doc/guix.texi:24160 @@ -43323,38 +43495,38 @@ msgstr "" #. type: Plain text #: doc/guix.texi:24169 msgid "At this level of detail, things are slightly complex. First, Guile itself consists of an ELF executable, along with many source and compiled Scheme files that are dynamically loaded when it runs. This gets stored in the @file{guile-2.0.7.tar.xz} tarball shown in this graph. This tarball is part of Guix's ``source'' distribution, and gets inserted into the store with @code{add-to-store} (@pxref{The Store})." -msgstr "" +msgstr "À ce niveau de détails, les choses sont légèrement complexes. Tout d'abord, Guile lui-même consiste en an exécutable ELF, avec plusieurs fichiers Scheme sources et compilés qui sont chargés dynamiquement quand il est exécuté. Cela est stocké dans l'archive @file{guile-2.0.7.tar.xz} montrée dans ce graphe. Cette archive fait parti de la distribution « source » de Guix, et est insérée dans le dépôt avec @code{add-to-store} (@pxref{The Store})." #. type: Plain text #: doc/guix.texi:24178 msgid "But how do we write a derivation that unpacks this tarball and adds it to the store? To solve this problem, the @code{guile-bootstrap-2.0.drv} derivation---the first one that gets built---uses @code{bash} as its builder, which runs @code{build-bootstrap-guile.sh}, which in turn calls @code{tar} to unpack the tarball. Thus, @file{bash}, @file{tar}, @file{xz}, and @file{mkdir} are statically-linked binaries, also part of the Guix source distribution, whose sole purpose is to allow the Guile tarball to be unpacked." -msgstr "" +msgstr "Mais comment écrire une dérivation qui décompresse cette archive et l'ajoute au dépôt ? Pour résoudre ce problème, la dérivation @code{guile-bootstrap-2.0.drv} — la première qui est construite — utilise @code{bash} comme constructeur, qui lance @code{build-bootstrap-guile.sh}, qui à son tour appelle @code{tar} pour décompresser l'archive. Ainsi, @file{bash}, @file{tar}, @file{xz} et @file{mkdir} sont des binaires liés statiquement, qui font aussi partie de la distribution source de Guix, dont le seul but est de permettre à l'archive de Guile d'être décompressée." #. type: Plain text #: doc/guix.texi:24190 msgid "Once @code{guile-bootstrap-2.0.drv} is built, we have a functioning Guile that can be used to run subsequent build programs. Its first task is to download tarballs containing the other pre-built binaries---this is what the @code{.tar.xz.drv} derivations do. Guix modules such as @code{ftp-client.scm} are used for this purpose. The @code{module-import.drv} derivations import those modules in a directory in the store, using the original layout. The @code{module-import-compiled.drv} derivations compile those modules, and write them in an output directory with the right layout. This corresponds to the @code{#:modules} argument of @code{build-expression->derivation} (@pxref{Derivations})." -msgstr "" +msgstr "Une fois que @code{guile-bootstrap-2.0.drv} est construit, nous avons un Guile fonctionnel qui peut être utilisé pour exécuter les programmes de construction suivants. Sa première tâche consiste à télécharger les archives contenant les autres binaires pré-construits — c'est ce que la dérivation @code{.tar.xz.drv} fait. Les modules Guix comme @code{ftp-client.scm} sont utilisés pour cela. Les dérivations @code{module-import.drv} importent ces modules dans un répertoire dans le dépôt, en utilisant la disposition d'origine. Les dérivations @code{module-import-compiled.drv} compilent ces modules, et les écrivent dans un répertoire de sortie avec le bon agencement. Cela correspond à l'argument @code{#:modules} de @code{build-expression->derivation} (@pxref{Derivations})." #. type: Plain text #: doc/guix.texi:24194 msgid "Finally, the various tarballs are unpacked by the derivations @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, etc., at which point we have a working C tool chain." -msgstr "" +msgstr "Enfin, les diverses archives sont décompressées par les dérivations @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, etc, à partir de quoi nous avons une chaîne de compilation C fonctionnelle." #. type: unnumberedsubsec #: doc/guix.texi:24196 #, no-wrap msgid "Building the Build Tools" -msgstr "" +msgstr "Construire les outils de construction" #. type: Plain text #: doc/guix.texi:24205 msgid "Bootstrapping is complete when we have a full tool chain that does not depend on the pre-built bootstrap tools discussed above. This no-dependency requirement is verified by checking whether the files of the final tool chain contain references to the @file{/gnu/store} directories of the bootstrap inputs. The process that leads to this ``final'' tool chain is described by the package definitions found in the @code{(gnu packages commencement)} module." -msgstr "" +msgstr "Le bootstrap est complet lorsque nous avons une chaîne d'outils complète qui ne dépend pas des outils de bootstrap pré-construits dont on vient de parler. Ce pré-requis d'indépendance est vérifié en s'assurant que les fichiers de la chaîne d'outil finale ne contiennent pas de référence vers les répertoires @file{/gnu/store} des entrées de bootstrap. Le processus qui mène à cette chaîne d'outils « finale » est décrit par les définitions de paquets qui se trouvent dans le module @code{(gnu packages commencement)}." #. type: Plain text #: doc/guix.texi:24212 msgid "The @command{guix graph} command allows us to ``zoom out'' compared to the graph above, by looking at the level of package objects instead of individual derivations---remember that a package may translate to several derivations, typically one derivation to download its source, one to build the Guile modules it needs, and one to actually build the package from source. The command:" -msgstr "" +msgstr "La commande @command{guix graph} nous permet de « dézoomer » comparé au graphe précédent, en regardant au niveau des objets de paquets plutôt que des dérivations individuelles — rappelez-vous qu'un paquet peut se traduire en plusieurs dérivations, typiquement une dérivation pour télécharger ses sources, une pour les modules Guile dont il a besoin et une pour effectivement compiler le paquet depuis les sources. La commande :" #. type: example #: doc/guix.texi:24217 @@ -43371,7 +43543,7 @@ msgstr "" #. type: Plain text #: doc/guix.texi:24224 msgid "produces the dependency graph leading to the ``final'' C library@footnote{You may notice the @code{glibc-intermediate} label, suggesting that it is not @emph{quite} final, but as a good approximation, we will consider it final.}, depicted below." -msgstr "" +msgstr "produit le graphe de dépendances qui mène à la bibliothèque C « finale »@footnote{Vous remarquerez qu'elle s'appelle @code{glibc-intermediate}, ce qui suggère qu'elle n'est pas @emph{tout à fait} finale, mais c'est une bonne approximation tout de même.}, que voici :" #. type: Plain text #: doc/guix.texi:24226 @@ -43381,38 +43553,38 @@ msgstr "@image{images/bootstrap-packages,6in,,Graphe de dépendance des premiers #. type: Plain text #: doc/guix.texi:24232 msgid "The first tool that gets built with the bootstrap binaries is GNU@tie{}Make---noted @code{make-boot0} above---which is a prerequisite for all the following packages. From there Findutils and Diffutils get built." -msgstr "" +msgstr "Le premier outil construit avec les binaires de bootstrap est GNU@tie{}Make — appelé @code{make-boot0} ci-dessus — qui est un prérequis de tous les paquets suivants . Ensuite, Findutils et Diffutils sont construits." #. type: Plain text #: doc/guix.texi:24237 msgid "Then come the first-stage Binutils and GCC, built as pseudo cross tools---i.e., with @code{--target} equal to @code{--host}. They are used to build libc. Thanks to this cross-build trick, this libc is guaranteed not to hold any reference to the initial tool chain." -msgstr "" +msgstr "Ensuite vient la première passe de Binutils et GCC, construits comme des pseudo outils croisés — c.-à-d.@: dont @code{--target} égal à @code{--host}. Ils sont utilisés pour construire la libc. Grâce à cette astuce de compilation croisée, la libc est garantie de ne contenir aucune référence à la chaîne d'outils initiale." #. type: Plain text #: doc/guix.texi:24243 msgid "From there the final Binutils and GCC (not shown above) are built. GCC uses @code{ld} from the final Binutils, and links programs against the just-built libc. This tool chain is used to build the other packages used by Guix and by the GNU Build System: Guile, Bash, Coreutils, etc." -msgstr "" +msgstr "À partir de là, les Bintulis et GCC finaux (pas visibles ci-dessus) sont construits. GCC utilise @code{ld} du Binutils final et lie les programme avec la libc qui vient d'être construite. Cette chaîne d'outils est utilisée pour construire les autres paquets utilisés par Guix et par le système de construction de GNU : Guile, Bash, Coreutils, etc." #. type: Plain text #: doc/guix.texi:24249 msgid "And voilà! At this point we have the complete set of build tools that the GNU Build System expects. These are in the @code{%final-inputs} variable of the @code{(gnu packages commencement)} module, and are implicitly used by any package that uses @code{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})." -msgstr "" +msgstr "Et voilà ! À partir de là nous avons l'ensemble complet des outils auxquels s'attend le système de construction GNU. Ils sont dans la variable @code{%final-inputs} du module @code{(gnu packages commencement)} et sont implicitement utilisés par tous les paquets qui utilisent le @code{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})." #. type: unnumberedsubsec #: doc/guix.texi:24251 #, no-wrap msgid "Building the Bootstrap Binaries" -msgstr "" +msgstr "Construire les binaires de bootstrap" #. type: Plain text #: doc/guix.texi:24258 msgid "Because the final tool chain does not depend on the bootstrap binaries, those rarely need to be updated. Nevertheless, it is useful to have an automated way to produce them, should an update occur, and this is what the @code{(gnu packages make-bootstrap)} module provides." -msgstr "" +msgstr "Comme la chaîne d'outils finale ne dépend pas des binaires de bootstrap, ils ont rarement besoin d'être mis à jour. Cependant, il est utile d'avoir une manière de faire cela automatiquement, dans le cas d'une mise à jour et c'est ce que le module @code{(gnu packages make-bootstrap)} fournit." #. type: Plain text #: doc/guix.texi:24262 msgid "The following command builds the tarballs containing the bootstrap binaries (Guile, Binutils, GCC, libc, and a tarball containing a mixture of Coreutils and other basic command-line tools):" -msgstr "" +msgstr "La commande suivante construit les archives contenant les binaires de bootstrap (Guile, Binutils, GCC, la libc et une archive contenant un mélange de Coreutils et d'autres outils en ligne de commande de base) :" #. type: example #: doc/guix.texi:24265 @@ -43423,33 +43595,33 @@ msgstr "guix build bootstrap-tarballs\n" #. type: Plain text #: doc/guix.texi:24270 msgid "The generated tarballs are those that should be referred to in the @code{(gnu packages bootstrap)} module mentioned at the beginning of this section." -msgstr "" +msgstr "Les archives générées sont celles qui devraient être référencées dans le module @code{(gnu packages bootstrap)} au début de cette section." #. type: Plain text #: doc/guix.texi:24276 msgid "Still here? Then perhaps by now you've started to wonder: when do we reach a fixed point? That is an interesting question! The answer is unknown, but if you would like to investigate further (and have significant computational and storage resources to do so), then let us know." -msgstr "" +msgstr "Vous êtes toujours là ? Alors peut-être que maintenant vous vous demandez, quand est-ce qu'on atteint un point fixe ? C'est une question intéressante ! La réponse est inconnue, mais si vous voulez enquêter plus profondément (et que vous avez les ressources en puissance de calcul et en capacité de stockage pour cela), dites-le nous." #. type: unnumberedsubsec #: doc/guix.texi:24277 #, no-wrap msgid "Reducing the Set of Bootstrap Binaries" -msgstr "" +msgstr "Réduire l'ensemble des binaires de bootstrap" #. type: Plain text #: doc/guix.texi:24285 msgid "Our bootstrap binaries currently include GCC, Guile, etc. That's a lot of binary code! Why is that a problem? It's a problem because these big chunks of binary code are practically non-auditable, which makes it hard to establish what source code produced them. Every unauditable binary also leaves us vulnerable to compiler backdoors as described by Ken Thompson in the 1984 paper @emph{Reflections on Trusting Trust}." -msgstr "" +msgstr "Nous binaires de bootstrap incluent actuellement GCC, Guile, etc. C'est beaucoup de code binaire ! Pourquoi est-ce un problème ? C'est un problème parce que ces gros morceaux de code binaire sont en pratique impossibles à auditer, ce qui fait qu'il est difficile d'établir quel code source les a produit. Chaque binaire non auditable nous rend aussi vulnérable à des portes dérobées dans les compilateurs comme le décrit Ken Thompson dans le papier de 1984 @emph{Reflections on Trusting Trust}." #. type: Plain text #: doc/guix.texi:24291 msgid "This is mitigated by the fact that our bootstrap binaries were generated from an earlier Guix revision. Nevertheless it lacks the level of transparency that we get in the rest of the package dependency graph, where Guix always gives us a source-to-binary mapping. Thus, our goal is to reduce the set of bootstrap binaries to the bare minimum." -msgstr "" +msgstr "Cela est rendu moins inquiétant par le fait que les binaires de bootstrap ont été générés par une révision antérieure de Guix. Cependant, il leur manque le niveau de transparence que l'on obtient avec le reste des paquets du graphe de dépendance, où Guix nous donne toujours une correspondance source-binaire. Ainsi, notre but est de réduire l'ensemble des binaires de bootstrap au minimum." #. type: Plain text #: doc/guix.texi:24297 msgid "The @uref{http://bootstrappable.org, Bootstrappable.org web site} lists on-going projects to do that. One of these is about replacing the bootstrap GCC with a sequence of assemblers, interpreters, and compilers of increasing complexity, which could be built from source starting from a simple and auditable assembler. Your help is welcome!" -msgstr "" +msgstr "Le @uref{http://bootstrappable.org, site web Bootstrappable.org} liste les projets en cours à ce sujet. L'un d'entre eux parle de remplacer le GCC de bootstrap par une série d'assembleurs, d'interpréteurs et de compilateurs d'une complexité croissante, qui pourraient être construits à partir des sources à partir d'un assembleur simple et auditable. Votre aide est la bienvenue !" #. type: section #: doc/guix.texi:24300 @@ -43460,12 +43632,12 @@ msgstr "Porter vers une nouvelle plateforme" #. type: Plain text #: doc/guix.texi:24309 msgid "As discussed above, the GNU distribution is self-contained, and self-containment is achieved by relying on pre-built ``bootstrap binaries'' (@pxref{Bootstrapping}). These binaries are specific to an operating system kernel, CPU architecture, and application binary interface (ABI). Thus, to port the distribution to a platform that is not yet supported, one must build those bootstrap binaries, and update the @code{(gnu packages bootstrap)} module to use them on that platform." -msgstr "" +msgstr "Comme nous en avons discuté plus haut, la distribution GNU est auto-contenue, et cela est possible en se basant sur des « binaires de bootstrap » pré-construits (@pxref{Bootstrapping}). Ces binaires sont spécifiques au noyau de système d'exploitation, à l'architecture CPU et à l'interface applicative binaire (ABI). Ainsi, pour porter la distribution sur une plateforme qui n'est pas encore supportée, on doit construire ces binaires de bootstrap et mettre à jour le module @code{(gnu packages bootstrap)} pour les utiliser sur cette plateforme." #. type: Plain text #: doc/guix.texi:24314 msgid "Fortunately, Guix can @emph{cross compile} those bootstrap binaries. When everything goes well, and assuming the GNU tool chain supports the target platform, this can be as simple as running a command like this one:" -msgstr "" +msgstr "Heureusement, Guix peut effectuer une @emph{compilation croisée} de ces binaires de bootstrap. Lorsque tout va bien, et en supposant que la chaîne d'outils GNU supporte la plateforme cible, cela peut être aussi simple que de lancer une commande comme ceci :" #. type: example #: doc/guix.texi:24317 @@ -43476,17 +43648,17 @@ msgstr "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n" #. type: Plain text #: doc/guix.texi:24324 msgid "For this to work, the @code{glibc-dynamic-linker} procedure in @code{(gnu packages bootstrap)} must be augmented to return the right file name for libc's dynamic linker on that platform; likewise, @code{system->linux-architecture} in @code{(gnu packages linux)} must be taught about the new platform." -msgstr "" +msgstr "Pour que cela fonctione, la procédure @code{glibc-dynamic-linker} dans @code{(gnu packages bootstrap)} doit être augmentée pour renvoyer le bon nom de fichier pour l'éditeur de lien dynamique de la libc sur cette plateforme ; de même, il faut indiquer cette nouvelle platefore à @code{system->linux-architecture} dans @code{(gnu packages linux)}." #. type: Plain text #: doc/guix.texi:24333 msgid "Once these are built, the @code{(gnu packages bootstrap)} module needs to be updated to refer to these binaries on the target platform. That is, the hashes and URLs of the bootstrap tarballs for the new platform must be added alongside those of the currently supported platforms. The bootstrap Guile tarball is treated specially: it is expected to be available locally, and @file{gnu/local.mk} has rules to download it for the supported architectures; a rule for the new platform must be added as well." -msgstr "" +msgstr "Une fois qu'ils sont construits, le module @code{(gnu packages bootstrap)} doit être mis à jour pour se référer à ces binaires sur la plateforme cible. C'est à dire que les hashs et les URL des archives de bootstrap pour la nouvelle plateforme doivent être ajoutés avec ceux des plateformes actuellement supportées. L'archive de bootstrap de Guile est traitée séparément : elle doit être disponible localement, et @file{gnu/local.mk} a une règle pour la télécharger pour les architectures supportées ; vous devez également ajouter une règle pour la nouvelle plateforme." #. type: Plain text #: doc/guix.texi:24342 msgid "In practice, there may be some complications. First, it may be that the extended GNU triplet that specifies an ABI (like the @code{eabi} suffix above) is not recognized by all the GNU tools. Typically, glibc recognizes some of these, whereas GCC uses an extra @code{--with-abi} configure flag (see @code{gcc.scm} for examples of how to handle this). Second, some of the required packages could fail to build for that platform. Lastly, the generated binaries could be broken for some reason." -msgstr "" +msgstr "En pratique, il peut y avoir des complications. Déjà, il se peut que le triplet GNU étendu qui spécifie l'ABI (comme le suffixe @code{eabi} ci-dessus) ne soit pas reconnu par tous les outils GNU. Typiquement, la glibc en reconnais certains, alors que GCC utilise un drapeau de configure @code{--with-abi} supplémentaire (voir @code{gcc.scm} pour trouver des exemples où ce cas est géré). Ensuite, certains des paquets requis pourraient échouer à se construire pour cette plateforme. Enfin, les binaires générés pourraient être cassé pour une raison ou une autre." #. type: include #: doc/guix.texi:24344 @@ -43497,7 +43669,7 @@ msgstr "contributing.fr.texi" #. type: Plain text #: doc/guix.texi:24357 msgid "Guix is based on the @uref{http://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix.) Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes. Without this work, Guix would not exist." -msgstr "Guix se base sur le @uref{http://nixos.org/nix/, gestionnaire de paquets Nix} conçu et implémenté par Eelco Dolstra, avec des constributions d'autres personnes (voir le fichier @file{nix/AUTHORS} dans Guix). Nix a inventé la gestion de paquet fonctionnelle et promu des fonctionnalités sans précédents comme les mises à jour de paquets transactionnelles et les retours en arrière, les profils par utilisateurs et les processus de constructions transparents pour les références. Sans ce travail, Guix n'existerait pas." +msgstr "Guix se base sur le @uref{http://nixos.org/nix/, gestionnaire de paquets Nix} conçu et implémenté par Eelco Dolstra, avec des contributions d'autres personnes (voir le fichier @file{nix/AUTHORS} dans Guix). Nix a inventé la gestion de paquet fonctionnelle et promu des fonctionnalités sans précédents comme les mises à jour de paquets transactionnelles et les retours en arrière, les profils par utilisateurs et les processus de constructions transparents pour les références. Sans ce travail, Guix n'existerait pas." #. type: Plain text #: doc/guix.texi:24360 @@ -43583,7 +43755,7 @@ msgstr "fdl-1.3.texi" #~ msgstr "Renvoie un service qui lance le démon de réseau anonyme @uref{https://torproject.org, Tor}." #~ msgid "The daemon runs as the @code{tor} unprivileged user. It is passed @var{config-file}, a file-like object, with an additional @code{User tor} line and lines for hidden services added via @code{tor-hidden-service}. Run @command{man tor} for information about the configuration file." -#~ msgstr "Le démon est lancé avec l'identité de l'utilisateur non privilégié @code{tor}. Il lit @var{config-file}, un objet simili-fichier, avec une ligne @code{User tor} supplémentaire et des lignes pour les services cachés ajoutées par des @code{tor-hidden-service}. Lncez @command{man tor} pour obtenir des informations sur le fichier de configuration." +#~ msgstr "Le démon est lancé avec l'identité de l'utilisateur non privilégié @code{tor}. Il lit @var{config-file}, un objet simili-fichier, avec une ligne @code{User tor} supplémentaire et des lignes pour les services cachés ajoutées par des @code{tor-hidden-service}. Lancez @command{man tor} pour obtenir des informations sur le fichier de configuration." #~ msgid "The @code{(gnu services sound)} module provides an @code{alsa-service-type} service to generate an ALSA @file{/etc/asound.conf} configuration file. This configuration file is what allows applications that produce sound using ALSA to be correctly handled." #~ msgstr "Le module @code{(gnu services sound)} fournit un service @code{alsa-service-type} pour générer un fichier de configuration @file{/etc/asound.conf}. Ce fichier de configuration est ce qui permet aux applications de produire du son avec ALSA d'être correctement gérées." From 0b611996b9c41e7c33d30260bbce744a9141d999 Mon Sep 17 00:00:00 2001 From: Dan Frumin Date: Fri, 1 Mar 2019 17:15:08 +0100 Subject: [PATCH 004/111] gnu: coq-flocq: Update to 3.1.0. * gnu/packages/coq.scm (coq-flocq): Update to 3.1.0. (coq-interval): Update to 3.4.0. Signed-off-by: Julien Lepiller --- gnu/packages/coq.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index 3cd8c4cb69..5393d4273b 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -184,15 +184,15 @@ (define (coq-prog name) (define-public coq-flocq (package (name "coq-flocq") - (version "2.6.1") + (version "3.1.0") (source (origin (method url-fetch) ;; Use the ‘Latest version’ link for a stable URI across releases. (uri (string-append "https://gforge.inria.fr/frs/download.php/" - "file/37454/flocq-" version ".tar.gz")) + "file/37901/flocq-" version ".tar.gz")) (sha256 (base32 - "06msp1fwpqv6p98a3i1nnkj7ch9rcq3rm916yxq8dxf51lkghrin")))) + "02szrgz9m0ac51la1lqpiv6i2g0zbgx9gz5rp0q1g00ajldyna5c")))) (build-system gnu-build-system) (native-inputs `(("ocaml" ,ocaml) @@ -413,14 +413,14 @@ (define-public coq-bignums (define-public coq-interval (package (name "coq-interval") - (version "3.3.0") + (version "3.4.0") (source (origin (method url-fetch) (uri (string-append "https://gforge.inria.fr/frs/download.php/" - "file/37077/interval-" version ".tar.gz")) + "file/37524/interval-" version ".tar.gz")) (sha256 (base32 - "08fdcf3hbwqphglvwprvqzgkg0qbimpyhnqsgv3gac4y1ap0f903")))) + "023j9sd64brqvjdidqkn5m8d7a93zd9r86ggh573z9nkjm2m7vvg")))) (build-system gnu-build-system) (native-inputs `(("ocaml" ,ocaml) From d71cab2b77627a620f7f95ec97daf1e1410cb73f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Fri, 1 Mar 2019 19:39:55 +0100 Subject: [PATCH 005/111] gnu: java-tomcat: Update to 8.5.38. * gnu/packages/web.scm (java-tomcat): Update to 8.38. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index d58eed5786..9e79a83088 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5432,14 +5432,14 @@ (define-public python-py-ubjson (define-public java-tomcat (package (name "java-tomcat") - (version "8.5.32") + (version "8.5.38") (source (origin (method url-fetch) (uri (string-append "mirror://apache/tomcat/tomcat-8/v" version "/src/apache-tomcat-" version "-src.tar.gz")) (sha256 (base32 - "1qjsr6zmkdciakya4jqz0ssnsk02qlmmd898c05rasfwcrpj0xi6")) + "13pbsyk39g1qph82nngp54mqycmg60rxlxwy4yszsssahrqnggb2")) (modules '((guix build utils))) ;; Delete bundled jars. (snippet From ae69b39ed441a8eb2a61f7a5ccaeb97bca7640d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Fri, 1 Mar 2019 20:05:27 +0100 Subject: [PATCH 006/111] gnu: java-eclipse-sisu-inject: Don't use unstable tarball. Using git-file-name also makes the source store-file nicer. * gnu/packages/java.scm (java-eclipse-sisu-inject)[source]: Use git-fetch and git-file-name. --- gnu/packages/java.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 9747569009..43ba9d2d17 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -10622,12 +10622,14 @@ (define-public java-eclipse-sisu-inject (name "java-eclipse-sisu-inject") (version "0.3.3") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/eclipse/sisu.inject/" - "archive/releases/" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/eclipse/sisu.inject/") + (commit "releases/0.3.3"))) + (file-name (git-file-name name version)) (sha256 (base32 - "11rg6yw5nl13i65xsp4jxxgr341qcnnaan48p767h28kb07s0ajn")))) + "0gibc9x0bw0f4ls086fx73610fcspz9g2as7kcpcfhvl5znysvg7")))) (build-system ant-build-system) (arguments `(#:jar-name "eclipse-sisu-inject.jar" From 176662a19df688382a2d529e73f9750142f2c8dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Fri, 1 Mar 2019 22:43:32 +0100 Subject: [PATCH 007/111] gnu: java-eclipse-jetty-test-helper: Return #t from all phases. * gnu/packages/web.scm (java-eclipse-jetty-test-helper)[arguments]: Return #t from 'chdir' phase. --- gnu/packages/web.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 9e79a83088..f692b8ab5c 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5515,7 +5515,8 @@ (define-public java-eclipse-jetty-test-helper (modify-phases %standard-phases (add-before 'configure 'chdir (lambda _ - (chdir "jetty-test-helper"))) + (chdir "jetty-test-helper") + #t)) (add-before 'build 'fix-paths (lambda _ ;; TODO: From 1c492480ff90cb17b165355dc873608eff8cafa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Fri, 1 Mar 2019 22:47:37 +0100 Subject: [PATCH 008/111] gnu: java-eclipse-jetty-http-test-classes: Return #t from all phases. * gnu/packages/web.scm (java-eclipse-jetty-http-test-classes)[arguments]: Return #t from 'chdir' phase. --- gnu/packages/web.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index f692b8ab5c..2500bd0be7 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5780,7 +5780,8 @@ (define java-eclipse-jetty-http-test-classes (modify-phases %standard-phases (add-before 'configure 'chdir (lambda _ - (chdir "jetty-http")))))) + (chdir "jetty-http") + #t))))) (inputs `(("slf4j" ,java-slf4j-api) ("servlet" ,java-tomcat) From 00a7af0eea5a5a8fa2d554517ee1ca408ac7c425 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 1 Mar 2019 17:02:01 +0100 Subject: [PATCH 009/111] gnu: texlive-latex-geometry: Add missing input. * gnu/packages/tex.scm (texlive-latex-geometry)[propagated-inputs]: Add texlive-latex-oberdiek. --- gnu/packages/tex.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index c028b79ad8..8c756e4676 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -3101,6 +3101,8 @@ (define-public texlive-latex-geometry "0yw6bjfgsli3s1dldsgb7mkr7lnk329cgdjbgs8z2xn59pmmdsn4")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/geometry")) + (propagated-inputs + `(("texlive-latex-oberdiek" ,texlive-latex-oberdiek))) ;for ifpdf (home-page "https://www.ctan.org/pkg/geometry") (synopsis "Flexible and complete interface to document dimensions") (description From 5e9bf5a2e0602601c3b6c3756d5b05a7fc1a212a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 1 Mar 2019 17:02:48 +0100 Subject: [PATCH 010/111] gnu: Add texlive-fonts-adobe-times. * gnu/packages/tex.scm (texlive-fonts-adobe-times): New variable. --- gnu/packages/tex.scm | 163 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 8c756e4676..bb76c48b66 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -3642,6 +3642,169 @@ (define-public texlive-fonts-ec (license (license:fsf-free "https://www.tug.org/svn/texlive/tags/\ texlive-2017.1/Master/texmf-dist/doc/fonts/ec/copyrite.txt")))) +(define-public texlive-fonts-adobe-times + (package + (name "texlive-fonts-adobe-times") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/type1/urw/times/")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "15vzyr7favkv1mj00qxr03s89kw78nd066fh69by93272g8p5sgd")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils) + (ice-9 match)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 match)) + (let ((root (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/")) + (pkgs '(("source" . "fonts/type1/urw/times") + + ("times-afm" . "fonts/afm/adobe/times") + ("times-tfm" . "fonts/tfm/adobe/times") + ("times-vf" . "fonts/vf/adobe/times") + + ("urw-afm" . "fonts/afm/urw/times") + ("urw35vf-tfm" . "fonts/tfm/urw35vf/times") + ("urw35vf-vf" . "fonts/vf/urw35vf/times") + + ("times-tex" . "tex/latex/times") + ("dvips" . "dvips/times") + ("fonts-map" . "fonts/map/dvips/times")))) + (for-each (match-lambda + ((pkg . dir) + (let ((target (string-append root dir))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs pkg) + target)))) + pkgs) + #t)))) + (native-inputs + `(("times-afm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/afm/adobe/times")) + (revision %texlive-revision))) + (file-name (string-append name "-afm-" version "-checkout")) + (sha256 + (base32 + "1k7h6vihfc6ri2lq9ggnq2g4zq3qcgq1vd0hr486g9cqrdpys6cy")))) + ("times-tfm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/tfm/adobe/times")) + (revision %texlive-revision))) + (file-name (string-append name "-tfm-" version "-checkout")) + (sha256 + (base32 + "1hbgkjnf5xyganbznwpwszvr3iyk4bzb0ys4hd8ybawp60paadrr")))) + ("times-vf" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/vf/adobe/times")) + (revision %texlive-revision))) + (file-name (string-append name "-vf-" version "-checkout")) + (sha256 + (base32 + "18rfspnwdw9r81dy18lb4w96d09b6c4g7y80azwylalkhwdf2lfp")))) + ("urw-afm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/afm/urw/times")) + (revision %texlive-revision))) + (file-name (string-append name "-urw-afm-" version "-checkout")) + (sha256 + (base32 + "0g0xpsyn6634g0b4rpd420v7i4gkz3zr12vcy2b8csbcscjvwri5")))) + ("urw35vf-tfm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/tfm/urw35vf/times")) + (revision %texlive-revision))) + (file-name (string-append name "-urw35vf-tfm-" version "-checkout")) + (sha256 + (base32 + "0a4idlvpaqd0ypqgy1xw0rpx8q23bvssg8xq757zzn3zikj0w7pr")))) + ("urw35vf-vf" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/vf/urw35vf/times")) + (revision %texlive-revision))) + (file-name (string-append name "-urw35vf-vf-" version "-checkout")) + (sha256 + (base32 + "05mppwxd4c5x0yw50gca726f0ylc1rk8jf0jjkrriixq6rnw03di")))) + ("times-tex" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/times")) + (revision %texlive-revision))) + (file-name (string-append name "-tex-" version "-checkout")) + (sha256 + (base32 + "1gmd0x7c3vkvfzgmrsp4866rcdbyimfk3bjr91zaadc41r1i8xrp")))) + ("dvips" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/dvips/times/")) + (revision %texlive-revision))) + (file-name (string-append name "-dvips-" version "-checkout")) + (sha256 + (base32 + "1fvqpgqi7bp2q76nf5kmlhsdijxw65arqfy3ax3djwih3yg12mp0")))) + ("fonts-map" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/map/dvips/times/")) + (revision %texlive-revision))) + (file-name (string-append name "-fonts-map-" version "-checkout")) + (sha256 + (base32 + "12f00gzs2zgllkm59qdhw2xxj7lvg3p256232f1l275z3pldfqqi")))))) + (home-page "https://ctan.org/pkg/urw-base35") + (synopsis "URW Base 35 font pack for LaTeX") + (description + "This package provides a drop-in replacements for the Times font from +Adobe's basic set.") + ;; No license version specified. + (license license:gpl3+))) + (define-public texlive-fonts-rsfs (package (name "texlive-fonts-rsfs") From 96f5377d5e0fe3481bbcc3d3e0e8d496c3ea5a24 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 1 Mar 2019 19:21:18 +0100 Subject: [PATCH 011/111] gnu: texlive-fonts-knuth-lib: Build all tfm files. * gnu/packages/tex.scm (texlive-fonts-knuth-lib)[arguments]: Build all tfm files in "build" phase. --- gnu/packages/tex.scm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index bb76c48b66..738d49d7c7 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -892,13 +892,17 @@ (define-public texlive-fonts-knuth-lib (string-append (getcwd) ":" mf "/share/texmf-dist/metafont/base"))) (mkdir "build") - (invoke "mf" "-progname=mf" - "-output-directory=build" - (string-append "\\" - "mode:=ljfour; " - "mag:=1; " - "batchmode; " - "input manfnt")))) + (for-each (lambda (font) + (format #t "building font ~a\n" font) + (invoke "mf" "-progname=mf" + "-output-directory=build" + (string-append "\\" + "mode:=ljfour; " + "mag:=1; " + "batchmode; " + "input " font))) + (find-files "." "(manfnt|logo.+)\\.mf$")) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) From 6072f82a1e6b3747d1fdc5a3a8d332d64a3e1b11 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 1 Mar 2019 23:23:09 +0100 Subject: [PATCH 012/111] gnu: Add texlive-latex-mflogo. * gnu/packages/tex.scm (texlive-latex-mflogo): New variable. --- gnu/packages/tex.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 738d49d7c7..a544c7d5fa 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1001,6 +1001,27 @@ (define-public texlive-fonts-latex symbol fonts.") (license license:lppl1.2+))) +(define-public texlive-latex-mflogo + (package + (name "texlive-latex-mflogo") + (version (number->string %texlive-revision)) + (source + (origin + (method svn-fetch) + (uri (texlive-ref "latex" "mflogo")) + (sha256 + (base32 + "15i2ib6nvhf31g1b92c6njf7n0g29znlq7hbfp9ii7qabhcwwvrj")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/mflogo")) + (home-page "http://www.ctan.org/pkg/mflogo") + (synopsis "LaTeX support for Metafont logo fonts") + (description + "This package provides LaTeX and font definition files to access the +Knuthian mflogo fonts described in The Metafontbook and to typeset Metafont +logos in LaTeX documents.") + (license license:lppl))) + (define-public texlive-fonts-amsfonts (package (name "texlive-fonts-amsfonts") From 01cf8c89de67aaa0344cef1ef2892b345635988a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 1 Mar 2019 23:23:29 +0100 Subject: [PATCH 013/111] gnu: Add texlive-fonts-mflogo-font. * gnu/packages/tex.scm (texlive-fonts-mflogo-font): New variable. --- gnu/packages/tex.scm | 71 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index a544c7d5fa..b7425b5a5f 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1022,6 +1022,77 @@ (define-public texlive-latex-mflogo logos in LaTeX documents.") (license license:lppl))) +(define-public texlive-fonts-mflogo-font + (package + (name "texlive-fonts-mflogo-font") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/type1/hoekwater/mflogo-font")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "09fsxfpiyxjljkrb52b197728bjnkcnv3bdwm4hl6hf23mbmqadf")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils) + (ice-9 match)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 match)) + (let ((root (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/")) + (pkgs '(("source" . "fonts/type1/hoekwater/mflogo-font") + ("afm" . "fonts/afm/hoekwater/mflogo-font") + ("fonts-map" . "fonts/map/dvips/mflogo-font")))) + (for-each (match-lambda + ((pkg . dir) + (let ((target (string-append root dir))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs pkg) + target)))) + pkgs) + #t)))) + (native-inputs + `(("afm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/afm/hoekwater/mflogo-font")) + (revision %texlive-revision))) + (file-name (string-append name "-afm-" version "-checkout")) + (sha256 + (base32 + "0bx1mfhhzsk9gj1pha36q2rk0jd0y285qm62zgvdvzzzlfnk8sdb")))) + ("fonts-map" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/map/dvips/mflogo-font/")) + (revision %texlive-revision))) + (file-name (string-append name "-fonts-map-" version "-checkout")) + (sha256 + (base32 + "044xrrpl8hnvj55cx2ql1ib1bcyr33nzanx5nkwxpai7fb7pg4y6")))))) + (home-page "https://www.ctan.org/pkg/mflogo-font") + (synopsis "Metafont logo font") + (description + "These fonts were created in METAFONT by Knuth, for his own publications. +At some stage, the letters P and S were added, so that the METAPOST logo could +also be expressed. The fonts were originally issued (of course) as METAFONT +source; they have since been autotraced and reissued in Adobe Type 1 format by +Taco Hoekwater.") + (license license:knuth))) + (define-public texlive-fonts-amsfonts (package (name "texlive-fonts-amsfonts") From f2d1f060c5d10407007bade4c47e41a92db5edf9 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 1 Mar 2019 23:24:10 +0100 Subject: [PATCH 014/111] gnu: Add texlive-fonts-adobe-palatino. * gnu/packages/tex.scm (texlive-fonts-adobe-palatino): New variable. --- gnu/packages/tex.scm | 163 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index b7425b5a5f..8854a93abc 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -3901,6 +3901,169 @@ (define-public texlive-fonts-adobe-times ;; No license version specified. (license license:gpl3+))) +(define-public texlive-fonts-adobe-palatino + (package + (name "texlive-fonts-adobe-palatino") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/type1/urw/palatino/")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "18dw5260c6fy7acxaqwrg3hw04kg63ijq4lkn56q5pa2g6nyylrp")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils) + (ice-9 match)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 match)) + (let ((root (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/")) + (pkgs '(("source" . "fonts/type1/urw/palatino") + + ("palatino-afm" . "fonts/afm/adobe/palatino") + ("palatino-tfm" . "fonts/tfm/adobe/palatino") + ("palatino-vf" . "fonts/vf/adobe/palatino") + + ("urw-afm" . "fonts/afm/urw/palatino") + ("urw35vf-tfm" . "fonts/tfm/urw35vf/palatino") + ("urw35vf-vf" . "fonts/vf/urw35vf/palatino") + + ("palatino-tex" . "tex/latex/palatino") + ("dvips" . "dvips/palatino") + ("fonts-map" . "fonts/map/dvips/palatino")))) + (for-each (match-lambda + ((pkg . dir) + (let ((target (string-append root dir))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs pkg) + target)))) + pkgs) + #t)))) + (native-inputs + `(("palatino-afm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/afm/adobe/palatino")) + (revision %texlive-revision))) + (file-name (string-append name "-afm-" version "-checkout")) + (sha256 + (base32 + "0pxizay730cx7rb9y5bqq9dn1zxx3arc33rmdsn7l29pc51flmmi")))) + ("palatino-tfm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/tfm/adobe/palatino")) + (revision %texlive-revision))) + (file-name (string-append name "-tfm-" version "-checkout")) + (sha256 + (base32 + "1w1vm0sk9kpsy14yhyf1v1q3c6b97cgbba74g578bcwjlh810mg0")))) + ("palatino-vf" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/vf/adobe/palatino")) + (revision %texlive-revision))) + (file-name (string-append name "-vf-" version "-checkout")) + (sha256 + (base32 + "1maqfis8hpybcn9lmm8r2b1g56620lfpsncg0742c3kkjd6dh97h")))) + ("urw-afm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/afm/urw/palatino")) + (revision %texlive-revision))) + (file-name (string-append name "-urw-afm-" version "-checkout")) + (sha256 + (base32 + "0gk0xwy1fs2si5kb1j3dzgm52c8sagv32gd9dmw88m7sgh5qkd87")))) + ("urw35vf-tfm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/tfm/urw35vf/palatino")) + (revision %texlive-revision))) + (file-name (string-append name "-urw35vf-tfm-" version "-checkout")) + (sha256 + (base32 + "19aq3xwfg7vkf1qzjdxgcvcdqwpvpavq3l25y64xni72qx0kmppz")))) + ("urw35vf-vf" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/vf/urw35vf/palatino")) + (revision %texlive-revision))) + (file-name (string-append name "-urw35vf-vf-" version "-checkout")) + (sha256 + (base32 + "1lkn4p6zimrs0ah6mxsang4bicp8j7xzl016529a3f168an7mdmj")))) + ("palatino-tex" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/palatino")) + (revision %texlive-revision))) + (file-name (string-append name "-tex-" version "-checkout")) + (sha256 + (base32 + "0ng9w7i0p1nb51amla32jj86vx6p84m6qc7asam3g4x8w5jf7s27")))) + ("dvips" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/dvips/palatino/")) + (revision %texlive-revision))) + (file-name (string-append name "-dvips-" version "-checkout")) + (sha256 + (base32 + "1pdbkfmhx4kk3brh5lg6fyl9ad2kbjmkrhgcx84klnlhq01mfdhb")))) + ("fonts-map" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/map/dvips/palatino/")) + (revision %texlive-revision))) + (file-name (string-append name "-fonts-map-" version "-checkout")) + (sha256 + (base32 + "0rg13hyp652hp3gnrj5pbyb84zkqmyi1qnm8c6spcyaq8pm06l0d")))))) + (home-page "https://ctan.org/pkg/urw-base35") + (synopsis "URW Base 35 font pack for LaTeX") + (description + "This package provides a drop-in replacements for the Palatino font from +Adobe's basic set.") + ;; No license version specified. + (license license:gpl3+))) + (define-public texlive-fonts-rsfs (package (name "texlive-fonts-rsfs") From 4628315bfbb3393b287cbe1c8222a2d8b4c88adb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 1 Mar 2019 23:24:29 +0100 Subject: [PATCH 015/111] gnu: Add texlive-fonts-adobe-zapfding. * gnu/packages/tex.scm (texlive-fonts-adobe-zapfding): New variable. --- gnu/packages/tex.scm | 135 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 8854a93abc..165465b8bb 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -4064,6 +4064,141 @@ (define-public texlive-fonts-adobe-palatino ;; No license version specified. (license license:gpl3+))) +(define-public texlive-fonts-adobe-zapfding + (package + (name "texlive-fonts-adobe-zapfding") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/type1/urw/zapfding/")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1sp3jblg3khp0yj121blvhph6ib09919kyrsk5x2lg258yypqyis")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils) + (ice-9 match)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 match)) + (let ((root (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/")) + (pkgs '(("source" . "fonts/type1/urw/zapfding") + ("zapf-afm" . "fonts/afm/adobe/zapfding") + ("zapf-tfm" . "fonts/tfm/adobe/zapfding") + ("urw-afm" . "fonts/afm/urw/zapfding") + ("urw35vf-tfm" . "fonts/tfm/urw35vf/zapfding") + + ("zapf-tex" . "tex/latex/zapfding") + ("dvips" . "dvips/zapfding") + ("fonts-map" . "fonts/map/dvips/zapfding")))) + (for-each (match-lambda + ((pkg . dir) + (let ((target (string-append root dir))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs pkg) + target)))) + pkgs) + #t)))) + (native-inputs + `(("zapf-afm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/afm/adobe/zapfding")) + (revision %texlive-revision))) + (file-name (string-append name "-afm-" version "-checkout")) + (sha256 + (base32 + "0qvl4w1bfcpiakkd8rvkism46qnvzj9w7x4r8z9m0y7mspbkblyr")))) + ("zapf-tfm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/tfm/adobe/zapfding")) + (revision %texlive-revision))) + (file-name (string-append name "-tfm-" version "-checkout")) + (sha256 + (base32 + "1i8mh9xsl8l4cgsg3nl4ha9q6m55j122riclaxsvkc5ka83432qm")))) + ("urw-afm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/afm/urw/zapfding")) + (revision %texlive-revision))) + (file-name (string-append name "-urw-afm-" version "-checkout")) + (sha256 + (base32 + "0m4qndqh7ji723ff82c5c1q8ziqvblbaip7vx05vnl15fqbsnfx1")))) + ("urw35vf-tfm" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/tfm/urw35vf/zapfding")) + (revision %texlive-revision))) + (file-name (string-append name "-urw35vf-tfm-" version "-checkout")) + (sha256 + (base32 + "167g2x6mpjfqh0w1fhjbw14qcx6ridrj2zm1bd8bi0l2d7phj28m")))) + ("zapf-tex" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/zapfding")) + (revision %texlive-revision))) + (file-name (string-append name "-tex-" version "-checkout")) + (sha256 + (base32 + "0hp7i8f6nbrg7irrwc8fd7n1hrzjysa84d6iyivwlc65v9p7lmd0")))) + ("dvips" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/dvips/zapfding/")) + (revision %texlive-revision))) + (file-name (string-append name "-dvips-" version "-checkout")) + (sha256 + (base32 + "1f18sc4qwxykd786zhn6szcrycqvpvfhlcim71aamxmwghakd7fa")))) + ("fonts-map" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/map/dvips/zapfding/")) + (revision %texlive-revision))) + (file-name (string-append name "-fonts-map-" version "-checkout")) + (sha256 + (base32 + "17kwxmdrgz2fb072hx57a3pidcrhbgayphx11zyld2hv9149pkyl")))))) + (home-page "https://ctan.org/pkg/urw-base35") + (synopsis "URW Base 35 font pack for LaTeX") + (description + "This package provides a drop-in replacements for the Zapfding font from +Adobe's basic set.") + ;; No license version specified. + (license license:gpl3+))) + (define-public texlive-fonts-rsfs (package (name "texlive-fonts-rsfs") From 4f2ee8e285715998bf097386287e3f4efc0a94b7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 1 Mar 2019 23:25:20 +0100 Subject: [PATCH 016/111] gnu: teximpatient: Build with texlive-union. * gnu/packages/tex.scm (teximpatient)[source]: Use url-fetch/tarbomb, so that we can... [arguments]: ...remove the custom "unpack" phase; disable tests instead of deleting the "check" phase; add phase "fix-packaging-error". [native-inputs]: Replace texlive with a texlive-union containing texlive-latex-amsfonts, texlive-fonts-amsfonts, texlive-fonts-adobe-palatino, texlive-fonts-adobe-zapfding, texlive-fonts-knuth-lib, texlive-fonts-mflogo-font, and texlive-generic-pdftex. --- gnu/packages/tex.scm | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 165465b8bb..85bb79087f 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -5493,13 +5493,12 @@ (define-public texmaker develop documents with LaTeX, in a single application.") (license license:gpl2+))) - (define-public teximpatient (package (name "teximpatient") (version "2.4") (source (origin - (method url-fetch) + (method url-fetch/tarbomb) (uri (string-append "mirror://gnu/" name "/" name "-" version ".tar.gz")) (sha256 @@ -5507,25 +5506,28 @@ (define-public teximpatient "0h56w22d99dh4fgld4ssik8ggnmhmrrbnrn1lnxi1zr0miphn1sd")))) (build-system gnu-build-system) (arguments - `(#:phases + `(#:tests? #f ; there are none + #:phases (modify-phases %standard-phases - (delete 'check) - ;; Unfortunately some mistakes have been made in packaging. - ;; Work around them here ... - (replace 'unpack - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((srcdir "teximpatient-2.4")) - (system* "tar" "-xzf" (assoc-ref inputs "source") - (string-append "--one-top-level=" srcdir)) - (delete-file (string-append srcdir "/book.pdf")) - (install-file (car - (find-files - (assoc-ref inputs "automake") - "^install-sh$")) - srcdir) - (chdir srcdir))))))) + (add-after 'unpack 'fix-packaging-error + (lambda* (#:key inputs #:allow-other-keys) + ;; This file should have been part of the tarball. + (install-file (car + (find-files + (assoc-ref inputs "automake") + "^install-sh$")) + ".") + ;; Remove generated file. + (delete-file "book.pdf") + #t))))) (native-inputs - `(("texlive" ,texlive) + `(("texlive" ,(texlive-union (list texlive-latex-amsfonts + texlive-fonts-amsfonts + texlive-fonts-adobe-palatino + texlive-fonts-adobe-zapfding + texlive-fonts-knuth-lib + texlive-fonts-mflogo-font + texlive-generic-pdftex))) ("automake" ,automake))) (home-page "https://www.gnu.org/software/teximpatient/") (synopsis "Book on TeX, plain TeX and Eplain") From 38ab167fe73cc543279f6d6d6f87fd62dc03ec58 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Mar 2019 15:23:37 +0100 Subject: [PATCH 017/111] gnu: perl-net-dns: Update to 1.19. * gnu/packages/networking.scm (perl-net-dns): Update to 1.19. --- gnu/packages/networking.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index d43bf619d9..f7477230a6 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -912,7 +912,7 @@ (define-public perl-data-validate-ip (define-public perl-net-dns (package (name "perl-net-dns") - (version "1.18") + (version "1.19") (source (origin (method url-fetch) @@ -923,8 +923,7 @@ (define-public perl-net-dns (string-append "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-" version ".tar.gz"))) (sha256 - (base32 - "1lx902cbvlfl63bqfdrnyavmfwbjvrfdnwgdc1dgs1wpzja19kjj")))) + (base32 "1myc23vz0m42yyg8iw7bf1pdrmx9ql6fhl2vwk1vwf55v6yphqi0")))) (build-system perl-build-system) (inputs `(("perl-digest-hmac" ,perl-digest-hmac))) From 23e3094b87f80a810f25f76a8f8c2f1c52344933 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 1 Mar 2019 18:42:27 +0100 Subject: [PATCH 018/111] gnu: opensmtpd: Remove unused arguments. * gnu/packages/mail.scm (opensmtpd)[arguments]: Remove unused procedure arguments to 'patch-FHS-file-names' phase. --- gnu/packages/mail.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index a9c8b9f4e6..90bd79ae3c 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -2017,7 +2017,7 @@ (define-public opensmtpd (modify-phases %standard-phases ;; Fix some incorrectly hard-coded external tool file names. (add-after 'unpack 'patch-FHS-file-names - (lambda* (#:key inputs #:allow-other-keys) + (lambda _ (substitute* "smtpd/smtpctl.c" (("/bin/cat") (which "cat")) (("/bin/sh") (which "sh"))) From 4fdd4d33125099fa2b5e5ea98a0c2bc16451b344 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 1 Mar 2019 23:50:54 +0100 Subject: [PATCH 019/111] gnu: bundler: Update to 1.17.3. * gnu/packaqes/ruby.scm (bundler): Update to 1.17.3. --- gnu/packages/ruby.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 6da7109d14..a81535aade 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -645,13 +645,13 @@ (define-public ruby-rspec-2 (define-public bundler (package (name "bundler") - (version "1.15.4") + (version "1.17.3") (source (origin (method url-fetch) (uri (rubygems-uri "bundler" version)) (sha256 (base32 - "0wl4r7wbwdq68xidfv4hhzfb1spb6lmhbspwlzrg4pf1l6ipxlgs")))) + "0ln3gnk7cls81gwsbxvrmlidsfd78s6b2hzlm4d4a9wbaidzfjxw")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; avoid dependency cycles From 7a0479bb7b8535acad2bf36c7a0b0498a1313422 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 1 Mar 2019 19:30:51 -0500 Subject: [PATCH 020/111] gnu: Add WireGuard. * gnu/packages/vpn.scm (wireguard): New variable. --- gnu/packages/vpn.scm | 66 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index e135fdef17..f15b111a92 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2018 Pierre Langlois ;;; Copyright © 2018 Meiyo Peng +;;; Copyright © 2019 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -449,3 +450,68 @@ (define-public badvpn ;; This project contains a bundled lwIP. lwIP is also released under the ;; 3-clause BSD license. (license license:bsd-3))) + +(define-public wireguard + (package + (name "wireguard") + (version "0.0.20190123") + (source (origin + (method url-fetch) + (uri (string-append "https://git.zx2c4.com/WireGuard/snapshot/" + "WireGuard-" version ".tar.xz")) + (sha256 + (base32 + "16yzzy4i0z2zslmyr3kppkvkrxryzwdil6v270w9w5mg65v3rlgd")))) + (build-system gnu-build-system) + (outputs '("out" ; The WireGuard userspace tools + "kernel-patch")) ; A patch to build Linux with WireGuard support + (arguments + `(#:make-flags + (list "CC=gcc" + "WITH_BASHCOMPLETION=yes" + ;; Build and install the helper script wg-quick(8). + "WITH_WGQUICK=yes" + (string-append "PREFIX=" (assoc-ref %outputs "out")) + (string-append "SYSCONFDIR=" (assoc-ref %outputs "out") "/etc")) + #:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 popen) + (ice-9 textual-ports)) + #:phases + (modify-phases %standard-phases + ;; There is no ./configure script. + (delete 'configure) + ;; Until WireGuard is added to the upstream Linux kernel, it is + ;; distributed as a kernel patch generated by this script. + (add-after 'patch-source-shebangs 'make-patch + (lambda* (#:key outputs #:allow-other-keys) + (let* ((output (string-append (assoc-ref outputs "kernel-patch") + "/wireguard.patch")) + (patch-builder "./contrib/kernel-tree/create-patch.sh") + (port (open-input-pipe patch-builder)) + (str (get-string-all port))) + (close-pipe port) + (mkdir-p (dirname output)) + (call-with-output-file output + (lambda (port) + (format port "~a" str)))) + #t)) + (add-after 'make-patch 'chdir + (lambda _ + (chdir "src/tools") + #t)) + ;; Otherwise the 'install-license-file' phase installs nothing. + ;; + (add-after 'install 'reset-cwd + (lambda _ + (chdir "../..") + #t))))) + (inputs + `(("libmnl" ,libmnl))) + (home-page "https://www.wireguard.com/") + (synopsis "Tools for configuring WireGuard") + (description "This package provides the userspace tools for setting and +retrieving configuration of WireGuard network tunnel interfaces, and a patch +that can be applied to a Linux kernel source tree in order to build it with +WireGuard support.") + (license license:gpl2))) From b8f924274b1e522e56145b2a4bed844a636aa0c7 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sat, 2 Mar 2019 16:15:12 +0100 Subject: [PATCH 021/111] gnu: emacs-desktop-environment: Update to 20190301. * gnu/packages/emacs-xyz.scm (emacs-desktop-environment): Update to 20190301. --- gnu/packages/emacs-xyz.scm | 39 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 36cc005549..86dbfe6d53 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -11161,29 +11161,30 @@ (define-public emacs-esh-autosuggest (license license:gpl3+))) (define-public emacs-desktop-environment - (package - (name "emacs-desktop-environment") - (version "0.2.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/DamienCassou/desktop-environment.git") - (commit (string-append "v" version)))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r")))) - (build-system emacs-build-system) - (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment") - (synopsis "Control your GNU/Linux desktop environment from Emacs") - (description - "This package helps you control your GNU/Linux desktop from Emacs. + (let ((commit "a9eba14f2b5b8070f78dca839ca8259736e346a6")) + (package + (name "emacs-desktop-environment") + (version (git-version "0.2.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.petton.fr/DamienCassou/desktop-environment") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0x73x5hy7w55jrzy3xvqhk90rrsznmxjqvsvwhh21qznv5w269xz")))) + (build-system emacs-build-system) + (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment") + (synopsis "Control your GNU/Linux desktop environment from Emacs") + (description + "This package helps you control your GNU/Linux desktop from Emacs. With @code{desktop-environment}, you can control the brightness and volume as well as take screenshots and lock your screen. The package depends on the availability of shell commands to do the hard work for us. These commands can be changed by customizing the appropriate variables.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-org-caldav (package From b17c892320cf67148da5a52b2394dd8c3a0703c6 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 2 Mar 2019 18:39:49 +0100 Subject: [PATCH 022/111] gnu: lyx: Update to 2.3.2-2. * gnu/packages/tex.scm (lyx): Update to 2.3.2-2. [source]: Remove patch. [arguments]: Adjust configure flags; add build phase "fix-compilation-with-boost-1.69"; remove phase "patch-installer"; create missing file in phase "setenv-check". [inputs]: Add mythes. [propagated-inputs]: Replace texlive with a texlive-union containing texlive-fonts-ec. --- gnu/packages/tex.scm | 79 ++++++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 36 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 85bb79087f..f7f8fc3296 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -5539,20 +5539,19 @@ (define-public teximpatient (define-public lyx (package (name "lyx") - (version "2.2.3") + (version "2.3.2-2") (source (origin - (method url-fetch) - (uri (string-append "http://ftp.lyx.org/pub/lyx/stable/2.2.x/" - name "-" version ".tar.gz")) - (sha256 - (base32 - "0xvaz0i371nn2ndinc0d3ywj76ivb62649a4sdgwbivisiahd2fj")) - (patches (search-patches "lyx-2.2.3-fix-test.patch")) - (modules '((guix build utils))) - (snippet - '(begin - (delete-file-recursively "3rdparty") - #t)))) + (method url-fetch) + (uri (string-append "http://ftp.lyx.org/pub/lyx/stable/2.3.x/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0vr0qwis6rhind6azfa270hqxci7rj8qb1kk5x6lm80mc34nvrqi")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file-recursively "3rdparty") + #t)))) (build-system cmake-build-system) (arguments `(#:configure-flags `("-DLYX_USE_QT=QT5" @@ -5562,56 +5561,64 @@ (define-public lyx ,(string-append "-DLYX_INSTALL_PREFIX=" (assoc-ref %outputs "out") ;; Exact name and level is necessary. - "/lyx2.2")) + "/lyx2.3")) #:phases (modify-phases %standard-phases + ;; See ;; https://www.lyx.org/trac/changeset/3a123b90af838b08680471d87170c38e56787df9/lyxgit + (add-after 'unpack 'fix-compilation-with-boost-1.69 + (lambda _ + (substitute* "src/support/FileName.cpp" + (("^template struct boost::detail::crc_table_t.*") "")) + #t)) (add-after 'unpack 'patch-python (lambda* (#:key inputs #:allow-other-keys) (substitute* '("src/support/os.cpp") - (("\"python ") - (string-append "\"" - (assoc-ref inputs "python-2") - "/bin/python "))) - #t)) - (add-after 'patch-python 'patch-installer - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "CMakeLists.txt" - (("/usr/local/man/man1") - (string-append (assoc-ref outputs "out") - "/share/man/man1"))) + (("\"python ") + (string-append "\"" + (assoc-ref inputs "python") + "/bin/python "))) #t)) (add-after 'patch-python 'patch-desktop-file (lambda* (#:key outputs #:allow-other-keys) (substitute* "lib/lyx.desktop.in" - (("Exec=") - (string-append "Exec=" - (assoc-ref outputs "out") - "/"))) + (("Exec=") + (string-append "Exec=" + (assoc-ref outputs "out") + "/"))) #t)) (add-before 'check 'setenv-check (lambda _ - (setenv "LYX_DIR_22x" (string-append (getcwd) "/../lyx-" + ;; Create missing file that would cause tests to fail. + (with-output-to-file (string-append "../lyx-" + ,version + "/src/tests/check_layout.cmake") + (const #t)) + (setenv "LYX_DIR_23x" (string-append (getcwd) "/../lyx-" ,version "/lib")) #t)) (add-after 'install 'install-symlinks (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (mkdir-p (string-append out "/bin")) - (symlink "../lyx2.2/bin/lyx2.2" - (string-append out "/bin/lyx2.2")) + (symlink "../lyx2.3/bin/lyx2.3" + (string-append out "/bin/lyx2.3")) #t)))))) (inputs `(("boost" ,boost) - ("hunspell" ,hunspell) ; Note: Could also use aspell instead. + ("hunspell" ,hunspell) ; Note: Could also use aspell instead. ("libx11" ,libx11) - ("python-2" ,python-2) + ("mythes" ,mythes) + ("python" ,python-2) ("qtbase" ,qtbase) ("qtsvg" ,qtsvg) ("zlib" ,zlib))) (propagated-inputs - `(("texlive" ,texlive))) ; article.cls is in texmf-dist. + `(("texlive" ,(texlive-union (list texlive-fonts-ec))))) + ;; FIXME: Python 3.7.0 cannot be used because the test infrastructure + ;; "requires a bytes-like object, not 'str'". This may be fixed with + ;; upgrades to Python. (native-inputs - `(("python-2" ,python-2) + `(("python" ,python-2) ("pkg-config" ,pkg-config) ("bc" ,bc))) (home-page "https://www.lyx.org/") From e5a0348962b9dbf222c3a96c3fad7c460dd5a5ca Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 2 Mar 2019 22:15:26 +0200 Subject: [PATCH 023/111] gnu: lyx: Parameterize more version variables. * gnu/packages/tex.scm (lyx)[source]: Parameterize the version string. [arguments]: Parameterize version variables in 'configre-flags and in the custom phases 'setenv-check and 'install-symlink. --- gnu/packages/tex.scm | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index f7f8fc3296..3248076818 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Roel Janssen -;;; Copyright © 2016, 2018 Efraim Flashner +;;; Copyright © 2016, 2018, 2019 Efraim Flashner ;;; Copyright © 2016 Federico Beffa ;;; Copyright © 2016 Thomas Danckaert ;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus @@ -5542,7 +5542,8 @@ (define-public lyx (version "2.3.2-2") (source (origin (method url-fetch) - (uri (string-append "http://ftp.lyx.org/pub/lyx/stable/2.3.x/" + (uri (string-append "http://ftp.lyx.org/pub/lyx/stable/" + (version-major+minor version) ".x/" name "-" version ".tar.gz")) (sha256 (base32 @@ -5561,7 +5562,7 @@ (define-public lyx ,(string-append "-DLYX_INSTALL_PREFIX=" (assoc-ref %outputs "out") ;; Exact name and level is necessary. - "/lyx2.3")) + "/lyx" ,(version-major+minor version))) #:phases (modify-phases %standard-phases ;; See ;; https://www.lyx.org/trac/changeset/3a123b90af838b08680471d87170c38e56787df9/lyxgit @@ -5593,15 +5594,19 @@ (define-public lyx ,version "/src/tests/check_layout.cmake") (const #t)) - (setenv "LYX_DIR_23x" (string-append (getcwd) "/../lyx-" - ,version "/lib")) + (setenv (string-append "LYX_DIR_" + (string-join + (string-split + ,(version-major+minor version) #\-)) "x") + (string-append (getcwd) "/../lyx-" ,version "/lib")) #t)) (add-after 'install 'install-symlinks (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (mkdir-p (string-append out "/bin")) - (symlink "../lyx2.3/bin/lyx2.3" - (string-append out "/bin/lyx2.3")) + (symlink (string-append "../lyx" ,(version-major+minor version) + "/bin/lyx" ,(version-major+minor version)) + (string-append out "/bin/lyx" ,(version-major+minor version))) #t)))))) (inputs `(("boost" ,boost) From c335df433fe890612521e51b2a12f313c5ba17c5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 2 Mar 2019 22:04:53 +0100 Subject: [PATCH 024/111] gnu: pigx-chipseq: Update to 0.0.31. * gnu/packages/bioinformatics.scm (pigx-chipseq): Update to 0.0.31. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 23976ceda0..982cb7a984 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -12902,7 +12902,7 @@ (define-public pigx-rnaseq (define-public pigx-chipseq (package (name "pigx-chipseq") - (version "0.0.21") + (version "0.0.31") (source (origin (method url-fetch) (uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/" @@ -12910,7 +12910,7 @@ (define-public pigx-chipseq "/pigx_chipseq-" version ".tar.gz")) (sha256 (base32 - "0psgdzlnx5xwhlhpss5yvmnl7yv19y9742l97m04f7awd8w74gxs")))) + "0l3vd9xwqzap3mmyj8xwqp84kj7scbq308diqnwg2albphl75xqs")))) (build-system gnu-build-system) ;; parts of the tests rely on access to the network (arguments '(#:tests? #f)) From 966c56f8c6a458e1dce189c92f16d31aabe4ab66 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Mar 2019 15:07:10 +0100 Subject: [PATCH 025/111] gnu: talloc: Update to 2.1.16. * gnu/packages/samba.scm (talloc): Update to 2.1.16. [native-inputs]: Add WHICH. [inputs]: Change from PYTHON-2 to PYTHON. (talloc/static)[arguments]: Adjust GCC command line. --- gnu/packages/samba.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 5ddc8748f3..346ec7c142 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -33,6 +33,7 @@ (define-module (gnu packages samba) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages backup) + #:use-module (gnu packages base) #:use-module (gnu packages check) #:use-module (gnu packages crypto) #:use-module (gnu packages cups) @@ -240,14 +241,14 @@ (define-public samba (define-public talloc (package (name "talloc") - (version "2.1.14") + (version "2.1.16") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/talloc/talloc-" version ".tar.gz")) (sha256 (base32 - "1kk76dyav41ip7ddbbf04yfydb4jvywzi2ps0z2vla56aqkn11di")))) + "1aajda08yf7njgvg6r21ccxlvkarb9bwvf4jqh8yn3871a1zcnqr")))) (build-system gnu-build-system) (arguments '(#:phases @@ -260,8 +261,10 @@ (define-public talloc (let ((out (assoc-ref outputs "out"))) (invoke "./configure" (string-append "--prefix=" out)))))))) + (native-inputs + `(("which" ,which))) (inputs - `(("python" ,python-2))) + `(("python" ,python))) (home-page "https://talloc.samba.org") (synopsis "Hierarchical, reference counted memory pool system") (description @@ -288,7 +291,8 @@ (define-public talloc/static (replace 'build (lambda _ (invoke "gcc" "-c" "-Ibin/default" "-I" "lib/replace" - "-I." "-Wall" "-g" "talloc.c") + "-I." "-Wall" "-g" "-D__STDC_WANT_LIB_EXT1__=1" + "talloc.c") (invoke "ar" "rc" "libtalloc.a" "talloc.o"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) From 1ca20daa13589d932847f57040615a08bbd6c14e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Mar 2019 15:07:34 +0100 Subject: [PATCH 026/111] gnu: tevent: Update to 0.9.39. * gnu/packages/samba.scm (tevent): Update to 0.9.39. [native-inputs]: Add WHICH. Change PYTHON-2 to PYTHON. --- gnu/packages/samba.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 346ec7c142..44519dde57 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -308,14 +308,14 @@ (define-public talloc/static (define-public tevent (package (name "tevent") - (version "0.9.37") + (version "0.9.39") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/tevent/tevent-" version ".tar.gz")) (sha256 (base32 - "1q77vbjic2bb79li2a54ffscnrnwwww55fbpry2kgh7acpnlb0qn")))) + "1rnln76ngd2b8lgqvfa9iscy6jizwycj85nfp9zd46b1c760z3gn")))) (build-system gnu-build-system) (arguments '(#:phases @@ -329,7 +329,8 @@ (define-public tevent "--bundled-libraries=NONE"))))))) (native-inputs `(("pkg-config" ,pkg-config) - ("python" ,python-2))) + ("python" ,python) + ("which" ,which))) (propagated-inputs `(("talloc" ,talloc))) ; required by tevent.pc (synopsis "Event system library") From 97dcedbd2ad20da2fb8a4bc36212d2690cb7abd7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Mar 2019 15:11:07 +0100 Subject: [PATCH 027/111] gnu: tdb: Update to 1.3.18. * gnu/packages/databases.scm (tdb): Update to 1.3.18. [native-inputs]: Add WHICH. Change PYTHON-2 to PYTHON. --- gnu/packages/databases.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 9c003cbdb7..d913d72874 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1030,14 +1030,14 @@ (define-public sqlcrush (define-public tdb (package (name "tdb") - (version "1.3.16") + (version "1.3.18") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/tdb/tdb-" version ".tar.gz")) (sha256 (base32 - "1ibcz466xwk1x6xvzlgzd5va4lyrjzm3rnjak29kkwk7cmhw4gva")))) + "1drnsdh1w0px35r0y7l7g59yvyr67mvcsdrli4wab0mwi07b8mn1")))) (build-system gnu-build-system) (arguments '(#:phases @@ -1054,7 +1054,8 @@ (define-public tdb ;; ("docbook-xsl" ,docbook-xsl) ;; ("libxml2" ,libxml2) ;; ("libxslt" ,libxslt) - ("python" ,python-2))) ;for the Waf build system + ("python" ,python) ;for the Waf build system + ("which" ,which))) (home-page "https://tdb.samba.org/") (synopsis "Trivial database") (description From 4422a8c60eef95b2460b462c1493d74433e29d5c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Mar 2019 15:05:05 +0100 Subject: [PATCH 028/111] gnu: ldb: Update to 1.6.2. * gnu/packages/samba.scm (ldb): Update to 1.6.2. [native-inputs]: Change from PYTHON-2 to PYTHON. Add WHICH. --- gnu/packages/samba.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 44519dde57..d90d12e665 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -344,14 +344,14 @@ (define-public tevent (define-public ldb (package (name "ldb") - (version "1.4.3") + (version "1.6.2") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/ldb/ldb-" version ".tar.gz")) (sha256 (base32 - "07vacwr941y2x31yl9knsr2rpffz5pqabvqds6sbyngqxy4r785c")) + "1kiwlra6nfkb5n870k2db41jrm59bq9lxqmil4v7ignblgsdfdwb")) (modules '((guix build utils))) (snippet '(begin @@ -381,7 +381,8 @@ (define-public ldb (native-inputs `(("cmocka" ,cmocka) ("pkg-config" ,pkg-config) - ("python" ,python-2))) + ("python" ,python) + ("which" ,which))) (propagated-inputs ;; ldb.pc refers to all these. `(("talloc" ,talloc) From e99e9e6f21d16d19c2aac57bbe09b2a3ac9f30bb Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Mar 2019 15:37:39 +0100 Subject: [PATCH 029/111] gnu: WebKitGTK: Update to 2.22.7. * gnu/packages/webkit.scm (webkitgtk-2.22): Update to 2.22.7. --- gnu/packages/webkit.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index 91c6c7d02a..7a4818609e 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -168,14 +168,14 @@ (define-public webkitgtk (define-public webkitgtk-2.22 (package/inherit webkitgtk (name "webkitgtk") - (version "2.22.6") + (version "2.22.7") (source (origin (method url-fetch) (uri (string-append "https://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "0ny8azipr2dmdk79qrf4hvb2p4k5b3af38szjhmhg8mh1nfdp46z")))) + "1zrhmz90sn30zgyflj4i86fsscws10xsi2kfs87nj2nd0pbggrjb")))) (native-inputs `(("gcc" ,gcc-7) ; webkitgtk-2.22 requires gcc-6 or newer ,@(package-native-inputs webkitgtk))) From 794e0664bd634a42e9e7aac6ac84f93bcfaa9fbe Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Mar 2019 15:50:56 +0100 Subject: [PATCH 030/111] gnu: ungoogled-chromium: Update to 72.0.3626.121-0.a80839c [fixes CVE-2019-5786]. * gnu/packages/chromium.scm (%chromium-version): Update to 72.0.3626.121. (ungoogled-chromium-source): Update hash. --- gnu/packages/chromium.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index c80a51dedc..7d49b06ce3 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -224,7 +224,7 @@ (define* (computed-origin-method gexp-promise hash-algo hash #:system system #:guile-for-build guile))) -(define %chromium-version "72.0.3626.119") +(define %chromium-version "72.0.3626.121") (define %ungoogled-revision "a80839c418de8843dfcd6c13a557f12d26a0a17a") (define package-revision "0") @@ -245,7 +245,7 @@ (define ungoogled-chromium-source %chromium-version ".tar.xz")) (sha256 (base32 - "0ylig933xzn6c0018nxq95xhl0wkxcm95fdiy2c7s4a4h3hkr5dk")))) + "07xwmlvmzfga61nrimqmzl7s29jb4kc94nkzwwlb7sh6nr55a7jc")))) (ungoogled-source (origin (method git-fetch) From b0251c71c7b80f420f30218bc7cfd829db5aa521 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Mar 2019 15:55:52 +0100 Subject: [PATCH 031/111] gnu: libsecret: Update to 0.18.8. * gnu/packages/gnome.scm (libsecret): Update to 0.18.8. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 55032fdd77..8c5cb1709f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2683,7 +2683,7 @@ (define-public libsoup (define-public libsecret (package (name "libsecret") - (version "0.18.7") + (version "0.18.8") (source (origin (method url-fetch) (uri (string-append @@ -2692,7 +2692,7 @@ (define-public libsecret name "-" version ".tar.xz")) (sha256 (base32 - "11ylmcfx6ff7xd1gpi58i2nbma83lz2xg0g2dq23w6snqhgzwrhd")))) + "058x64689k55wxfkdp4svhnwvv8jmqm7z5mrynybl38f4sfqiyiv")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments From b4e1f1ae1088ad6020f0acf9e09622a827042f21 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Mar 2019 16:01:39 +0100 Subject: [PATCH 032/111] gnu: audit: Update to 2.8.5. * gnu/packages/admin.scm (audit): Update to 2.8.5. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 0c3f8b486e..2bc1c325a3 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1856,13 +1856,13 @@ (define-public audit (package (name "audit") (home-page "https://people.redhat.com/sgrubb/audit/") - (version "2.8.4") + (version "2.8.5") (source (origin (method url-fetch) (uri (string-append home-page "audit-" version ".tar.gz")) (sha256 (base32 - "0f4ci6ffznnmgblwgv7ich9mjfk3p6y5l6m6h3chhmzw156nj454")))) + "1dzcwb2q78q7x41shcachn7f4aksxbxd470yk38zh03fch1l2p8f")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--with-python=no" From 0d6f2ea13a5f7788144daf4f361bf8235c3d3744 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Mar 2019 16:06:23 +0100 Subject: [PATCH 033/111] gnu: appstream-glib: Update to 0.7.15. * gnu/packages/glib.scm (appstream-glib): Update to 0.7.15. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 5148a6aec3..5877c5f2dc 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -783,7 +783,7 @@ (define-public dbus-c++ (define-public appstream-glib (package (name "appstream-glib") - (version "0.7.14") + (version "0.7.15") (source (origin (method url-fetch) (uri (string-append "https://people.freedesktop.org/~hughsient/" @@ -791,7 +791,7 @@ (define-public appstream-glib "appstream-glib-" version ".tar.xz")) (sha256 (base32 - "0n0s99jmx2sx5895lcvmfjwa9r0f06i71495dpn9v9frz4asvk3d")))) + "17ram4j3cvs78si0gi1labarr91pw68zn8kam41cqbvlwdyr89vy")))) (build-system meson-build-system) (native-inputs `(("gettext" ,gettext-minimal) From 5a222ebaee19f9c7055a4afae686faca747ba799 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Mar 2019 19:18:15 +0100 Subject: [PATCH 034/111] gnu: python-dask: Update to 1.1.3. * gnu/packages/python-xyz.scm (python-dask): Update to 1.1.3. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index dc5a020b11..f6c217f346 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -14694,14 +14694,14 @@ (define-public python2-partd (define-public python-dask (package (name "python-dask") - (version "1.0.0") + (version "1.1.3") (source (origin (method url-fetch) (uri (pypi-uri "dask" version)) (sha256 (base32 - "1xwz8h020ipwav2p5gcq9pskya1cvzd6hjyvd06dvr3w5lxlmym1")))) + "03ykmq46q2hh7mn68vcxkgylybjaj3r0kfspaiymdmqmjzpjivr5")))) (build-system python-build-system) ;; A single test out of 5000+ fails. This test is marked as xfail when ;; pytest-xdist is used. From 35556d7da01f00ffdbc9b3218ef2669dd28e3b62 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 3 Mar 2019 00:17:30 +0100 Subject: [PATCH 035/111] gnu: musescore: Update to 3.0.4. * gnu/packages/music.scm (musescore): Update to 3.0.4. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index aa001ffe34..46af70f9d7 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3637,7 +3637,7 @@ (define-public lmms (define-public musescore (package (name "musescore") - (version "3.0.3") + (version "3.0.4") (source (origin (method git-fetch) (uri (git-reference @@ -3646,7 +3646,7 @@ (define-public musescore (file-name (git-file-name name version)) (sha256 (base32 - "1drgmivqs2c5xck7dy5y9xf41wfnnj7n84069h273q96b783cx3f")) + "05cn4j5f7xr438lgl0by3lrc7wckdgicdn4jrvxfqic8hv81sca7")) (modules '((guix build utils))) (snippet ;; Un-bundle OpenSSL and remove unused libraries. From d74656ea020558a31e06c9068ae360310d8b70cb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 3 Mar 2019 09:23:29 +0100 Subject: [PATCH 036/111] gnu: eolie: Update to 0.9.52. * gnu/packages/gnome.scm (eolie): Update to 0.9.52. --- gnu/packages/gnome.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8c5cb1709f..277b3108a5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4191,15 +4191,15 @@ (define-public simple-scan (define-public eolie (package (name "eolie") - (version "0.9.45") + (version "0.9.52") (source (origin (method url-fetch) (uri (string-append "https://gitlab.gnome.org/World/eolie/" - "uploads/020f3f686e2b938731752a1d9f5bfa7e/" + "uploads/d95bf72958276c80dfaca8cce0e4e92c/" "eolie-" version ".tar.xz")) (sha256 (base32 - "0371p7g13r0b7zjc48fdcil43ddwpmyvkd2a4vv6ifsqmny6kl42")))) + "1s3b0rkm8sxmhzzi624snzqvz61i1rja5wxyzw6jg2kcdjcylwln")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t From dbb1ef51c8e6b83fb58aafe93b4a712c3539a12b Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sun, 3 Mar 2019 10:21:58 +0100 Subject: [PATCH 037/111] gnu: wine-staging: Update to 4.3. * gnu/packages/wine.scm (wine-staging-patchset-data): Update to 4.3. * gnu/packages/wine.scm (wine-staging): Update to 4.3. --- gnu/packages/wine.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 67da5b455e..02561c5442 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -310,7 +310,7 @@ (define-public wine-minimal (define-public wine-staging-patchset-data (package (name "wine-staging-patchset-data") - (version "4.2") + (version "4.3") (source (origin (method git-fetch) @@ -320,7 +320,7 @@ (define-public wine-staging-patchset-data (file-name (git-file-name name version)) (sha256 (base32 - "1dhv6y60g64bj3kgfknbfzxfzmy686dh7svxlvi4lfis2faikxmk")))) + "14plsw52s4w0wpm0rici8b7amb51krdrby03652isvzxqr4ndip6")))) (build-system trivial-build-system) (native-inputs `(("bash" ,bash) @@ -366,7 +366,7 @@ (define-public wine-staging (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "1ysvq2jyvh7r27iwpsrlrwzj672jnrihry91bx3m3fysz3sl3ld1")))) + "1d0gbwc8ll4mfxilw9j4vdzqlnracr6y8iss27nfg1qh0q7vbf9x")))) (inputs `(("autoconf" ,autoconf) ; for autoreconf ("ffmpeg" ,ffmpeg) ("gtk+" ,gtk+) From ea3510f8a7f0fe7add54d072b077236756ab3c54 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sun, 3 Mar 2019 10:54:38 +0100 Subject: [PATCH 038/111] gnu: Add faudio. * gnu/packages/audio.scm (faudio): New variable. --- gnu/packages/audio.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index d395a52f29..70bbc3e49a 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2018 Brendan Tildesley ;;; Copyright © 2019 Pierre Langlois ;;; Copyright © 2019 Leo Famulari +;;; Copyright © 2019 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -87,6 +88,7 @@ (define-module (gnu packages audio) #:use-module (gnu packages python-xyz) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) + #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) #:use-module (gnu packages telephony) #:use-module (gnu packages tls) @@ -3673,3 +3675,29 @@ (define-public libopenshot-audio high-quality editing and playback of audio, and is based on the JUCE library.") (license license:lgpl3+))) + +(define-public faudio + (package + (name "faudio") + (version "19.03") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/FNA-XNA/FAudio.git") + (commit version))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 "0v5l67ixr5kd9jz5sza8xgzxamqnlgn3gs1q8gg6ir60g0jvzbd4")))) + (arguments + '(#:tests? #f ; No tests. + #:configure-flags '("-DFFMPEG=ON"))) + (build-system cmake-build-system) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("ffmpeg" ,ffmpeg) + ("sdl2" ,sdl2))) + (home-page "https://github.com/FNA-XNA/FAudio") + (synopsis "XAudio reimplementation") + (description "FAudio is an XAudio reimplementation that focuses solely on +developing fully accurate DirectX Audio runtime libraries.") + (license license:zlib))) From 0fa3d705d2f5821c9d116267fa9e2c6b3f69c846 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sun, 3 Mar 2019 10:52:46 +0100 Subject: [PATCH 039/111] gnu: wine-staging: Add faudio support. * gnu/packages/wine.scm (wine-staging)[inputs]: Add faudio. [arguments]: Adjust patchinstall.sh to faudio. * gnu/packages/wine.scm (wine64-staging)[arguments]: Adjust patchinstall.sh to faudio. --- gnu/packages/wine.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 02561c5442..6d2d9ea09b 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -368,6 +368,7 @@ (define-public wine-staging (base32 "1d0gbwc8ll4mfxilw9j4vdzqlnracr6y8iss27nfg1qh0q7vbf9x")))) (inputs `(("autoconf" ,autoconf) ; for autoreconf + ("faudio" ,faudio) ("ffmpeg" ,ffmpeg) ("gtk+" ,gtk+) ("libva" ,libva) @@ -406,7 +407,10 @@ (define-public wine-staging (script (string-append (assoc-ref %build-inputs "wine-staging-patchset-data") "/share/wine-staging/patches/patchinstall.sh"))) - (invoke script (string-append "DESTDIR=" ".") "--all") + ;; Exclude specific patches that conflict with FAudio. + (invoke script (string-append "DESTDIR=" ".") "--all" "-W" + "xaudio2-revert" "-W" "xaudio2_CommitChanges" "-W" + "xaudio2_7-WMA_support" "-W" "xaudio2_7-CreateFX-FXEcho") #t))) (add-after 'configure 'patch-dlopen-paths ;; Hardcode dlopened sonames to absolute paths. @@ -482,7 +486,10 @@ (define-public wine64-staging (script (string-append (assoc-ref %build-inputs "wine-staging-patchset-data") "/share/wine-staging/patches/patchinstall.sh"))) - (invoke script (string-append "DESTDIR=" ".") "--all") + ;; Exclude specific patches that conflict with FAudio. + (invoke script (string-append "DESTDIR=" ".") "--all" "-W" + "xaudio2-revert" "-W" "xaudio2_CommitChanges" "-W" + "xaudio2_7-WMA_support" "-W" "xaudio2_7-CreateFX-FXEcho") #t))) (add-after 'install 'copy-wine32-binaries (lambda* (#:key outputs #:allow-other-keys) From d2f555f59b7089176f92b674f8b78a6b9c3f4bcf Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 21 Feb 2019 01:14:59 +0100 Subject: [PATCH 040/111] gnu: Add emacs-isearch+. * gnu/packages/emacs-xyz.scm (emacs-isearch+): New variable. Signed-off-by: Ricardo Wurmus --- gnu/packages/emacs-xyz.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 86dbfe6d53..dda5500f9d 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -43,6 +43,7 @@ ;;; Copyright © 2018 Pierre Langlois ;;; Copyright © 2018, 2019 Brett Gilio ;;; Copyright © 2019 Dimakakos Dimos +;;; Copyright © 2019 Brian Leung ;;; ;;; This file is part of GNU Guix. ;;; @@ -11131,6 +11132,29 @@ (define-public emacs-daemons systems.") (license license:gpl3+))) +(define-public emacs-isearch+ + (let ((commit "95e49af9dbf0254e095a11f115e101b52659520a") + (revision "1")) + (package + (name "emacs-isearch+") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacsmirror/isearch-plus.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xhd9zgknf4lvzyf4apirpd7spb1hbpzkvys00a7pkmd0vvahk0v")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/isearch+.el") + (synopsis "Extensions to @code{isearch.el}") + (description "This package extends @code{isearch} with advice, dynamic +filters, highlighting of regexp group levels, and more.") + (license license:gpl2+)))) + (define-public emacs-esh-autosuggest (package (name "emacs-esh-autosuggest") From 4f889375f2e3c0606e83280cd7deee5c58e11cd4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 3 Mar 2019 17:29:56 +0200 Subject: [PATCH 041/111] gnu: libopenshot: Fix tests on other architectures. * gnu/packages/video.scm (libopenshot)[source]: Add patch. * gnu/packages/patches/libopenshot-fixup-tests.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + .../patches/libopenshot-fixup-tests.patch | 148 ++++++++++++++++++ gnu/packages/video.scm | 3 +- 3 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libopenshot-fixup-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index c27bf9749e..974195b4bb 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -976,6 +976,7 @@ dist_patch_DATA = \ %D%/packages/patches/libffi-3.2.1-complex-alpha.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \ %D%/packages/patches/libjxr-fix-typos.patch \ + %D%/packages/patches/libopenshot-fixup-tests.patch \ %D%/packages/patches/libopenshot-tests-with-system-libs.patch \ %D%/packages/patches/libotr-test-auth-fix.patch \ %D%/packages/patches/libmad-armv7-thumb-pt1.patch \ diff --git a/gnu/packages/patches/libopenshot-fixup-tests.patch b/gnu/packages/patches/libopenshot-fixup-tests.patch new file mode 100644 index 0000000000..9a0bcc5e8f --- /dev/null +++ b/gnu/packages/patches/libopenshot-fixup-tests.patch @@ -0,0 +1,148 @@ +From 691536f2f8a9ed7322fedb24d489db08c70705b9 Mon Sep 17 00:00:00 2001 +From: "Dr. Tobias Quathamer" +Date: Sat, 18 Nov 2017 13:54:22 +0100 +Subject: [PATCH] This the combination of two patches: + https://sources.debian.org/data/main/libo/libopenshot/0.2.2+dfsg1-1/debian/patches/0003-Fix-failing-tests-by-using-a-fault-tolerance.patch + https://sources.debian.org/data/main/libo/libopenshot/0.2.2+dfsg1-1/debian/patches/0004-Add-some-more-fault-tolerance-for-arm64.patch + +Together they should fix the test suite on all architectures +--- + tests/FFmpegReader_Tests.cpp | 9 ++++----- + tests/ImageWriter_Tests.cpp | 8 ++++---- + tests/Timeline_Tests.cpp | 28 ++++++++++++++-------------- + 3 files changed, 22 insertions(+), 23 deletions(-) + +diff --git a/tests/FFmpegReader_Tests.cpp b/tests/FFmpegReader_Tests.cpp +index 53563ca..07fc41e 100644 +--- a/tests/FFmpegReader_Tests.cpp ++++ b/tests/FFmpegReader_Tests.cpp +@@ -95,8 +95,8 @@ TEST(FFmpegReader_Check_Video_File) + int pixel_index = 112 * 4; // pixel 112 (4 bytes per pixel) + + // Check image properties on scanline 10, pixel 112 +- CHECK_EQUAL(21, (int)pixels[pixel_index]); +- CHECK_EQUAL(191, (int)pixels[pixel_index + 1]); ++ CHECK_CLOSE(21, (int)pixels[pixel_index], 1); ++ CHECK_CLOSE(191, (int)pixels[pixel_index + 1], 2); + CHECK_EQUAL(0, (int)pixels[pixel_index + 2]); + CHECK_EQUAL(255, (int)pixels[pixel_index + 3]); + +@@ -109,8 +109,8 @@ TEST(FFmpegReader_Check_Video_File) + + // Check image properties on scanline 10, pixel 112 + CHECK_EQUAL(0, (int)pixels[pixel_index]); +- CHECK_EQUAL(96, (int)pixels[pixel_index + 1]); +- CHECK_EQUAL(188, (int)pixels[pixel_index + 2]); ++ CHECK_CLOSE(96, (int)pixels[pixel_index + 1], 1); ++ CHECK_CLOSE(188, (int)pixels[pixel_index + 2], 1); + CHECK_EQUAL(255, (int)pixels[pixel_index + 3]); + + // Close reader +@@ -209,4 +209,3 @@ TEST(FFmpegReader_Multiple_Open_and_Close) + // Close reader + r.Close(); + } +- +diff --git a/tests/ImageWriter_Tests.cpp b/tests/ImageWriter_Tests.cpp +index 107ee39..d10c8bd 100644 +--- a/tests/ImageWriter_Tests.cpp ++++ b/tests/ImageWriter_Tests.cpp +@@ -73,9 +73,9 @@ TEST(ImageWriter_Test_Gif) + int pixel_index = 230 * 4; // pixel 230 (4 bytes per pixel) + + // Check image properties +- CHECK_EQUAL(20, (int)pixels[pixel_index]); +- CHECK_EQUAL(18, (int)pixels[pixel_index + 1]); +- CHECK_EQUAL(11, (int)pixels[pixel_index + 2]); ++ CHECK_CLOSE(20, (int)pixels[pixel_index], 5); ++ CHECK_CLOSE(18, (int)pixels[pixel_index + 1], 2); ++ CHECK_CLOSE(11, (int)pixels[pixel_index + 2], 2); + CHECK_EQUAL(255, (int)pixels[pixel_index + 3]); + } +-#endif +\ No newline at end of file ++#endif +diff --git a/tests/Timeline_Tests.cpp b/tests/Timeline_Tests.cpp +index 8c81579..4d861a6 100644 +--- a/tests/Timeline_Tests.cpp ++++ b/tests/Timeline_Tests.cpp +@@ -119,8 +119,8 @@ TEST(Timeline_Check_Two_Track_Video) + int pixel_index = 230 * 4; // pixel 230 (4 bytes per pixel) + + // Check image properties +- CHECK_EQUAL(21, (int)f->GetPixels(pixel_row)[pixel_index]); +- CHECK_EQUAL(191, (int)f->GetPixels(pixel_row)[pixel_index + 1]); ++ CHECK_CLOSE(21, (int)f->GetPixels(pixel_row)[pixel_index], 2); ++ CHECK_CLOSE(191, (int)f->GetPixels(pixel_row)[pixel_index + 1], 2); + CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index + 2]); + CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]); + +@@ -128,17 +128,17 @@ TEST(Timeline_Check_Two_Track_Video) + f = t.GetFrame(2); + + // Check image properties +- CHECK_EQUAL(176, (int)f->GetPixels(pixel_row)[pixel_index]); ++ CHECK_CLOSE(176, (int)f->GetPixels(pixel_row)[pixel_index], 1); + CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index + 1]); +- CHECK_EQUAL(186, (int)f->GetPixels(pixel_row)[pixel_index + 2]); ++ CHECK_CLOSE(186, (int)f->GetPixels(pixel_row)[pixel_index + 2], 1); + CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]); + + // Get frame + f = t.GetFrame(3); + + // Check image properties +- CHECK_EQUAL(23, (int)f->GetPixels(pixel_row)[pixel_index]); +- CHECK_EQUAL(190, (int)f->GetPixels(pixel_row)[pixel_index + 1]); ++ CHECK_CLOSE(23, (int)f->GetPixels(pixel_row)[pixel_index], 1); ++ CHECK_CLOSE(190, (int)f->GetPixels(pixel_row)[pixel_index + 1], 2); + CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index + 2]); + CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]); + +@@ -146,8 +146,8 @@ TEST(Timeline_Check_Two_Track_Video) + f = t.GetFrame(24); + + // Check image properties +- CHECK_EQUAL(186, (int)f->GetPixels(pixel_row)[pixel_index]); +- CHECK_EQUAL(106, (int)f->GetPixels(pixel_row)[pixel_index + 1]); ++ CHECK_CLOSE(186, (int)f->GetPixels(pixel_row)[pixel_index], 1); ++ CHECK_CLOSE(106, (int)f->GetPixels(pixel_row)[pixel_index + 1], 1); + CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index + 2]); + CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]); + +@@ -155,8 +155,8 @@ TEST(Timeline_Check_Two_Track_Video) + f = t.GetFrame(5); + + // Check image properties +- CHECK_EQUAL(23, (int)f->GetPixels(pixel_row)[pixel_index]); +- CHECK_EQUAL(190, (int)f->GetPixels(pixel_row)[pixel_index + 1]); ++ CHECK_CLOSE(23, (int)f->GetPixels(pixel_row)[pixel_index], 1); ++ CHECK_CLOSE(190, (int)f->GetPixels(pixel_row)[pixel_index + 1], 2); + CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index + 2]); + CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]); + +@@ -165,17 +165,17 @@ TEST(Timeline_Check_Two_Track_Video) + + // Check image properties + CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index]); +- CHECK_EQUAL(94, (int)f->GetPixels(pixel_row)[pixel_index + 1]); +- CHECK_EQUAL(186, (int)f->GetPixels(pixel_row)[pixel_index + 2]); ++ CHECK_CLOSE(94, (int)f->GetPixels(pixel_row)[pixel_index + 1], 1); ++ CHECK_CLOSE(186, (int)f->GetPixels(pixel_row)[pixel_index + 2], 1); + CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]); + + // Get frame + f = t.GetFrame(4); + + // Check image properties +- CHECK_EQUAL(176, (int)f->GetPixels(pixel_row)[pixel_index]); ++ CHECK_CLOSE(176, (int)f->GetPixels(pixel_row)[pixel_index], 1); + CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index + 1]); +- CHECK_EQUAL(186, (int)f->GetPixels(pixel_row)[pixel_index + 2]); ++ CHECK_CLOSE(186, (int)f->GetPixels(pixel_row)[pixel_index + 2], 1); + CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]); + + // Close reader +-- +2.21.0 + diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 52f151bd78..c51352dcf8 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3222,7 +3222,8 @@ (define-public libopenshot (string-append set " CACHE PATH " "\"Python bindings directory\")"))) #t)) - (patches (search-patches "libopenshot-tests-with-system-libs.patch")))) + (patches (search-patches "libopenshot-fixup-tests.patch" + "libopenshot-tests-with-system-libs.patch")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config) From 277becbbb7beee43c2e0fa5e2b038882c07200cd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 3 Mar 2019 17:30:33 +0200 Subject: [PATCH 042/111] gnu: libopenshot: Remove bundled libraries. * gnu/packages/video.scm (libopenshot)[source]: Add snippet to remove bundled libraries. --- gnu/packages/video.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index c51352dcf8..d61e11eecd 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3221,6 +3221,7 @@ (define-public libopenshot (("(SET\\(PYTHON_MODULE_PATH.*)\\)" _ set) (string-append set " CACHE PATH " "\"Python bindings directory\")"))) + (delete-file-recursively "thirdparty") #t)) (patches (search-patches "libopenshot-fixup-tests.patch" "libopenshot-tests-with-system-libs.patch")))) From ad656e70b69f65914b87cb334ffef9547f597508 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 3 Mar 2019 17:31:16 +0200 Subject: [PATCH 043/111] gnu: libopenshot: Build with modular qt. * gnu/packages/video.scm (libopenshot)[propagated-inputs]: Remove qt, add qtbase, qtmultimedia. --- gnu/packages/video.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index d61e11eecd..221b3a8ad0 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3237,7 +3237,8 @@ (define-public libopenshot ("imagemagick" ,imagemagick) ("jsoncpp" ,jsoncpp) ("libopenshot-audio" ,libopenshot-audio) - ("qt" ,qt) ;widgets, core, gui, multimedia, and multimediawidgets + ("qtbase" ,qtbase) + ("qtmultimedia" ,qtmultimedia) ("zeromq" ,zeromq))) (arguments `(#:configure-flags From ae63b2c582d565fe7c3f7a18d9b9c1f1ee438931 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 3 Mar 2019 19:57:08 +0200 Subject: [PATCH 044/111] gnu: avidemux: Update to 2.7.1. * gnu/packages/video.scm (avidemux): Update to 2.7.1. [arguments]: Update bundled ffmpeg to 3.3.7. --- gnu/packages/video.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 221b3a8ad0..782f6a0c64 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1764,7 +1764,7 @@ (define-public srt2vtt (define-public avidemux (package (name "avidemux") - (version "2.6.12") + (version "2.7.1") (source (origin (method url-fetch) (uri (string-append @@ -1772,7 +1772,7 @@ (define-public avidemux name "_" version ".tar.gz")) (sha256 (base32 - "0nz52yih8sff53inndkh2dba759xjzsh4b8xjww419lcpk0qp6kn")) + "15g9h791qbnmycabbbl7s2b3n3xpvygm88qrfk35g2cw6957ik9w")) (patches (search-patches "avidemux-install-to-lib.patch")))) (build-system cmake-build-system) (native-inputs @@ -1810,19 +1810,19 @@ (define-public avidemux (add-before 'patch-source-shebangs 'unpack-ffmpeg (lambda _ (with-directory-excursion "avidemux_core/ffmpeg_package" - (invoke "tar" "xf" "ffmpeg-2.7.6.tar.bz2") - (delete-file "ffmpeg-2.7.6.tar.bz2")) + (invoke "tar" "xf" "ffmpeg-3.3.7.tar.bz2") + (delete-file "ffmpeg-3.3.7.tar.bz2")) #t)) (add-after 'patch-source-shebangs 'repack-ffmpeg (lambda _ (with-directory-excursion "avidemux_core/ffmpeg_package" - (substitute* "ffmpeg-2.7.6/configure" + (substitute* "ffmpeg-3.3.7/configure" (("#! /bin/sh") (string-append "#!" (which "sh")))) - (invoke "tar" "cjf" "ffmpeg-2.7.6.tar.bz2" "ffmpeg-2.7.6" + (invoke "tar" "cjf" "ffmpeg-3.3.7.tar.bz2" "ffmpeg-3.3.7" ;; avoid non-determinism in the archive "--sort=name" "--mtime=@0" "--owner=root:0" "--group=root:0") - (delete-file-recursively "ffmpeg-2.7.6")) + (delete-file-recursively "ffmpeg-3.3.7")) #t)) (replace 'configure (lambda _ From 3261a732804f7bcaa90279072cdc7e60afd62dd5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 3 Mar 2019 19:57:48 +0200 Subject: [PATCH 045/111] gnu: avidemux: Build with modular qt. * gnu/packages/video.scm (avidemux)[inputs]: Remove qt, add qtbase, qttools. --- gnu/packages/video.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 782f6a0c64..bf9cb155f2 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1794,9 +1794,8 @@ (define-public avidemux ("perl" ,perl) ("pulseaudio" ,pulseaudio) ("python" ,python-wrapper) - ("qt" ,qt) ; FIXME: reenable modular qt after update - requires building - ;("qtbase" ,qtbase) with -std=gnu++11. - ;("qttools" ,qttools) + ("qtbase" ,qtbase) + ("qttools" ,qttools) ("sdl" ,sdl) ("sqlite" ,sqlite) ("yasm" ,yasm) From d60213967a4df2ad46502046c8061314b0da2bc1 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Mon, 4 Mar 2019 08:24:24 +0100 Subject: [PATCH 046/111] gnu: emacs-magit: Update to 2.90.1. * gnu/packages/emacs-xyz.scm (emacs-magit): Update to 2.90.1. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index dda5500f9d..d6da8a91d0 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -254,16 +254,16 @@ (define-public emacs-with-editor (define-public emacs-magit (package (name "emacs-magit") - (version "2.13.1") + (version "2.90.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/magit/magit") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1kmjjcvhcb21qi6kmrlhf92ync8va5l41n9ban8kj25h7dbqyiym")))) + "1kw94sdczswsyzn1zlk5s5aplpdv4qd7qcqc5zfxsmsfwm3jacl4")))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) ("emacs" ,emacs-minimal))) From 3a56c5183668ddec64c10f32ded193d3d86692f2 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Mon, 4 Mar 2019 08:24:41 +0100 Subject: [PATCH 047/111] gnu: emacs-magit-todos: Update to 1.1.7. * gnu/packages/emacs-xyz.scm (emacs-magit-todos): Update to 1.1.7. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index d6da8a91d0..9efd857b86 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12150,7 +12150,7 @@ (define-public emacs-pcre2el (define-public emacs-magit-todos (package (name "emacs-magit-todos") - (version "1.1") + (version "1.1.7") (source (origin (method git-fetch) @@ -12160,7 +12160,7 @@ (define-public emacs-magit-todos (file-name (git-file-name name version)) (sha256 (base32 - "1mvzbxshr6zjdim3jd368ar1hy5l7n22i03cpvzdmrw83kkwdyhd")))) + "0qagdxpik64n4rw9scy451ws5sw00v64ri9g2dcw7b66bx2c6c6w")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-async" ,emacs-async) From 3499638ef87191d458f3e07455a9a0fefe76c085 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Mon, 4 Mar 2019 08:31:41 +0100 Subject: [PATCH 048/111] gnu: emacs-evil-magit: Update to 20190224. * gnu/packages/emacs-xyz.scm (emacs-evil-magit): Update to 20190224. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 9efd857b86..42d4e37a22 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -11264,10 +11264,10 @@ (define-public emacs-evil-ediff (deprecated-package "emacs-evil-ediff" emacs-evil-collection)) (define-public emacs-evil-magit - (let ((commit "dbf5a646a7ce1c35c229dfdc423bd5ecd927a3a8")) + (let ((commit "e2fec5877994c0c19f0c25fa01f3d22cb0ab38ba")) (package (name "emacs-evil-magit") - (version (git-version "0.4.2" "1" commit)) + (version (git-version "0.4.2" "2" commit)) (source (origin (method git-fetch) @@ -11277,7 +11277,7 @@ (define-public emacs-evil-magit (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0ya0dkviq4pi92ab69a4j674y5r1hc1x3x7r7hlm97ag3a6zfkav")))) + "134v7s03jvbhm70mavwab85r09i68g2a5bvriirh0chz1av2y16v")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil) From b6fd7f5003c725e4e43f71287c33980bad0903a4 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Mon, 4 Mar 2019 12:17:13 +0100 Subject: [PATCH 049/111] gnu: emacs-helm-emms: Update to 20190304. * gnu/packages/emacs-xyz.scm (emacs-helm-emms): Update to 20190304. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 42d4e37a22..cd18d56e66 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -11533,10 +11533,10 @@ (define-public emacs-helm-descbinds (license license:gpl3+)))) (define-public emacs-helm-emms - (let ((commit "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec")) + (let ((commit "b785cb845a98a643eba9d5d53c9c0b4e6810a3cd")) (package (name "emacs-helm-emms") - (version (git-version "1.3" "1" commit)) + (version (git-version "1.3" "2" commit)) (source (origin (method git-fetch) @@ -11546,7 +11546,7 @@ (define-public emacs-helm-emms (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa")))) + "1595r09y3rmwd46nnhvjja3hb8j2ila295ijxv61cg52ws4wginh")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-helm" ,emacs-helm) From e7a53914f15fa0e86ec583b115aca9e4ff6c69a3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 4 Mar 2019 13:54:47 +0100 Subject: [PATCH 050/111] gnu: python-matplotlib-documentation: Fix build. * gnu/packages/python-xyz.scm (python-matplotlib-documentation) [native-inputs]: Add python-ipykernel; replace texlive with a texlive-union consisting of texlive-latex-amsfonts, texlive-latex-amsmath, texlive-latex-enumitem, texlive-latex-expdlist, texlive-latex-preview, texlive-latex-type1cm, texlive-latex-ucs, texlive-generic-pdftex, texlive-fonts-amsfonts, texlive-fonts-ec, texlive-fonts-adobe-times, and texlive-fonts-txfonts. [arguments]: Do not build PDF, remove PDF-related changes; patch to avoid dependency on network resources. --- gnu/packages/python-xyz.scm | 51 ++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index f6c217f346..09c7e2db38 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3537,9 +3537,24 @@ (define-public python-matplotlib-documentation ("python-sphinx-gallery" ,python-sphinx-gallery) ("python-numpydoc" ,python-numpydoc) ("python-ipython" ,python-ipython) + ("python-ipykernel" ,python-ipykernel) ("python-mock" ,python-mock) ("graphviz" ,graphviz) - ("texlive" ,texlive) + ("texlive" ,(texlive-union (list texlive-latex-amsfonts + texlive-latex-amsmath + texlive-latex-enumitem + texlive-latex-expdlist + texlive-latex-geometry + texlive-latex-preview + texlive-latex-type1cm + texlive-latex-ucs + + texlive-generic-pdftex + + texlive-fonts-amsfonts + texlive-fonts-ec + texlive-fonts-adobe-times + texlive-fonts-txfonts))) ("texinfo" ,texinfo) ,@(package-native-inputs python-matplotlib))) (arguments @@ -3549,15 +3564,24 @@ (define-public python-matplotlib-documentation (replace 'build (lambda _ (chdir "doc") - ;; Produce pdf in 'A4' format. + (setenv "PYTHONPATH" + (string-append (getenv "PYTHONPATH") + ":" (getcwd) "/../examples/units")) (substitute* "conf.py" - (("latex_paper_size = 'letter'") "") - ;; latex_paper_size is deprecated -> set paper size using - ;; latex_elements - (("latex_elements\\['pointsize'\\] = '11pt'" match) - ;; insert at a point where latex_elements{} is defined: - (string-append match "\nlatex_elements['papersize'] = 'a4paper'"))) - (invoke "make" "SPHINXBUILD=sphinx-build" "html" "latex" "texinfo"))) + ;; Don't use git. + (("^SHA = check_output.*") + (string-append "SHA = \"" ,version "\"\n")) + ;; Don't fetch intersphinx files from the Internet + (("^explicit_order_folders" m) + (string-append "intersphinx_mapping = {}\n" m)) + (("'sphinx.ext.intersphinx',") "") + ;; Disable URL embedding which requires internet access. + (("'https://docs.scipy.org/doc/numpy'") "None") + (("'https://docs.scipy.org/doc/scipy/reference'") "None")) + (invoke "make" + "SPHINXBUILD=sphinx-build" + "SPHINXOPTS=" ; don't abort on warnings + "html" "texinfo"))) (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((data (string-append (assoc-ref outputs "out") "/share")) @@ -3575,12 +3599,9 @@ (define-public python-matplotlib-documentation (string-append "@image{matplotlib-figures/" file))) (symlink (string-append html "/_images") "./matplotlib-figures") - (system* "makeinfo" "--no-split" - "-o" "matplotlib.info" "matplotlib.texi")) - (copy-file "build/texinfo/matplotlib.info" - (string-append info "/matplotlib.info")) - (copy-file "build/latex/Matplotlib.pdf" - (string-append doc "/Matplotlib.pdf"))) + (invoke "makeinfo" "--no-split" + "-o" "matplotlib.info" "matplotlib.texi")) + (install-file "build/texinfo/matplotlib.info" info)) #t))))) (home-page (package-home-page python-matplotlib)) (synopsis "Documentation for the python-matplotlib package") From 4254b480c938dd429772cbb78301539c6bd972d8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 4 Mar 2019 15:00:05 +0100 Subject: [PATCH 051/111] gnu: Add r-capushe. * gnu/packages/cran.scm (r-capushe): New variable. --- gnu/packages/cran.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 54031fa87a..cc23c53f4c 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -10681,3 +10681,24 @@ (define-public r-sloop help you to better understand object oriented programming in R, particularly using @code{S3}.") (license license:gpl3))) + +(define-public r-capushe + (package + (name "r-capushe") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "capushe" version)) + (sha256 + (base32 + "1aa76ir1kp67hiz7dr60azyc71yzslshyc640fjh0fpw0sp5kwbc")))) + (build-system r-build-system) + (propagated-inputs `(("r-mass" ,r-mass))) + (home-page "https://cran.r-project.org/web/packages/capushe/index.html") + (synopsis "Calibrating penalities using slope heuristics") + (description + "This package provides tools for the calibration of penalized criteria +for model selection. The calibration methods available are based on the slope +heuristics.") + (license license:gpl2+))) From 3a0babacdcd1f6d3691c777b64d8fd3527eefb42 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 4 Mar 2019 15:00:18 +0100 Subject: [PATCH 052/111] gnu: Add r-htscluster. * gnu/packages/bioconductor.scm (r-htscluster): New variable. --- gnu/packages/bioconductor.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 9057158cde..ae9d7070c3 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -1199,3 +1199,32 @@ (define-public r-dnacopy algorithm to segment DNA copy number data and identify genomic regions with abnormal copy number.") (license license:gpl2+))) + +;; This is a CRAN package, but it uncharacteristically depends on a +;; Bioconductor package. +(define-public r-htscluster + (package + (name "r-htscluster") + (version "2.0.8") + (source + (origin + (method url-fetch) + (uri (cran-uri "HTSCluster" version)) + (sha256 + (base32 + "0wnbfh6hdx8692jilgmv8sys1zm6fqc6mim7vvjhyqlmpm8gm0kg")))) + (properties `((upstream-name . "HTSCluster"))) + (build-system r-build-system) + (propagated-inputs + `(("r-capushe" ,r-capushe) + ("r-edger" ,r-edger) + ("r-plotrix" ,r-plotrix))) + (home-page "https://cran.r-project.org/web/packages/HTSCluster") + (synopsis "Clustering high-throughput transcriptome sequencing (HTS) data") + (description + "This package provides a Poisson mixture model is implemented to cluster +genes from high-throughput transcriptome sequencing (RNA-seq) data. Parameter +estimation is performed using either the EM or CEM algorithm, and the slope +heuristics are used for model selection (i.e., to choose the number of +clusters).") + (license license:gpl3+))) From ba926e35341c355fbfaf51d074269982a1e1ad8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 4 Mar 2019 12:22:54 +0100 Subject: [PATCH 053/111] tests: Use non-deprecated (guix store) API. This is a followup to f9e8a12379c6fefc9e5c3c7fc3926599bbefc013. * gnu/tests/base.scm (run-basic-test)["/run/current-system is a GC root"]: Use 'store-protocol-error?' instead of 'nix-protocol-error?'. --- gnu/tests/base.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 0f8fb7f456..cc8b273c98 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -397,7 +397,7 @@ (define (entry->list entry) (use-modules (srfi srfi-34) (guix store)) (let ((system (readlink "/run/current-system"))) - (guard (c ((nix-protocol-error? c) + (guard (c ((store-protocol-error? c) (and (file-exists? system) 'success!))) (with-store store From 8bb76f3d44c1f5ffec8011819494db306a51d801 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 4 Mar 2019 13:32:36 +0100 Subject: [PATCH 054/111] activation: Make home directories #o700 by default. Until now they'd be #o755, except for /root, which is treated specially in (gnu build install). * gnu/build/activation.scm (activate-user-home): Chmod HOME to #o700. Remove redundant 'unless system?'. --- gnu/build/activation.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index 0e77677de1..d516f5bdc9 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -298,9 +298,9 @@ (define ensure-user-home (gid (passwd:gid pw))) (mkdir-p home) (chown home uid gid) - (unless system? - (copy-account-skeletons home - #:uid uid #:gid gid))))))) + (chmod home #o700) + (copy-account-skeletons home + #:uid uid #:gid gid)))))) (for-each ensure-user-home users)) From 56a93cb975ddc33d50183fb122e2aafda026f18e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 4 Mar 2019 13:34:43 +0100 Subject: [PATCH 055/111] services: Use 'file-append' for user account shells. * gnu/services/cuirass.scm (cuirass-account): Use 'file-append' instead of #~(string-append #$shadow "/sbin/nologin"). * gnu/services/monitoring.scm (zabbix-server-account): Likewise. (zabbix-agent-account): Likewise. * gnu/services/rsync.scm (rsync-account): Likewise. * gnu/services/ssh.scm (%openssh-accounts): Likewise. --- gnu/services/cuirass.scm | 4 ++-- gnu/services/monitoring.scm | 4 ++-- gnu/services/rsync.scm | 2 +- gnu/services/ssh.scm | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm index 36e90fc825..f92d33bf94 100644 --- a/gnu/services/cuirass.scm +++ b/gnu/services/cuirass.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Mathieu Lirzin -;;; Copyright © 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Jan Nieuwenhuizen ;;; Copyright © 2018 Ricardo Wurmus @@ -136,7 +136,7 @@ (define (cuirass-account config) (system? #t) (comment "Cuirass privilege separation user") (home-directory (string-append "/var/lib/" cuirass-user)) - (shell #~(string-append #$shadow "/sbin/nologin")))))) + (shell (file-append shadow "/sbin/nologin")))))) (define (cuirass-activation config) "Return the activation code for CONFIG." diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm index 685641f110..611448b733 100644 --- a/gnu/services/monitoring.scm +++ b/gnu/services/monitoring.scm @@ -258,7 +258,7 @@ (define (zabbix-server-account config) (group zabbix-group) (comment "zabbix privilege separation user") (home-directory (string-append "/var/run/" zabbix-user)) - (shell #~(string-append #$shadow "/sbin/nologin")))))) + (shell (file-append shadow "/sbin/nologin")))))) (define (zabbix-server-config-file config) "Return the zabbix-server configuration file corresponding to CONFIG." @@ -387,7 +387,7 @@ (define (zabbix-agent-account config) (group zabbix-group) (comment "zabbix privilege separation user") (home-directory (string-append "/var/run/" zabbix-user)) - (shell #~(string-append #$shadow "/sbin/nologin")))))) + (shell (file-append shadow "/sbin/nologin")))))) (define (zabbix-agent-activation config) "Return the activation gexp for CONFIG." diff --git a/gnu/services/rsync.scm b/gnu/services/rsync.scm index 621e6c46d4..6c117bbda4 100644 --- a/gnu/services/rsync.scm +++ b/gnu/services/rsync.scm @@ -88,7 +88,7 @@ (define (rsync-account config) (comment "rsyncd privilege separation user") (home-directory (string-append "/var/run/" rsync-user)) - (shell #~(string-append #$shadow "/sbin/nologin")))))) + (shell (file-append shadow "/sbin/nologin")))))) (define (rsync-activation config) "Return the activation GEXP for CONFIG." diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 97b7f3c07b..362a7f1490 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2016 David Craven ;;; Copyright © 2016 Julien Lepiller ;;; Copyright © 2017 Clément Lassieur @@ -349,7 +349,7 @@ (define %openssh-accounts (system? #t) (comment "sshd privilege separation user") (home-directory "/var/run/sshd") - (shell #~(string-append #$shadow "/sbin/nologin"))))) + (shell (file-append shadow "/sbin/nologin"))))) (define (openssh-activation config) "Return the activation GEXP for CONFIG." From c483c5c82c129b51ef6068fad3d3f0fbca1f5df1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 4 Mar 2019 13:55:41 +0100 Subject: [PATCH 056/111] doc: Better explain the 'password' field of . * doc/guix.texi (User Accounts): Provide an example use of 'crypt', and mention the security implications. --- doc/guix.texi | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 9fb5cff06d..7fcfcb1454 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10695,6 +10695,7 @@ account. System accounts are sometimes treated specially; for instance, graphical login managers do not list them. @anchor{user-account-password} +@cindex password, for user accounts @item @code{password} (default: @code{#f}) You would normally leave this field to @code{#f}, initialize user passwords as @code{root} with the @command{passwd} command, and then let @@ -10702,11 +10703,29 @@ users change it with @command{passwd}. Passwords set with @command{passwd} are of course preserved across reboot and reconfiguration. -If you @emph{do} want to have a preset password for an account, then -this field must contain the encrypted password, as a string. -@xref{crypt,,, libc, The GNU C Library Reference Manual}, for more information -on password encryption, and @ref{Encryption,,, guile, GNU Guile Reference -Manual}, for information on Guile's @code{crypt} procedure. +If you @emph{do} want to set an initial password for an account, then +this field must contain the encrypted password, as a string. You can use the +@code{crypt} procedure for this purpose: + +@example +(user-account + (name "charlie") + (home-directory "/home/charlie") + (group "users") + + ;; Specify a SHA-512-hashed initial password. + (password (crypt "InitialPassword!" "$6$abc"))) +@end example + +@quotation Note +The hash of this initial password will be available in a file in +@file{/gnu/store}, readable by all the users, so this method must be used with +care. +@end quotation + +@xref{Passphrase Storage,,, libc, The GNU C Library Reference Manual}, for +more information on password encryption, and @ref{Encryption,,, guile, GNU +Guile Reference Manual}, for information on Guile's @code{crypt} procedure. @end table @end deftp From bab9cc4aff09a14fdd4178c479becf932992b5b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 4 Mar 2019 13:58:38 +0100 Subject: [PATCH 057/111] environment: Remove deprecated -E/--exec option. * guix/scripts/environment.scm (%options): Remove "--exec", which was deprecated in commit 1de2fe95e017c42aacbaa34f5dab8d48249cc064 in 2015. * tests/guix-environment.sh: Remove use of '-E'. --- guix/scripts/environment.scm | 3 --- tests/guix-environment.sh | 10 ---------- 2 files changed, 13 deletions(-) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 3966531efa..0cf7b3fd5e 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -220,9 +220,6 @@ (define %options (alist-cons 'inherit-regexp (make-regexp* arg) result))) - (option '(#\E "exec") #t #f ; deprecated - (lambda (opt name arg result) - (alist-cons 'exec (list %default-shell "-c" arg) result))) (option '("search-paths") #f #f (lambda (opt name arg result) (alist-cons 'search-paths #t result))) diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index ccbe027c7b..d6df6234f6 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -117,16 +117,6 @@ case "`uname -m`" in ;; esac - -# Same as above, but with deprecated -E flag. -if guix environment --bootstrap --ad-hoc guile-bootstrap --pure \ - -E "guile -c '(exit 42)'" -then - false -else - test $? = 42 -fi - # Make sure we can build the environment of 'guix'. There may be collisions # in its profile (e.g., for 'gzip'), but we have to accept them. guix environment guix --bootstrap -n From dca58219584c1163a9fbf88fccea885eb53bf2af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 4 Mar 2019 14:19:55 +0100 Subject: [PATCH 058/111] environment: Rename '--inherit' to '--preserve'. Suggested by Eric Bavier and Ricardo Wurmus. * guix/scripts/environment.scm (show-help, %options): Emit a deprecation warning for "--inherit" and add -E/--preserve. * tests/guix-environment.sh: Adjust accordingly. * doc/guix.texi (Invoking guix environment): Update accordingly. --- doc/guix.texi | 9 +++++---- guix/scripts/environment.scm | 11 +++++++++-- tests/guix-environment.sh | 4 ++-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7fcfcb1454..1b77881eb6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4456,17 +4456,18 @@ that will be added to the environment directly. @item --pure Unset existing environment variables when building the new environment, except -those specified with @option{--inherit} (see below.) This has the effect of +those specified with @option{--preserve} (see below.) This has the effect of creating an environment in which search paths only contain package inputs. -@item --inherit=@var{regexp} -When used alongside @option{--pure}, inherit all the environment variables +@item --preserve=@var{regexp} +@itemx -E @var{regexp} +When used alongside @option{--pure}, preserve the environment variables matching @var{regexp}---in other words, put them on a ``white list'' of environment variables that must be preserved. This option can be repeated several times. @example -guix environment --pure --inherit=^SLURM --ad-hoc openmpi @dots{} \ +guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \ -- mpirun @dots{} @end example diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 0cf7b3fd5e..63f6129279 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -141,7 +141,7 @@ (define (show-help) (display (G_ " --pure unset existing environment variables")) (display (G_ " - --inherit=REGEXP inherit environment variables that match REGEXP")) + -E, --preserve=REGEXP preserve environment variables that match REGEXP")) (display (G_ " --search-paths display needed environment variable definitions")) (display (G_ " @@ -215,11 +215,18 @@ (define %options (option '("pure") #f #f (lambda (opt name arg result) (alist-cons 'pure #t result))) - (option '("inherit") #t #f + (option '(#\E "preserve") #t #f (lambda (opt name arg result) (alist-cons 'inherit-regexp (make-regexp* arg) result))) + (option '("inherit") #t #f ;deprecated + (lambda (opt name arg result) + (warning (G_ "'--inherit' is deprecated, \ +use '--preserve' instead~%")) + (alist-cons 'inherit-regexp + (make-regexp* arg) + result))) (option '("search-paths") #f #f (lambda (opt name arg result) (alist-cons 'search-paths #t result))) diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index d6df6234f6..7ea9c200de 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -49,13 +49,13 @@ test -x `sed -r 's/^export PATH="(.*)"/\1/' "$tmpdir/a"`/guile cmp "$tmpdir/a" "$tmpdir/b" -# Check '--inherit'. +# Check '--preserve'. GUIX_TEST_ABC=1 GUIX_TEST_DEF=2 GUIX_TEST_XYZ=3 export GUIX_TEST_ABC GUIX_TEST_DEF GUIX_TEST_XYZ guix environment --bootstrap --ad-hoc guile-bootstrap --pure \ - --inherit='^GUIX_TEST_A' --inherit='^GUIX_TEST_D' \ + --preserve='^GUIX_TEST_A' --preserve='^GUIX_TEST_D' \ -- "$SHELL" -c set > "$tmpdir/a" grep '^PATH=' "$tmpdir/a" grep '^GUIX_TEST_ABC=' "$tmpdir/a" From 94be7c8b2aad43a311bc210104637b31515f80a1 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby Date: Thu, 7 Feb 2019 17:43:47 +0100 Subject: [PATCH 059/111] gnu: emacs: Add modules support. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs): Add modules support in configure-flags. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 821065c56f..7b7fc7fa0f 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -115,6 +115,7 @@ (define-public emacs (build-system glib-or-gtk-build-system) (arguments `(#:tests? #f ; no check target + #:configure-flags (list "--with-modules") #:phases (modify-phases %standard-phases (add-before 'configure 'fix-/bin/pwd From e32099732c37959e2899430f833eef6558373b91 Mon Sep 17 00:00:00 2001 From: Lprndn Date: Thu, 24 Jan 2019 13:29:21 +0100 Subject: [PATCH 060/111] gnu: Add arcan. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/arcan.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/arcan.scm | 158 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 gnu/packages/arcan.scm diff --git a/gnu/local.mk b/gnu/local.mk index 974195b4bb..449ee8367d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -65,6 +65,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/antivirus.scm \ %D%/packages/apl.scm \ %D%/packages/apr.scm \ + %D%/packages/arcan.scm \ %D%/packages/aspell.scm \ %D%/packages/assembly.scm \ %D%/packages/astronomy.scm \ diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm new file mode 100644 index 0000000000..606499ba1f --- /dev/null +++ b/gnu/packages/arcan.scm @@ -0,0 +1,158 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 L p R n d n +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages arcan) + #:use-module (guix build-system cmake) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (gnu packages apr) + #:use-module (gnu packages audio) + #:use-module (gnu packages compression) + #:use-module (gnu packages databases) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages gl) + #:use-module (gnu packages glib) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages libusb) + #:use-module (gnu packages lua) + #:use-module (gnu packages ocr) + #:use-module (gnu packages pcre) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages ruby) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages video) + #:use-module (gnu packages xdisorg)) + +(define-public arcan + (let ((commit "b4dd1fbd1938492ff4b269189d3c8524be7450a9") + (revision "1")) + (package + (name "arcan") + (version (git-version "0.5.5.2" revision commit)) + (source (origin + (method git-fetch) + (file-name (git-file-name name version)) + (uri (git-reference + (url "https://github.com/letoram/arcan.git") + (commit commit))) + (sha256 + (base32 "1pd0avlzc2rig1hd37zbhc7r2s6fjzdhshfg9l9cfzibl7caclyw")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DVIDEO_PLATFORM=egl-dri" "-DBUILTIN_LUA=off" + "-DSTATIC_OPENAL=off""-DENABLE_LWA=on" + "-DSTATIC_SQLITE3=off" "-DSTATIC_FREETYPE=off" + "-DSHMIF_TUI_ACCEL=on") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-cmake-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/platform/cmake/modules/FindGBMKMS.cmake" + (("/usr/local/include/libdrm") + (string-append (assoc-ref inputs "libdrm") + "/include/libdrm"))) + (substitute* "src/platform/cmake/modules/FindAPR.cmake" + (("/usr/local/apr/include/apr-1") + (string-append (assoc-ref inputs "apr") + "/include/apr-1"))) + #t)) + ;; Normally, it tries to fetch patched openal with git + ;; but copying files manually in the right place seems to work too. + (add-after 'unpack 'prepare-static-openal + (lambda* (#:key inputs #:allow-other-keys) + (let ((arcan-openal (assoc-ref inputs "arcan-openal"))) + (copy-recursively arcan-openal "external/git/openal")) + #t)) + (add-after 'prepare-static-openal 'generate-man + (lambda _ + (with-directory-excursion "doc" + (invoke "ruby" "docgen.rb" "mangen")) + #t)) + (add-before 'configure 'chdir + (lambda _ + (chdir "src") + #t)) + (add-after 'install 'wrap-program + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/arcan") + `("ARCAN_RESOURCEPATH" ":" suffix + (,(string-append out "/share/arcan/resources"))) + `("ARCAN_STATEBASEPATH" ":" = + ("$HOME/.arcan/resources/savestates")) + `("ARCAN_STATEPATH" ":" = + ("$HOME/.arcan/resources/savestates")) + `("ARCAN_BINPATH" ":" = + (,(string-append out "/bin/arcan_frameserver"))))) + #t))) + #:tests? #f)) + (native-search-paths + (list (search-path-specification + (variable "ARCAN_APPLBASEPATH") + (separator #f) + (files '("share/arcan/appl"))) + (search-path-specification + (variable "ARCAN_SCRIPTPATH") + (separator #f) + (files '("share/arcan/scripts"))))) + (inputs + `(("apr" ,apr) + ("ffmpeg" ,ffmpeg) + ("freetype" ,freetype) + ("glib" ,glib) + ("glu" ,glu) + ("harfbuzz" ,harfbuzz) + ("libdrm" ,libdrm) + ("libusb" ,libusb) + ("libxkbcommon" ,libxkbcommon) + ("lua" ,luajit) + ("lzip" ,lzip) + ("openal" ,openal) + ("pcre" ,pcre) + ("sqlite" ,sqlite) + ("tesseract-ocr" ,tesseract-ocr) + ("leptonica" ,leptonica) + ("vlc" ,vlc) + ;; To build arcan_lwa, we need a patched version of openal. + ;; https://github.com/letoram/arcan/wiki/packaging + ("arcan-openal" ,(origin + (method git-fetch) + (file-name "arcan-openal-0.5.4") + (uri (git-reference + (url "https://github.com/letoram/openal.git") + (commit "1c7302c580964fee9ee9e1d89ff56d24f934bdef"))) + (sha256 + (base32 + "0dcxcnqjkyyqdr2yk84mprvkncy5g172kfs6vc4zrkklsbkr8yi2")))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("ruby" ,ruby))) ; For documentation and testing + (home-page "https://arcan-fe.com") + (synopsis "Display server, multimedia framework and game engine (egl-dri)") + (description "Arcan is a development framework for creating virtually +anything from user interfaces for specialized embedded applications +all the way to full-blown desktop environments. At its heart lies a multimedia +engine programmable using Lua.") + ;; https://github.com/letoram/arcan/blob/master/COPYING + (license (list license:gpl2+ + license:lgpl2.0 + license:lgpl2.0+ + license:public-domain + license:bsd-3))))) From c36448131dfea5ddb13338d9059d53f5a752c144 Mon Sep 17 00:00:00 2001 From: Lprndn Date: Thu, 24 Jan 2019 13:34:26 +0100 Subject: [PATCH 061/111] gnu: Add arcan-sdl. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/arcan.scm (arcan-sdl): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/arcan.scm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm index 606499ba1f..0dfbf33901 100644 --- a/gnu/packages/arcan.scm +++ b/gnu/packages/arcan.scm @@ -21,6 +21,7 @@ (define-module (gnu packages arcan) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (gnu packages apr) #:use-module (gnu packages audio) #:use-module (gnu packages compression) @@ -36,9 +37,11 @@ (define-module (gnu packages arcan) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages ruby) + #:use-module (gnu packages sdl) #:use-module (gnu packages sqlite) #:use-module (gnu packages video) - #:use-module (gnu packages xdisorg)) + #:use-module (gnu packages xdisorg) + #:use-module (srfi srfi-1)) (define-public arcan (let ((commit "b4dd1fbd1938492ff4b269189d3c8524be7450a9") @@ -156,3 +159,21 @@ (define-public arcan license:lgpl2.0+ license:public-domain license:bsd-3))))) + +(define-public arcan-sdl + (package + (inherit arcan) + (name "arcan-sdl") + (inputs + `(("sdl" ,sdl) + ,@(fold alist-delete (package-inputs arcan) + '("libdrm")))) + (arguments + `(,@(ensure-keyword-arguments + (package-arguments arcan) + '(#:configure-flags + '("-DVIDEO_PLATFORM=sdl" "-DBUILTIN_LUA=off" + "-DSTATIC_OPENAL=off" "-DDISABLE_JIT=off" + "-DENABLE_LWA=on" "-DSTATIC_SQLITE3=off" + "-DSTATIC_FREETYPE=off" "-DSHMIF_TUI_ACCEL=on"))))) + (synopsis "Combined display server, multimedia framework and game engine (SDL)"))) From e7ed996c531b5077f4466d8b9801a3509f00e0e3 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 4 Mar 2019 17:11:50 +0200 Subject: [PATCH 062/111] gnu: mkvtoolnix: Update to 31.0.0. * gnu/packages/video.scm (mkvtoolnix): Update to 31.0.0. [arguments]: Remove unneeded 'with-extra-includes' flag, add flags to disable update checks and not use precompiled headers. --- gnu/packages/video.scm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index bf9cb155f2..76fdec9f2f 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -316,7 +316,7 @@ (define-public libx264 (define-public mkvtoolnix (package (name "mkvtoolnix") - (version "13.0.0") + (version "31.0.0") (source (origin (method url-fetch) @@ -324,7 +324,7 @@ (define-public mkvtoolnix name "-" version ".tar.xz")) (sha256 (base32 - "0hknnnnx9661igm1r73dc7aqxnnrl5a8yvyvr1nhd9ymn2klwpl5")) + "0d8va2iamzc7y3wi71z8mk2vnqvnkgwb2p7casdfp37400x8r2pr")) (modules '((guix build utils))) (snippet '(begin ;; Delete bundled libraries. @@ -368,16 +368,15 @@ (define-public mkvtoolnix (assoc-ref %build-inputs "docbook-xsl") "/xml/xsl/docbook-xsl-" ,(package-version docbook-xsl)) - (string-append "--with-extra-includes=" - (assoc-ref %build-inputs "nlohmann-json-cpp") - "/include/nlohmann")) + "--enable-update-check=no" + "--enable-precompiled-headers=no") #:phases (modify-phases %standard-phases (add-before 'configure 'add-googletest - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) (symlink - (string-append (assoc-ref %build-inputs "googletest") - "/include/gtest") "lib/gtest") + (string-append (assoc-ref inputs "googletest") + "/include/gtest") "lib/gtest") #t)) (replace 'build (lambda _ From f3395a7b4dcf04bad2c07d6de414014a3d227483 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 4 Mar 2019 17:13:30 +0200 Subject: [PATCH 063/111] gnu: mkvtoolnix: Unbundle more libraries. * gnu/packages/video.scm (mkvtoolnix)[source]: Remove more bundled libraries. [inputs]: Add fmt, cmark. --- gnu/packages/video.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 76fdec9f2f..93ebfe09d5 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -112,6 +112,7 @@ (define-module (gnu packages video) #:use-module (gnu packages lua) #:use-module (gnu packages m4) #:use-module (gnu packages man) + #:use-module (gnu packages markup) #:use-module (gnu packages mp3) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) @@ -119,6 +120,7 @@ (define-module (gnu packages video) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages protobuf) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) @@ -329,7 +331,8 @@ (define-public mkvtoolnix (snippet '(begin ;; Delete bundled libraries. (for-each delete-file-recursively - '("lib/libebml" + '("lib/fmt" + "lib/libebml" "lib/libmatroska" "lib/nlohmann-json" "lib/pugixml" @@ -339,9 +342,11 @@ (define-public mkvtoolnix (inputs `(("boost" ,boost) ("bzip2" ,bzip2) + ("cmark" ,cmark) ("libebml" ,libebml) - ("flac" ,flac) ("file" ,file) + ("flac" ,flac) + ("fmt" ,fmt) ("libmatroska" ,libmatroska) ("libogg" ,libogg) ("libvorbis" ,libvorbis) From 662ff659ec6fb2ab2c7b01a5d05d7b72f21f3820 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 4 Mar 2019 17:15:01 +0200 Subject: [PATCH 064/111] gnu: mkvtoolnix: Use modular qt. * gnu/packages/video.scm (mkvtoolnix)[inputs]: Remove qt, add qtbase, qtmultimedia. [native-inputs]: Add qttools. --- gnu/packages/video.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 93ebfe09d5..8e229f1d49 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -352,7 +352,8 @@ (define-public mkvtoolnix ("libvorbis" ,libvorbis) ("lzo" ,lzo) ("pugixml" ,pugixml) - ("qt" ,qt) + ("qtbase" ,qtbase) + ("qtmultimedia" ,qtmultimedia) ("utfcpp" ,utfcpp) ("zlib" ,zlib))) (native-inputs @@ -364,6 +365,7 @@ (define-public mkvtoolnix ("perl" ,perl) ("pkg-config" ,pkg-config) ("po4a" ,po4a) + ("qttools" ,qttools) ("ruby" ,ruby))) (arguments `(#:configure-flags From c9d2d3104bf3554d8c1b476aed5992f000017f7a Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 4 Mar 2019 16:18:17 +0100 Subject: [PATCH 065/111] gnu: looking-glass-client: Update to commit 182c475. * gnu/packages/virtualization.scm (looking-glass-client): Update to commit 182c475. Rename from lookingglass to looking-glass-client. Add deprecated-package lookingglass. --- gnu/packages/virtualization.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 8d9d2335ee..47e24460f9 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -796,10 +796,10 @@ (define-public qmpbackup Machine Protocol.") (license license:gpl3+))) -(define-public lookingglass - (let ((commit "41f4166aedeba65892f6db4de4de467aec9a2052")) +(define-public looking-glass-client + (let ((commit "182c4752d57690da7f99d5e788de9b8baea33895")) (package - (name "lookingglass") + (name "looking-glass-client") (version (string-append "a12-" (string-take commit 7))) (source (origin @@ -809,7 +809,7 @@ (define-public lookingglass (file-name (git-file-name name version)) (sha256 (base32 - "1sjxf4zy7h0zprla3s6dfwsxhmkrwhlhj07svf5bk5ij20bs0dc2")))) + "02bq46ndmzq9cihazzn7xq1x7q5nzm7iw4l9lqzihxcxp9famkhw")))) (build-system cmake-build-system) (inputs `(("fontconfig" ,fontconfig) ("glu" ,glu) @@ -847,6 +847,9 @@ (define-public lookingglass (supported-systems '("i686-linux" "x86_64-linux")) (license license:gpl2+)))) +(define-public lookingglass + (deprecated-package "lookingglass" looking-glass-client)) + (define-public runc (package (name "runc") From 0132f3e67f1a8907ef5132477f6ad678c8d594a0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 4 Mar 2019 17:35:05 +0200 Subject: [PATCH 066/111] gnu: emacs-minimal: Don't inherit configure-flags. * gnu/packages/emacs.scm (emacs-minimal)[arguments]: Move configure-flags lower than inherited package-arguments so it won't be overwritten. --- gnu/packages/emacs.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 7b7fc7fa0f..34b70fe9e8 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -202,11 +202,11 @@ (define-public emacs-minimal (synopsis "The extensible text editor (used only for byte-compilation)") (build-system gnu-build-system) (arguments - `(#:configure-flags (list "--with-gnutls=no") - ,@(substitute-keyword-arguments (package-arguments emacs) + `(,@(substitute-keyword-arguments (package-arguments emacs) ((#:phases phases) `(modify-phases ,phases - (delete 'install-site-start)))))) + (delete 'install-site-start)))) + #:configure-flags (list "--with-gnutls=no"))) (inputs `(("ncurses" ,ncurses))) (native-inputs From 74fea1e2df38afc772313b3bd6658c4a337a1e1c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 4 Mar 2019 16:37:09 +0100 Subject: [PATCH 067/111] gnu: lyx: Remove obsolete patch. * gnu/packages/patches/lyx-2.2.3-fix-test.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/patches/lyx-2.2.3-fix-test.patch | 13 ------------- 2 files changed, 14 deletions(-) delete mode 100644 gnu/packages/patches/lyx-2.2.3-fix-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index 449ee8367d..41c10c82bc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1030,7 +1030,6 @@ dist_patch_DATA = \ %D%/packages/patches/luminance-hdr-qt-printer.patch \ %D%/packages/patches/lvm2-static-link.patch \ %D%/packages/patches/lxsession-use-gapplication.patch \ - %D%/packages/patches/lyx-2.2.3-fix-test.patch \ %D%/packages/patches/make-glibc-compat.patch \ %D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/mariadb-client-test-32bit.patch \ diff --git a/gnu/packages/patches/lyx-2.2.3-fix-test.patch b/gnu/packages/patches/lyx-2.2.3-fix-test.patch deleted file mode 100644 index 10b7d2a3a9..0000000000 --- a/gnu/packages/patches/lyx-2.2.3-fix-test.patch +++ /dev/null @@ -1,13 +0,0 @@ -See https://www.lyx.org/trac/ticket/10800#comment:17 -diff --git a/src/tex2lyx/test/test-structure.lyx.lyx b/src/tex2lyx/test/test-structure.lyx.lyx -index feff755cd2..2c7f2ace5c 100644 ---- a/src/tex2lyx/test/test-structure.lyx.lyx -+++ b/src/tex2lyx/test/test-structure.lyx.lyx -@@ -212,7 +212,7 @@ This causes the - \begin_inset Flex Flex:Strong - status collapsed - --\begin_layout Standard -+\begin_layout Plain Layout - logikalmkup - \end_layout From 96f39b2a6e03d36582108efb11f915b08c454b7c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 4 Mar 2019 17:10:28 +0100 Subject: [PATCH 068/111] gnu: Add java-jblas. * gnu/packages/java-maths.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/java-maths.scm | 89 +++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 gnu/packages/java-maths.scm diff --git a/gnu/local.mk b/gnu/local.mk index 41c10c82bc..01addbd371 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -251,6 +251,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/iso-codes.scm \ %D%/packages/java.scm \ %D%/packages/java-compression.scm \ + %D%/packages/java-maths.scm \ %D%/packages/javascript.scm \ %D%/packages/jemalloc.scm \ %D%/packages/jrnl.scm \ diff --git a/gnu/packages/java-maths.scm b/gnu/packages/java-maths.scm new file mode 100644 index 0000000000..6c22f2938d --- /dev/null +++ b/gnu/packages/java-maths.scm @@ -0,0 +1,89 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Ricardo Wurmus +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages java-maths) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix utils) + #:use-module (guix build-system ant) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages gcc) + #:use-module (gnu packages java) + #:use-module (gnu packages maths) + #:use-module (gnu packages ruby)) + +(define-public java-jblas + (package + (name "java-jblas") + (version "1.2.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mikiobraun/jblas.git") + (commit (string-append "jblas-" version)))) + (sha256 + (base32 + "0afh48hq8i8li5z11x415c8slwsfrlib0w1xjfbg186mximqvv3g")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; there are none + #:configure-flags + (list (string-append "--libpath=" + (assoc-ref %build-inputs "openblas") + "/lib") + "--build-type=openblas") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'make-writable + (lambda _ + (map make-file-writable + (find-files "." ".*")) + #t)) + (add-before 'build 'setenv-JAVA_HOME + (lambda* (#:key inputs #:allow-other-keys) + (setenv "JAVA_HOME" (assoc-ref inputs "jdk")) + #t)) + (add-after 'build 'build-jar + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "M2_HOME" (assoc-ref outputs "out")) + (invoke "ant" "jar" (string-append "-Dversion=" ,version)))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((target (string-append (assoc-ref outputs "out") + "/share/java"))) + (mkdir-p target) + (install-file (string-append "jblas-" ,version ".jar") target)) + #t))))) + (inputs + `(("openblas" ,openblas))) + (native-inputs + `(("ant" ,ant) + ("ruby" ,ruby) ; for configure script + ("gfortran" ,gfortran) + ("jdk" ,icedtea "jdk"))) + (home-page "http://jblas.org") + (synopsis "Linear algebra for Java") + (description + "jblas is a fast linear algebra library for Java. jblas is based on BLAS +and LAPACK, the de-facto industry standard for matrix computations, and uses +state-of-the-art implementations for all its computational routines, making +jBLAS very fast.") + (license license:bsd-3))) From ad257ec8b578b21fc36b142396324df9e6613d4a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 4 Mar 2019 18:36:28 +0100 Subject: [PATCH 069/111] gnu: thermald: Update to 1.8. * gnu/packages/admin.scm (thermald): Update to 1.8. [source]: Add patch. * gnu/packages/patches/thermald-make-int-max32-visible.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/admin.scm | 7 +++--- .../thermald-make-int-max32-visible.patch | 24 +++++++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/thermald-make-int-max32-visible.patch diff --git a/gnu/local.mk b/gnu/local.mk index 01addbd371..60448f9404 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1277,6 +1277,7 @@ dist_patch_DATA = \ %D%/packages/patches/texi2html-document-encoding.patch \ %D%/packages/patches/texi2html-i18n.patch \ %D%/packages/patches/thefuck-test-environ.patch \ + %D%/packages/patches/thermald-make-int-max32-visible.patch \ %D%/packages/patches/tidy-CVE-2015-5522+5523.patch \ %D%/packages/patches/tinyxml-use-stl.patch \ %D%/packages/patches/tipp10-fix-compiling.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 2bc1c325a3..f425c2947c 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2523,7 +2523,7 @@ (define-public nnn (define-public thermald (package (name "thermald") - (version "1.7.2") + (version "1.8") (source (origin (method git-fetch) @@ -2532,8 +2532,9 @@ (define-public thermald (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "1cs2pq8xvfnsvrhg2bxawk4kn3z1qmfrnpnhs178pvfbglzh15hc")))) + (base32 "1g1l7k8yxj8bl1ysdx8v6anv1s7xk9j072y44gwki70dy48n7j92")) + (patches + (search-patches "thermald-make-int-max32-visible.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/patches/thermald-make-int-max32-visible.patch b/gnu/packages/patches/thermald-make-int-max32-visible.patch new file mode 100644 index 0000000000..eddbb23547 --- /dev/null +++ b/gnu/packages/patches/thermald-make-int-max32-visible.patch @@ -0,0 +1,24 @@ +From 5fb947886bf1e40475edf930fb2b284c24c8cb9a Mon Sep 17 00:00:00 2001 +From: Sanel Zukan +Date: Sun, 23 Dec 2018 00:04:34 +0100 +Subject: [PATCH] Make sure INT_MAX32 is visible. + +--- + src/thd_trip_point.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/thd_trip_point.h b/src/thd_trip_point.h +index 0eedc95..89eb083 100644 +--- a/src/thd_trip_point.h ++++ b/src/thd_trip_point.h +@@ -29,6 +29,10 @@ + #include "thd_sys_fs.h" + #include "thd_preference.h" + #include "thd_cdev.h" ++ ++#define __STDC_LIMIT_MACROS ++#include ++ + #include + #include + #include // std::sort From 02eae558fc2a71a9425eb8f8698afe452edebb4b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 4 Mar 2019 19:02:52 +0100 Subject: [PATCH 070/111] gnu: calcurse: Fix documentation directory. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/calcurse.scm (calcurse)[arguments]: Set ‘--docdir’ in #:configure-flags' and add ‘respect-docdir’ phase to use it. --- gnu/packages/calcurse.scm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/gnu/packages/calcurse.scm b/gnu/packages/calcurse.scm index 22b54d47ac..0dff9081f0 100644 --- a/gnu/packages/calcurse.scm +++ b/gnu/packages/calcurse.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2017 Eric Bavier ;;; Copyright © 2017 Leo Famulari -;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,15 +46,25 @@ (define-public calcurse ;; The ical tests all want to create a ".calcurse" directory, and may ;; fail with "cannot create directory '.calcurse': File exists" if run ;; concurently. - `(#:parallel-tests? #f + `(#:configure-flags + (list (string-append "--docdir=" (assoc-ref %outputs "out") + "/share/doc/" ,name "-" ,version)) + #:parallel-tests? #f ;; Since this tzdata is only used for tests and not referenced by the ;; built package, used the "fixed" obsolete version of tzdata and ensure ;; it does not sneak in to the closure. #:disallowed-references (,tzdata-for-tests) #:phases (modify-phases %standard-phases + (add-after 'unpack 'respect-docdir + ;; doc/Makefile disregards ./configure's --docdir option. + (lambda _ + (substitute* "doc/Makefile.in" + (("(docdir =) .*" _ match) + (format "~a @docdir@\n" match))) + #t)) (add-before 'check 'check-setup (lambda* (#:key inputs #:allow-other-keys) - (setenv "TZDIR" ;for test/ical-007.sh + (setenv "TZDIR" ; for test/ical-007.sh (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))))))) (home-page "https://www.calcurse.org") From 171234d572e720e06c34e83814d63fcadda06378 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 4 Mar 2019 19:04:12 +0100 Subject: [PATCH 071/111] gnu: calcurse: Update to 4.4.0. * gnu/packages/calcurse.scm (calcurse): Update to 4.4.0. --- gnu/packages/calcurse.scm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/gnu/packages/calcurse.scm b/gnu/packages/calcurse.scm index 0dff9081f0..559688470e 100644 --- a/gnu/packages/calcurse.scm +++ b/gnu/packages/calcurse.scm @@ -30,15 +30,14 @@ (define-module (gnu packages calcurse) (define-public calcurse (package (name "calcurse") - (version "4.3.0") + (version "4.4.0") (source (origin - (method url-fetch) - (uri (string-append "https://calcurse.org/files/calcurse-" - version ".tar.gz")) - (sha256 - (base32 - "16jzg0nasnxdlz23i121x41pq5kbxmjzk52c5d863rg117fc7v1i")))) + (method url-fetch) + (uri (string-append "https://calcurse.org/files/calcurse-" + version ".tar.gz")) + (sha256 + (base32 "0vw2xi6a2lrhrb8n55zq9lv4mzxhby4xdf3hmi1vlfpyrpdwkjzd")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) (native-inputs `(("tzdata" ,tzdata-for-tests))) From 7d3a78e731c87f336ea70597b6ae7506078d8931 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Mon, 4 Mar 2019 19:42:10 +0100 Subject: [PATCH 072/111] gnu: emacs-orgit: Update to 20190304. * gnu/packages/emacs-xyz.scm (emacs-orgit): Update to 20190304. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index cd18d56e66..712dafae90 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -13186,10 +13186,10 @@ (define-public emacs-disk-usage (license license:gpl3+))) (define-public emacs-orgit - (let ((commit "ddb830c38cb71e5cf86db7fa62d6ee88ab3962d5")) + (let ((commit "2456436a7e64d26bcf455b3890a586acaa3e7f93")) (package (name "emacs-orgit") - (version (git-version "1.5.1" "1" commit)) + (version (git-version "1.5.1" "2" commit)) (home-page "https://github.com/magit/orgit") (source (origin (method git-fetch) @@ -13199,7 +13199,7 @@ (define-public emacs-orgit (file-name (git-file-name name version)) (sha256 (base32 - "0fy4n71yskfkjl6w9mzrw3pfd5lp8f48g2c9bxiwg7mwzsmsb9nb")))) + "1i52dq2ynddb1irgigr5mdwfbfd3bvm1f29jnzd7nlc0nk186nvh")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) From 3d03fed47fc9a9af784a026a8ac76418f609b639 Mon Sep 17 00:00:00 2001 From: Dan Frumin Date: Mon, 4 Mar 2019 16:36:02 +0100 Subject: [PATCH 073/111] gnu: coq-coquelicot: Update to 3.0.2. * gnu/packages/coq.scm (coq-coquelicot): Update to 3.0.2. Signed-off-by: Julien Lepiller --- gnu/packages/coq.scm | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index 5393d4273b..83f5cd29af 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -327,14 +327,14 @@ (define-public coq-mathcomp (define-public coq-coquelicot (package (name "coq-coquelicot") - (version "3.0.1") + (version "3.0.2") (source (origin (method url-fetch) (uri (string-append "https://gforge.inria.fr/frs/download.php/" - "file/37045/coquelicot-" version ".tar.gz")) + "file/37523/coquelicot-" version ".tar.gz")) (sha256 (base32 - "0hsyhsy2lwqxxx2r8xgi5csmirss42lp9bkb9yy35mnya0w78c8r")))) + "1biia7nfqf7vaqq5gmykl4rwjyvrcwss6r2jdf0in5pvp2rnrj2w")))) (build-system gnu-build-system) (native-inputs `(("ocaml" ,ocaml) @@ -348,12 +348,6 @@ (define-public coq-coquelicot "/lib/coq/user-contrib/Coquelicot")) #:phases (modify-phases %standard-phases - (add-before 'configure 'fix-coq8.8 - (lambda _ - ; appcontext has been removed from coq 8.8 - (substitute* "theories/AutoDerive.v" - (("appcontext") "context")) - #t)) (add-before 'configure 'fix-remake (lambda _ (substitute* "remake.cpp" From 2850d877720f97ef1ac6a760043bce4ac2b0af1b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 4 Mar 2019 21:52:38 +0200 Subject: [PATCH 074/111] gnu: dehydrated: Don't use unstable tarball. * gnu/packages/tls.scm (dehydrated)[source]: Use release tarball. [native-inputs]: Add gzip, tar. [arguments]: Unzip tarball before installing. Install license file. --- gnu/packages/tls.scm | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 6b131657f9..26a2eaa2a7 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2015 David Thompson ;;; Copyright © 2015, 2016, 2017, 2018 Leo Famulari -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2019 Efraim Flashner ;;; Copyright © 2016, 2017, 2018 Nils Gillmann ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Ricardo Wurmus @@ -929,14 +929,13 @@ (define-public dehydrated (name "dehydrated") (version "0.6.2") (source (origin - (method url-fetch/tarbomb) + (method url-fetch) (uri (string-append - "https://github.com/lukas2511/dehydrated/archive/v" - version ".tar.gz")) + "https://github.com/lukas2511/dehydrated/releases/download/" + "v" version "/dehydrated-" version ".tar.gz")) (sha256 (base32 - "03p80yj6bnzjc6dkp5hb9wpplmlrla8n5src71cnzw4rj53q8cqn")) - (file-name (string-append name "-" version ".tar.gz")))) + "03p80yj6bnzjc6dkp5hb9wpplmlrla8n5src71cnzw4rj53q8cqn")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -944,15 +943,20 @@ (define-public dehydrated (begin (use-modules (guix build utils)) (let* ((source (assoc-ref %build-inputs "source")) + (tar (assoc-ref %build-inputs "tar")) + (gz (assoc-ref %build-inputs "gzip")) (out (assoc-ref %outputs "out")) (bin (string-append out "/bin")) + (doc (string-append out "/share/doc/")) (bash (in-vicinity (assoc-ref %build-inputs "bash") "bin"))) - (mkdir-p bin) + + (setenv "PATH" (string-append gz "/bin")) + (invoke (string-append tar "/bin/tar") "xvf" source) + (chdir (string-append ,name "-" ,version)) + + (install-file "dehydrated" bin) + (install-file "LICENSE" (string-append doc ,name "-" ,version)) (with-directory-excursion bin - (copy-file - (in-vicinity source (string-append "/dehydrated-" ,version - "/dehydrated")) - (in-vicinity bin "dehydrated")) (patch-shebang "dehydrated" (list bash)) ;; Do not try to write in the store. @@ -983,6 +987,9 @@ (define-public dehydrated ("grep" ,grep) ("openssl" ,openssl) ("sed" ,sed))) + (native-inputs + `(("gzip" ,gzip) + ("tar" ,tar))) (home-page "https://dehydrated.io/") (synopsis "Let's Encrypt/ACME client implemented as a shell script") (description "Dehydrated is a client for signing certificates with an From 433e3154302246b3009b44e7d8da266919ef0af8 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:09:07 +0000 Subject: [PATCH 075/111] gnu: Add ruby-open4. Also add a copyright line, as I've obviously neglected to do that in the past. * gnu/packages/ruby.scm (ruby-open4): New variable. --- gnu/packages/ruby.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index a81535aade..89ee5211be 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2017, 2018 Efraim Flashner ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017, 2018, 2019 Christopher Baines ;;; Copyright © 2018 Vasile Dumitrascu ;;; Copyright © 2018 Alex Vong ;;; @@ -1172,6 +1173,40 @@ (define-public ruby-saikuro-treemap (home-page "https://github.com/ThoughtWorksStudios/saikuro_treemap") (license license:expat))) +(define-public ruby-open4 + (package + (name "ruby-open4") + (version "1.3.4") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "open4" version)) + (sha256 + (base32 + "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* "rakefile" + ;; Update the Rakefile so it works + (("-rubygems") "-rrubygems") + (("Config") "RbConfig")) + #t)) + (add-before 'check 'set-LIB + (lambda _ + ;; This is used in the rakefile when running the tests + (setenv "LIB" "open4") + #t))))) + (synopsis "Open child processes from Ruby and manage them easily") + (description + "@code{Open4} is a Ruby library to run child processes and manage their +input and output.") + (home-page "https://github.com/ahoward/open4") + (license license:ruby))) + (define-public ruby-options (package (name "ruby-options") From 353b7eb8c5e35beb94b4ad7208a0d72704e7c9fb Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:10:12 +0000 Subject: [PATCH 076/111] gnu: Add ruby-hamster. * gnu/packages/ruby.scm (ruby-hamster): New variable. --- gnu/packages/ruby.scm | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 89ee5211be..521ad35936 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1562,6 +1562,52 @@ (define-public ruby-fuubar (home-page "https://github.com/thekompanee/fuubar") (license license:expat))) +(define-public ruby-hamster + (package + (name "ruby-hamster") + (version "3.0.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "hamster" version)) + (sha256 + (base32 + "1n1lsh96vnyc1pnzyd30f9prcsclmvmkdb3nm5aahnyizyiy6lar")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-unnecessary-dependencies + (lambda _ + ;; pry is a debugging tool, and is unnecessary when running the + ;; tests + (substitute* "spec/lib/hamster/vector/insert_spec.rb" + (("require 'pry'") "")) + (substitute* "spec/spec_helper.rb" + (("require \"pry\"") "") + ;; CodeClimate is an online service, and is unnecessary for + ;; running the tests + (("require \"codeclimate-test-reporter\"") "") + (("CodeClimate.*\n") "")) + #t)) + ;; No Rakefile is included, so run rspec directly. + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "rspec")) + #t))))) + (propagated-inputs + `(("ruby-concurrent" ,ruby-concurrent))) + (native-inputs + `(("ruby-rspec" ,ruby-rspec))) + (synopsis "Efficient, immutable, thread-safe collection classes for Ruby") + (description + "Hamster provides 6 persistent data structures: @code{Hash}, @code{Vector}, +@code{Set}, @code{SortedSet}, @code{List}, and @code{Deque} (which works as an +immutable queue or stack).") + (home-page "https://github.com/hamstergem/hamster") + (license license:expat))) + (define-public ruby-hashdiff (package (name "ruby-hashdiff") From b32225187bcd54749b9d6fcf10c0deaf350775c5 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:10:24 +0000 Subject: [PATCH 077/111] gnu: Add ruby-lino. * gnu/packages/ruby.scm (ruby-lino): New variable. --- gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 521ad35936..5ed1231d58 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1326,6 +1326,31 @@ (define-public ruby-libxml (home-page "https://xml4r.github.com/libxml-ruby") (license license:expat))) +(define-public ruby-lino + (package + (name "ruby-lino") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "lino" version)) + (sha256 + (base32 + "11d29g0fk372b9fcpyr0k6hxm2b4j4igpysmi542hgbbgqgp9cd3")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; No included tests + (propagated-inputs + `(("ruby-hamster" ,ruby-hamster) + ("ruby-open4" ,ruby-open4))) + (synopsis "Build and execute commands in Ruby") + (description + "@code{Lino} provides an interface to run external commands. It provides +an interface to add options as well as managing the standard input, output and +error streams.") + (home-page "https://github.com/tobyclemson/lino") + (license license:expat))) + (define-public ruby-xml-simple (package (name "ruby-xml-simple") From a714c30f96d8714cfb4a9cc48cfa05ea5ce9a01a Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:10:34 +0000 Subject: [PATCH 078/111] gnu: Add ruby-terraform. * gnu/packages/ruby.scm (ruby-terraform): New variable. --- gnu/packages/ruby.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 5ed1231d58..5cf0cf0ade 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3812,6 +3812,29 @@ (define-public ruby-term-ansicolor ;; There is no mention of the "or later" clause. (license license:gpl2))) +(define-public ruby-terraform + (package + (name "ruby-terraform") + (version "0.22.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "ruby-terraform" version)) + (sha256 + (base32 + "13zjkp71cd19j2ds2h9rqwcfr1zdg5nsh63p89l6qcsc9z39z324")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; No included tests + (propagated-inputs + `(("ruby-lino" ,ruby-lino))) + (synopsis "Ruby wrapper around the Terraform command line interface") + (description + "This package provides a Ruby wrapper around the Terraform command line +interface so that Terraform can be more easily invoked from Ruby code.") + (home-page "https://github.com/infrablocks/ruby_terraform") + (license license:expat))) + (define-public ruby-pstree (package (name "ruby-pstree") From dbbe88d383d6f17084e3ff5b4ffd82b18654a8be Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:10:44 +0000 Subject: [PATCH 079/111] gnu: Add ruby-que. * gnu/packages/ruby.scm (ruby-que): New variable. --- gnu/packages/ruby.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 5cf0cf0ade..847f499b45 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -6114,6 +6114,27 @@ (define-public ruby-qed (home-page "https://rubyworks.github.io/qed") (license license:bsd-2))) +(define-public ruby-que + (package + (name "ruby-que") + (version "1.0.0.beta3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "que" version)) + (sha256 + (base32 + "0gr9pb814d4qj3ds98g6cjrdk7wv0yg8aqbm7c1lmgl87jkg8q04")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; No included tests + (synopsis "Job queue using PostgreSQL written in Ruby") + (description + "This package provides a job queue that uses PostgreSQL for storing jobs +and locking between worker processes.") + (home-page "https://github.com/chanks/que") + (license license:expat))) + (define-public ruby-ae (package (name "ruby-ae") From 2a9ce5cb3eaf4c8b86e99653adb35105065896cc Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:10:55 +0000 Subject: [PATCH 080/111] gnu: Add ruby-rbnacl. * gnu/packages/ruby.scm (ruby-rbnacl): New variable. --- gnu/packages/ruby.scm | 58 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 847f499b45..73130b67ec 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -35,6 +35,7 @@ (define-module (gnu packages ruby) #:use-module (gnu packages base) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crypto) #:use-module (gnu packages databases) #:use-module (gnu packages dbm) #:use-module (gnu packages rails) @@ -1413,6 +1414,63 @@ (define-public ruby-lumberjack (home-page "https://github.com/bdurand/lumberjack") (license license:expat))) +(define-public ruby-rbnacl + (package + (name "ruby-rbnacl") + (version "6.0.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rbnacl" version)) + (sha256 + (base32 + "0ajxy5kj2jw09wdsla3jmha8w07vj5l14288xr9djpl327g3lzhn")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-unnecessary-dependencies + (lambda _ + ;; Coveralls relates to a network service, and Rubocop to code + ;; linting and both are unnecessary to run the tests + (substitute* "Gemfile" + ((".*rubocop.*") "\n") + ((".*guard-rspec.*") "\n") + ((".*coveralls.*") "\n")) + (substitute* "spec/spec_helper.rb" + (("require \"coveralls\"") "") + (("Coveralls.wear!") "")) + #t)) + (add-after 'unpack 'use-libsodium-from-store + (lambda* (#:key inputs #:allow-other-keys) + (substitute* '("lib/rbnacl/init.rb" + "lib/rbnacl/sodium.rb") + (("ffi_lib \\[.+\\]") + (string-append "ffi_lib [\"" + (assoc-ref inputs "libsodium") "/lib/libsodium.so" + "\"]"))) + #t)) + ;; Run Rspec directly to avoid the Rubocop dependency in the Rakefile + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "rspec")) + #t))))) + (propagated-inputs + `(("ruby-ffi" ,ruby-ffi))) + (inputs + `(("libsodium" ,libsodium))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec))) + (synopsis "Ruby FFI binding to libsodium") + (description + "This package provides Ruby FFI bindings to the Networking and +Cryptography (NaCl) library, also known as libsodium. This provides a +high-level toolkit for building cryptographic systems and protocols.") + (home-page "https://github.com/crypto-rb/rbnacl") + (license license:expat))) + (define-public ruby-nenv (package (name "ruby-nenv") From 2a8581ac38d66035002fedaca6280eac82f527c1 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:11:06 +0000 Subject: [PATCH 081/111] gnu: Add ruby-jwt. * gnu/packages/ruby.scm (ruby-jwt): New variable. --- gnu/packages/ruby.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 73130b67ec..c74e9f9b66 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -4030,6 +4030,44 @@ (define-public ruby-json-pure (home-page "https://flori.github.com/json") (license license:ruby))) +(define-public ruby-jwt + (package + (name "ruby-jwt") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "jwt" version)) + (sha256 + (base32 + "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky")))) + (build-system ruby-build-system) + (arguments + '(#:test-target "test" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-unnecessary-dependencies + (lambda _ + (substitute* "spec/spec_helper.rb" + (("require 'simplecov.*") "\n") + ;; Use [].each to disable running the SimpleCov configuration + ;; block + (("SimpleCov\\.configure") "[].each") + (("require 'codeclimate-test-reporter'") "") + (("require 'codacy-coverage'") "") + (("Codacy::Reporter\\.start") "")) + #t))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec) + ("ruby-rbnacl" ,ruby-rbnacl))) + (synopsis "Ruby implementation of the JSON Web Token standard") + (description + "This package provides a pure Ruby implementation of the RFC 7519 OAuth +@acronym{JWT, JSON Web Token} standard.") + (home-page "https://github.com/jwt/ruby-jwt") + (license license:expat))) + ;; Even though this package only provides bindings for a Mac OSX API it is ;; required by "ruby-listen" at runtime. (define-public ruby-rb-fsevent From ca914b5bb1165b4b6624f2c41800ea2880a7f320 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:12:12 +0000 Subject: [PATCH 082/111] gnu: Add ruby-multi-xml. * gnu/packages/ruby.scm (ruby-multi-xml): New variable. --- gnu/packages/ruby.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index c74e9f9b66..15efd72470 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3098,6 +3098,27 @@ (define-public ruby-slop-3 (base32 "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n")))))) +(define-public ruby-multi-xml + (package + (name "ruby-multi-xml") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "multi_xml" version)) + (sha256 + (base32 + "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; No included tests + (synopsis "Swappable XML backends for Ruby") + (description + "@code{MultiXml} provides swappable XML backends utilizing either LibXML, +Nokogiri, Ox, or REXML.") + (home-page "https://github.com/sferik/multi_xml") + (license license:expat))) + (define-public ruby-multipart-post (package (name "ruby-multipart-post") From 92b3750059f3e9a0b4998788af20399e990897dc Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:12:31 +0000 Subject: [PATCH 083/111] gnu: Add ruby-oauth2. * gnu/packages/ruby.scm (ruby-oauth2): New variable. --- gnu/packages/ruby.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 15efd72470..7adaca8144 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1174,6 +1174,33 @@ (define-public ruby-saikuro-treemap (home-page "https://github.com/ThoughtWorksStudios/saikuro_treemap") (license license:expat))) +(define-public ruby-oauth2 + (package + (name "ruby-oauth2") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "oauth2" version)) + (sha256 + (base32 + "0av6nlb5y2sm6m8fx669ywrqa9858yqaqfqzny75nqp3anag89qh")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; No included tests + (propagated-inputs + `(("ruby-faraday" ,ruby-faraday) + ("ruby-jwt" ,ruby-jwt) + ("ruby-multi-json" ,ruby-multi-json) + ("ruby-multi-xml" ,ruby-multi-xml) + ("ruby-rack" ,ruby-rack))) + (synopsis "Ruby wrapper for the OAuth 2.0") + (description + "This package provides a Ruby wrapper for the OAuth 2.0 protocol built +with a similar style to the original OAuth spec.") + (home-page "https://github.com/oauth-xx/oauth2") + (license license:expat))) + (define-public ruby-open4 (package (name "ruby-open4") From 29dc48231d510837b5f41ad080a9b49090c4aa2b Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:12:56 +0000 Subject: [PATCH 084/111] gnu: Add ruby-omniauth. * gnu/packags/ruby.scm (ruby-omniauth): New variable. --- gnu/packages/ruby.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 7adaca8144..946eef1fcc 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1201,6 +1201,30 @@ (define-public ruby-oauth2 (home-page "https://github.com/oauth-xx/oauth2") (license license:expat))) +(define-public ruby-omniauth + (package + (name "ruby-omniauth") + (version "1.9.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "omniauth" version)) + (sha256 + (base32 + "1p16h1rp8by05k8gfw17xjhgwp60dk8qmj1xalv1n23kmxfsxb1x")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; No included tests + (propagated-inputs + `(("ruby-hashie" ,ruby-hashie) + ("ruby-rack" ,ruby-rack))) + (synopsis "Generalized Rack framework for multiple-provider authentication") + (description + "This package provides a generalized Rack framework for multiple-provider +authentication.") + (home-page "https://github.com/omniauth/omniauth") + (license license:expat))) + (define-public ruby-open4 (package (name "ruby-open4") From e32c99d23ea2927bf9ce2a974f6e5b27f2d28f35 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:13:14 +0000 Subject: [PATCH 085/111] gnu: Add ruby-warden. * gnu/packages/ruby.scm (ruby-warden): New variable. --- gnu/packages/ruby.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 946eef1fcc..06ec2e7129 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -5815,6 +5815,29 @@ (define-public ruby-unf (home-page "https://github.com/knu/ruby-unf") (license license:bsd-2))) +(define-public ruby-warden + (package + (name "ruby-warden") + (version "1.2.8") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "warden" version)) + (sha256 + (base32 + "1fr9n9i9r82xb6i61fdw4xgc7zjv7fsdrr4k0njchy87iw9fl454")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; No included tests + (propagated-inputs + `(("ruby-rack" ,ruby-rack))) + (synopsis "Rack middleware providing authentication") + (description + "Warden is a Rack-based middleware that provides a mechanism for +authentication in Ruby web applications.") + (home-page "https://github.com/wardencommunity/warden") + (license license:expat))) + (define-public ruby-webmock-2 (package (name "ruby-webmock") From e42eecdb78130d9910d5569d8f7d220ad45f1bb8 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:13:34 +0000 Subject: [PATCH 086/111] gnu: Add ruby-warden-oauth2. * gnu/packages/ruby.scm (ruby-warden-oauth2): New variable. --- gnu/packages/ruby.scm | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 06ec2e7129..a98b531837 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -5838,6 +5838,54 @@ (define-public ruby-warden (home-page "https://github.com/wardencommunity/warden") (license license:expat))) +(define-public ruby-warden-oauth2 + (package + (name "ruby-warden-oauth2") + (version "0.0.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "warden-oauth2" version)) + (sha256 + (base32 + "1z9154lvzrnnfjbjkmirh4n811nygp6pm2fa6ikr7y1ysa4zv3cz")))) + (build-system ruby-build-system) + (arguments + '(#:test-target "spec" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-unnecessary-dependencies + (lambda _ + (substitute* "Gemfile" + ;; All of these gems relate to development, and are unnecessary + ;; when running the tests + (("gem 'guard-bundler'") "") + (("gem 'guard'") "") + (("gem 'guard-rspec'") "") + (("gem 'rb-fsevent'") "") + (("gem 'pry'") "") + (("gem 'growl'") "")) + #t)) + ;; The test suite doesn't work with rspec@2, and this is incompatible + ;; with the current version of Rake, so invoke Rspec directly + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "bundle" "exec" "rspec")) + #t))))) + (propagated-inputs + `(("ruby-warden" ,ruby-warden))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec-2) + ("ruby-rack-test" ,ruby-rack-test))) + (synopsis "OAuth 2.0 strategies for Warden") + (description + "This library extends Warden to support OAuth 2.0 authorized API +requests.") + (home-page "https://github.com/opperator/warden-oauth2") + (license license:expat))) + (define-public ruby-webmock-2 (package (name "ruby-webmock") From ad6471d41574a145474bdf5b197c63417192157c Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:13:59 +0000 Subject: [PATCH 087/111] gnu: Add ruby-with-advisory-lock. * gnu/packages/rails.scm (ruby-with-advisory-lock): New variable. --- gnu/packages/rails.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm index 2d7ccceff7..754539f546 100644 --- a/gnu/packages/rails.scm +++ b/gnu/packages/rails.scm @@ -413,6 +413,34 @@ (define-public ruby-sprockets-rails "https://github.com/rails/sprockets-rails") (license license:expat))) +(define-public ruby-with-advisory-lock + (package + (name "ruby-with-advisory-lock") + (version "4.0.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "with_advisory_lock" version)) + (sha256 + (base32 + "1k37hxgmaqgsd54gplm5xim9nw3ghvqsbzaw7q4q64ha1nbd9a41")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; TODO Tests require a running MySQL service + (propagated-inputs + `(("ruby-activerecord" ,ruby-activerecord))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-yard" ,ruby-yard) + ("ruby-mysql2" ,ruby-mysql2))) + (synopsis "Advisory locking for ActiveRecord") + (description + "The With advisory lock gem adds advisory locking to ActiveRecord for +PostgreSQL and MySQL. SQLite is also supported, but this uses the filesystem +for locks.") + (home-page "https://closuretree.github.io/with_advisory_lock/") + (license license:expat))) + (define-public ruby-rails (package (name "ruby-rails") From d6084cdb12f85b4e6bf3db8485a44cc9514cfab5 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:14:11 +0000 Subject: [PATCH 088/111] gnu: Add ruby-omniauth-oauth2. * gnu/packages/ruby.scm (ruby-omniauth-oauth2): New variable. --- gnu/packages/ruby.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index a98b531837..19d7cc9023 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1225,6 +1225,48 @@ (define-public ruby-omniauth (home-page "https://github.com/omniauth/omniauth") (license license:expat))) +(define-public ruby-omniauth-oauth2 + (package + (name "ruby-omniauth-oauth2") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "omniauth-oauth2" version)) + (sha256 + (base32 + "11mi36l9d97r77q99jnafdc1yaa0a9wahhpp7dj7ank8q52g7g79")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-unnecessary-dependencies + (lambda _ + ;; The coveralls gem submits coverage information to an online + ;; service, and is unnecessary when running the tests + (substitute* "Gemfile" + ((".*coveralls\"") "")) + (substitute* "spec/helper.rb" + (("require \"coveralls\"") "") + (("Coveralls::SimpleCov::Formatter") "")) + #t))))) + (propagated-inputs + `(("ruby-oauth2" ,ruby-oauth2) + ("ruby-omniauth" ,ruby-omniauth))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec) + ("ruby-simplecov" ,ruby-simplecov) + ("ruby-rack-test" ,ruby-rack-test) + ("ruby-webmock" ,ruby-webmock-2))) + (synopsis "Abstract OAuth2 strategy for OmniAuth") + (description + "This library provides a generic OAuth2 strategy for OmniAuth. It +doesn't provide a way to gather user information, so should be used as a +building block for authentication strategies.") + (home-page "https://github.com/omniauth/omniauth-oauth2") + (license license:expat))) + (define-public ruby-open4 (package (name "ruby-open4") From 93dc8684cf5f72d88dbd969f6d363e2a6381314a Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:14:31 +0000 Subject: [PATCH 089/111] gnu: Add ruby-test-construct. * gnu/packages/ruby.scm (ruby-test-construct): New variable. --- gnu/packages/ruby.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 19d7cc9023..3ac75cc237 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2242,6 +2242,29 @@ (define-public ruby-packnga (home-page "http://ranguba.org/packnga/") (license license:lgpl2.0+))) +(define-public ruby-test-construct + (package + (name "ruby-test-construct") + (version "2.0.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "test_construct" version)) + (sha256 + (base32 + "1a2ym3l068d0pxzzr95kvqx87zpdsarxslz9ygd4qfm9frrz0kgj")))) + (build-system ruby-build-system) + (native-inputs + `(("bundler" ,bundler) + ("ruby-mocha" ,ruby-mocha) + ("ruby-rspec" ,ruby-rspec))) + (synopsis "Creates temporary files and directories for testing") + (description + "TestConstruct is a @acronym{DSL, Domain Specific Language} for creating +temporary files and directories during tests.") + (home-page "https://github.com/bhb/test_construct") + (license license:expat))) + (define-public ruby-test-unit (package (name "ruby-test-unit") From 450a3f7f2b44b5965cf14a2fc95ce1191ae6ab96 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:14:39 +0000 Subject: [PATCH 090/111] gnu: Add ruby-minitest-around. * gnu/packages/ruby.scm (ruby-minitest-around): New variable. --- gnu/packages/ruby.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 3ac75cc237..3adacfee2f 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2842,6 +2842,40 @@ (define-public ruby-minitest-4 (delete-file "test/minitest/test_minitest_spec.rb") #t))))))) +(define-public ruby-minitest-around + (package + (name "ruby-minitest-around") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "minitest-around" version)) + (sha256 + (base32 + "15ywnqx0719jl9c25yqfshmwcir57i5f4hr1ra9v9vay9ylcwndr")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'extract-gemspec 'remove-unnecessary-dependency-versions + (lambda _ + (substitute* "minitest-around.gemspec" + (("%q.*") "%q, [\">= 0\"])\n")) + #t))))) + (propagated-inputs + `(("ruby-minitest" ,ruby-minitest))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-cucumber" ,ruby-cucumber) + ("ruby-bump" ,ruby-bump) + ("ruby-test-construct" ,ruby-test-construct))) + (synopsis "Run code around tests in Minitest") + (description + "This library provides a way to run code around tests in Minitest, +written using either the unit test or spec style.") + (home-page "https://github.com/splattael/minitest-around") + (license license:expat))) + (define-public ruby-minitest-sprint (package (name "ruby-minitest-sprint") From 7fe1be1879f0de516dbca7217540606bb81b0da6 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:14:49 +0000 Subject: [PATCH 091/111] gnu: Add libsass. * gnu/packages/web.scm (libsass): New variable. --- gnu/packages/web.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 2500bd0be7..15762f05d4 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2017 Petter ;;; Copyright © 2017 Pierre Langlois ;;; Copyright © 2017 Rutger Helling +;;; Copyright © 2017, 2019 Christopher Baines ;;; Copyright © 2018 Julien Lepiller ;;; Copyright © 2018 Pierre-Antoine Rouby ;;; Copyright © 2018 Gábor Boskovits @@ -1248,6 +1249,40 @@ (define-public serf ;; bundled CuTest framework uses a different non-copyleft license. (license (list l:asl2.0 (l:non-copyleft "file://test/CuTest-README.txt"))))) +(define-public libsass + (package + (name "libsass") + (version "3.5.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sass/libsass.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0830pjcvhzxh6yixj82x5k5r1xnadjqzi16kp53213icbly0r9ma")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'set-LIBSASS_VERSION + (lambda _ + (setenv "LIBSASS_VERSION" ,version) + #t))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (home-page "https://sass-lang.com/libsass") + (synopsis "SASS Compiler, implemented as a C/C++ library") + (description + "LibSass is a @acronym{SASS,Syntactically awesome style sheets} compiler +library designed for portability and efficiency. To actually compile SASS +stylesheets, you'll need to use another program that uses this library, +@var{sassc} for example.") + (license l:expat))) + (define-public sassc ;; libsass must be statically linked and it isn't included in the sassc ;; release tarballs, hence this odd package recipe. From 8c1501577962e90c6b01762be7c0a5be4c97d6ba Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:15:13 +0000 Subject: [PATCH 092/111] gnu: sassc: Update and improve the package. Now that libsass is packaged, change the sassc package to build a dynamically linked binary. Also update the version, and change the source to the Git repository, rather than the archives from GitHub. * gnu/packages/web.scm (sassc): Update to 3.5.0. [source]: Change to the Git repository. [arguments]: Tweak to link against libsass. --- gnu/packages/web.scm | 95 +++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 49 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 15762f05d4..d9b7def67b 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1284,56 +1284,53 @@ (define-public libsass (license l:expat))) (define-public sassc - ;; libsass must be statically linked and it isn't included in the sassc - ;; release tarballs, hence this odd package recipe. - (let* ((version "3.4.5") - (libsass - (origin - (method url-fetch) - (uri (string-append - "https://github.com/sass/libsass/archive/" - version ".tar.gz")) - (file-name (string-append "libsass-" version ".tar.gz")) - (sha256 - (base32 - "1j22138l5ymqjfj5zan9d2hipa3ahjmifgpjahqy1smlg5sb837x"))))) - (package - (name "sassc") - (version version) - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/sass/sassc/archive/" - version ".tar.gz")) - (file-name (string-append "sassc-" version ".tar.gz")) - (sha256 - (base32 - "1xk4kmmvziz9sal3swpqa10q0s289xjpcz8aggmly8mvxvmngsi9")))) - (build-system gnu-build-system) - (arguments - `(#:make-flags - (list "CC=gcc" - (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:test-target "test" - ;; FIXME: "make test" rebuilds the application and gets lost in a - ;; non-existing directory. - #:tests? #f - #:phases - (modify-phases %standard-phases - (delete 'bootstrap) - (delete 'configure) - (add-after 'unpack 'unpack-libsass-and-set-path - (lambda* (#:key inputs #:allow-other-keys) - (invoke "tar" "xvf" (assoc-ref inputs "libsass")) - (setenv "SASS_LIBSASS_PATH" - (string-append (getcwd) "/libsass-" ,version)) - #t))))) - (inputs - `(("libsass" ,libsass))) - (synopsis "CSS pre-processor") - (description "SassC is a compiler written in C for the CSS pre-processor + (package + (name "sassc") + (version "3.5.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sass/sassc.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jsfz1zg4gwk0dq8i92ll12axs3s70wsdsmdyi71zx8zmvib5nl6")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list "CC=gcc" + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + ;; I don't believe sassc contains any tests + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-Makefile + (lambda _ + (substitute* "Makefile" + (("build-shared: \\$\\(RESOURCES\\) \\$\\(OBJECTS\\) \\$\\(LIB_SHARED\\)") + "build-shared: $(RESOURCES) $(OBJECTS)") + (("\\$\\(SASSC_EXE\\): libsass build") + "$(SASSC_EXE): build") + (("install: libsass-install-\\$\\(BUILD\\) \\\\") + "install: \\")) + #t)) + ;; This phase fails for some reason + (delete 'bootstrap) + ;; There is no configure script + (delete 'configure) + (add-before 'build 'setup-environment + (lambda _ + (setenv "BUILD" "shared") + (setenv "SASSC_VERSION" ,version) + #t))))) + (inputs + `(("libsass" ,libsass))) + (synopsis "CSS pre-processor") + (description "SassC is a compiler written in C for the CSS pre-processor language known as SASS.") - (home-page "http://sass-lang.com/libsass") - (license l:expat)))) + (home-page "http://sass-lang.com/libsass") + (license l:expat))) (define-public perl-apache-logformat-compiler From 9efc888d97afef7ed921aede7cc8a9275faeaf9e Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:16:49 +0000 Subject: [PATCH 093/111] gnu: Add ruby-sassc. * gnu/packages/ruby.scm (ruby-sassc): New variable. --- gnu/packages/ruby.scm | 75 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 3adacfee2f..b3c19808a6 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -7415,6 +7415,81 @@ (define-public ruby-sass features that don't exist yet like variables, nesting, mixins and inheritance.") (license license:expat))) +(define-public ruby-sassc + (package + (name "ruby-sassc") + (version "2.0.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "sassc" version)) + (sha256 + (base32 + "1sr4825rlwsrl7xrsm0sgalcpf5zgp4i56dbi3qxfa9lhs8r6zh4")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; TODO: This would be better as a snippet, but the ruby-build-system + ;; doesn't seem to support that + (add-after 'unpack 'remove-libsass + (lambda _ + (delete-file-recursively "ext") + #t)) + (add-after 'unpack 'dont-check-the-libsass-version + (lambda _ + (substitute* "test/native_test.rb" + (("assert_equal.*Native\\.version") "")) + #t)) + (add-after 'unpack 'remove-git-from-gemspec + (lambda _ + (substitute* "sassc.gemspec" + (("`git ls-files -z`") "`find . -type f -print0 |sort -z`") + (("`git submodule --quiet foreach pwd`") "''")) + #t)) + (add-after 'unpack 'remove-extensions-from-gemspec + (lambda _ + (substitute* "sassc.gemspec" + (("\\[\"ext/Rakefile\"\\]") "[]")) + #t)) + (add-after 'unpack 'fix-Rakefile + (lambda _ + (substitute* "Rakefile" + (("test: 'libsass:compile'") ":test")) + #t)) + (add-after 'unpack 'remove-unnecessary-dependencies + (lambda _ + (substitute* "test/test_helper.rb" + (("require \"pry\"") "")) + #t)) + (add-before 'build 'patch-native.rb + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "lib/sassc/native.rb" + ((".*gem_root = spec.gem_dir") "") + (("ffi_lib .*\n") + (string-append + "ffi_lib '" (assoc-ref inputs "libsass") "/lib/libsass.so'"))) + #t)) + ;; The gemspec still references the libsass files, so just keep the + ;; one in the gem. + (delete 'extract-gemspec)))) + (propagated-inputs + `(("ruby-ffi" ,ruby-ffi) + ("ruby-rake" ,ruby-rake))) + (inputs + `(("libsass" ,libsass))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-minitest-around" ,ruby-minitest-around) + ("ruby-test-construct" ,ruby-test-construct))) + (synopsis "Use libsss from Ruby") + (description + "This library provides Ruby q@acronym{FFI, Foreign Function Interface} +bindings to the libsass library. This enables rendering +@acronym{SASS,Syntactically awesome style sheets} from Ruby code.") + (home-page "https://github.com/sass/sassc-ruby") + (license license:expat))) + (define-public ruby-jekyll-sass-converter (package (name "ruby-jekyll-sass-converter") From 76b732fbc36713136c2bc4228c24890284a94f08 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:20:09 +0000 Subject: [PATCH 094/111] gnu: Add ruby-markaby. * gnu/packages/ruby.scm (ruby-markaby): New variable. --- gnu/packages/ruby.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index b3c19808a6..a547f5d8ae 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2290,6 +2290,43 @@ (define-public ruby-test-unit (home-page "https://test-unit.github.io/") (license (list license:psfl license:ruby)))) +(define-public ruby-markaby + (package + (name "ruby-markaby") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "markaby" version)) + (sha256 + (base32 + "1j4jc31ycydbkh5h3q6zwidzpavg3g5mbb5lqyaczd3jrq78rd7i")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; Run rspec manually without using the Rakefile, as the versions of + ;; Rake and RSpec 2 are incompatible: + ;; + ;; NoMethodError: undefined method `last_comment' + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "rspec")) + #t))))) + (propagated-inputs + `(("ruby-builder" ,ruby-builder))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec-2))) + (synopsis "Write HTML pages in pure Ruby") + (description + "Markaby allows writing HTML packages in pure Ruby. This is similar to +the functionality provided by @acronym{ERB, Embeded Ruby}, but without the +mixture of HTML and additional ERB syntax.") + (home-page "http://markaby.github.io/") + (license license:expat))) + (define-public ruby-maruku (package (name "ruby-maruku") From 09e2b0af40f08a2f279d67bc0db3a1a28962405b Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:20:19 +0000 Subject: [PATCH 095/111] gnu: Add ruby-temple. * gnu/packages/ruby.scm (ruby-temple): New variable. --- gnu/packages/ruby.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index a547f5d8ae..4cf938f6f5 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2170,6 +2170,29 @@ (define-public ruby-locale (home-page "https://github.com/ruby-gettext/locale") (license (list license:lgpl3+ license:ruby)))) +(define-public ruby-temple + (package + (name "ruby-temple") + (version "0.8.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "temple" version)) + (sha256 + (base32 + "158d7ygbwcifqnvrph219p7m78yjdjazhykv5darbkms7bxm5y09")))) + (build-system ruby-build-system) + (native-inputs + `(("ruby-tilt" ,ruby-tilt) + ("ruby-bacon" ,ruby-bacon) + ("ruby-erubis" ,ruby-erubis))) + (synopsis "Template compilation framework in Ruby") + (description + "Temple is an abstraction and framework for compiling templates to pure +Ruby.") + (home-page "https://github.com/judofyr/temple") + (license license:expat))) + (define-public ruby-text (package (name "ruby-text") From 8ea991e3afafd512830d613fe5e5be14314a8a4c Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:20:27 +0000 Subject: [PATCH 096/111] gnu: Add ruby-haml. * gnu/packages/ruby.scm (ruby-haml): New variable. --- gnu/packages/ruby.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 4cf938f6f5..0b48adfff0 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1738,6 +1738,33 @@ (define-public ruby-fuubar (home-page "https://github.com/thekompanee/fuubar") (license license:expat))) +(define-public ruby-haml + (package + (name "ruby-haml") + (version "5.0.4") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "haml" version)) + (sha256 + (base32 + "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; No included tests + (propagated-inputs + `(("ruby-tilt" ,ruby-tilt) + ("ruby-temple" ,ruby-temple))) + (synopsis "Haml is a Ruby library to generate HTML documents") + (description + "@acronym{Haml, HTML Abstraction Markup Language} is a layer on top of +HTML or XML that is designed to express the structure of documents using +indentation rather than closing tags. It was originally envisioned as a +plugin for Ruby on Rails, but it can function as a stand-alone templating +engine.") + (home-page "http://haml.info/") + (license license:expat))) + (define-public ruby-hamster (package (name "ruby-hamster") From bcbb3cc907b112da16565cadd322a544f93ccd05 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 17 Feb 2019 17:20:45 +0000 Subject: [PATCH 097/111] gnu: Add ruby-tilt. * gnu/packages/ruby.scm (ruby-tilt): New variable. --- gnu/packages/ruby.scm | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 0b48adfff0..53df4cf9fc 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3820,6 +3820,52 @@ (define-public ruby-guard (home-page "http://guardgem.org/") (license license:expat))) +(define-public ruby-tilt + (package + (name "ruby-tilt") + (version "2.0.9") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "tilt" version)) + (sha256 + (base32 + "0ca4k0clwf0rkvy7726x4nxpjxkpv67w043i39saxgldxd97zmwz")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-some-dependencies + (lambda _ + (substitute* "Gemfile" + ;; TODO ronn is used for generating the manual + (("gem 'ronn'.*") "\n") + ;; ruby-haml has a runtime dependency on ruby-tilt, so don't + ;; pass it in as a native-input + (("gem 'haml'.*") "\n") + ;; TODO Not all of these gems are packaged for Guix yet: + ;; less, coffee-script, livescript, babel-transpiler, + ;; typescript-node + (("if can_execjs") "if false") + ;; Disable the secondary group to reduce the number of + ;; dependencies. None of the normal approaches work, so patch + ;; the Gemfile instead. + (("group :secondary") "[].each")) + #t))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-yard" ,ruby-yard) + ("ruby-builder" ,ruby-builder) + ("ruby-erubis" ,ruby-erubis) + ("ruby-markaby" ,ruby-markaby) + ("ruby-sassc" ,ruby-sassc))) + (synopsis "Generic interface to multiple Ruby template engines") + (description + "Tilt is a thin interface over a number of different Ruby template +engines in an attempt to make their usage as generic as possible.") + (home-page "https://github.com/rtomayko/tilt/") + (license license:expat))) + (define-public ruby-thread-safe (package (name "ruby-thread-safe") From dcbe674c86b3a93ff269e9f4925a2d61213165bf Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 4 Mar 2019 21:04:16 +0100 Subject: [PATCH 098/111] gnu: python-redis: Update to 3.2.0. * gnu/packages/databases.scm (python-redis): Update to 3.2.0. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index d913d72874..4afedf8ba1 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -2478,13 +2478,13 @@ (define-public python2-fakeredis (define-public python-redis (package (name "python-redis") - (version "2.10.6") + (version "3.2.0") (source (origin (method url-fetch) (uri (pypi-uri "redis" version)) (sha256 - (base32 "03vcgklykny0g0wpvqmy8p6azi2s078317wgb2xjv5m2rs9sjb52")))) + (base32 "0m1b88wg1w6xdwg0siky5k86x8sh6smhbr42ixz41ra81lv34jbj")))) (build-system python-build-system) ;; Tests require a running Redis server (arguments '(#:tests? #f)) From 865c76ea3b6ac7cc8f58ae3663523c38162ae2b7 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 4 Mar 2019 21:07:03 +0100 Subject: [PATCH 099/111] gnu: python-rq: Update to 0.13.0. * gnu/packages/databases.scm (python-rq): Update to 0.13.0. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 4afedf8ba1..29f5d65866 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -2503,13 +2503,13 @@ (define-public python2-redis (define-public python-rq (package (name "python-rq") - (version "0.12.0") + (version "0.13.0") (source (origin (method url-fetch) (uri (pypi-uri "rq" version)) (sha256 - (base32 "16d8kni57xlnah2hawy4xgw21xrv3f64j5q5shyp3zxx4yd9iibs")))) + (base32 "0xvapd2bxnyq480i48bdkddzlqmv2axbsq85rlfy8k3al8zxxxrf")))) (build-system python-build-system) (propagated-inputs `(("python-click" ,python-click) From f55fe42b36806aa4e87b21a830bb13d3c99d0291 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 4 Mar 2019 21:09:12 +0100 Subject: [PATCH 100/111] gnu: python-django-redis: Update to 4.10.0. * gnu/packages/django.scm (python-django-redis): Update to 4.10.0. --- gnu/packages/django.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index bce84449e1..054088ddef 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -638,22 +638,22 @@ (define-public python-django-pipeline (define-public python-django-redis (package (name "python-django-redis") - (version "4.7.0") + (version "4.10.0") (source (origin (method url-fetch) (uri (pypi-uri "django-redis" version)) (sha256 (base32 - "0yyyxv8n9l9dhs893jsqwg2cxqkkc79g719n9dzzzqgkzialv1c1")))) + "1rxcwnv9ik0swkwvfqdi9i9baw6n8if5pj6q63fjh4p9chw3j2xg")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - (and (zero? (system* "redis-server" "--daemonize" "yes")) - (with-directory-excursion "tests" - (zero? (system* "python" "runtests.py"))))))))) + (invoke "redis-server" "--daemonize" "yes") + (with-directory-excursion "tests" + (invoke "python" "runtests.py"))))))) (native-inputs `(("python-fakeredis" ,python-fakeredis) ("python-hiredis" ,python-hiredis) From 1396837184fd5e119f8e1978714d4f1804ded9c3 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 4 Mar 2019 21:14:28 +0100 Subject: [PATCH 101/111] gnu: python-django-rq: Update to 1.3.0. * gnu/packages/django.scm (python-django-rq): Update to 1.3.0. --- gnu/packages/django.scm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 054088ddef..beda8e23cd 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -675,25 +675,26 @@ (define-public python2-django-redis (define-public python-django-rq (package (name "python-django-rq") - (version "0.9.4") + (version "1.3.0") (source (origin (method url-fetch) (uri (pypi-uri "django-rq" version)) (sha256 (base32 - "04v8ilfdp10bk31fxgh4cn083gsn5m06342cnpm5d10nd8hc0vky")))) + "0xh6qa7i779vh58lwwv6yk0wx8bi38mvmpz79grnl2cl8531r928")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - (and (zero? (system* "redis-server" "--daemonize" "yes")) - (zero? (system* "django-admin.py" "test" "django_rq" - "--settings=django_rq.test_settings" - "--pythonpath=")))))))) + (invoke "redis-server" "--daemonize" "yes") + (invoke "django-admin.py" "test" "django_rq" + "--settings=django_rq.tests.settings" + "--pythonpath=")))))) (native-inputs - `(("redis" ,redis))) + `(("python-mock" ,python-mock) + ("redis" ,redis))) (propagated-inputs `(("python-django" ,python-django) ("python-rq" ,python-rq))) From 9597c550052553133d992772b6d994c72c1a03cf Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 4 Mar 2019 21:21:00 +0100 Subject: [PATCH 102/111] gnu: python2-openid: Fix package. * gnu/packages/python-web (python2-openid)[arguments]: Disable tests. --- gnu/packages/python-web.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 839f48ce4f..e25b68153d 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -600,7 +600,9 @@ (define-public python2-openid (build-system python-build-system) (arguments ;; Python 3 support is in `python3-openid`, a separate package. - `(#:python ,python-2)) + `(#:python ,python-2 + ;; Tests aren't initialized correctly. + #:tests? #f)) (home-page "https://github.com/openid/python-openid") (synopsis "OpenID support for servers and consumers") (description "This library provides OpenID authentication for Python, both From add6635281ee069893689a8f771cc3af3eb68f8d Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 4 Mar 2019 21:27:40 +0100 Subject: [PATCH 103/111] gnu: python-django-allauth: Update to 0.39.1. * gnu/packages/django.scm (python-django-allauth): Update to 0.39.1. --- gnu/packages/django.scm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index beda8e23cd..0754c80390 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -218,14 +218,14 @@ (define-public python2-django-filter (define-public python-django-allauth (package (name "python-django-allauth") - (version "0.30.0") + (version "0.39.1") (source (origin (method url-fetch) (uri (pypi-uri "django-allauth" version)) (sha256 (base32 - "1fslqc5qqb0b66yscvkyjwfv8cnbfx5nlkpnwimyb3pf1nc1w7r3")))) + "17l0acpr3cihdndzccjhgv58f9z170v2qwx7w0b8w6235x646i24")))) (build-system python-build-system) (arguments '(#:phases @@ -234,19 +234,20 @@ (define-public python-django-allauth (add-before 'check 'skip-test-requiring-network-access (lambda _ (substitute* "allauth/socialaccount/providers/openid/tests.py" + (("import override_settings") "import tag, override_settings") (("def test_login") - "from django.test import tag - @tag('requires-web') + "@tag('requires-web') def test_login")))) (replace 'check (lambda _ + ;; TODO: investigate why this test fails + (delete-file "allauth/socialaccount/providers/cern/tests.py") (setenv "DJANGO_SETTINGS_MODULE" "test_settings") - (zero? (system* - "django-admin" + (invoke "django-admin" "test" "allauth" "--verbosity=2" - "--exclude-tag=requires-web"))))))) + "--exclude-tag=requires-web")))))) (propagated-inputs `(("python-openid" ,python-openid) ("python-requests" ,python-requests) From b95d758b33e6d4b00b94964be051ac93dbe7fae9 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Mon, 4 Mar 2019 21:51:03 +0100 Subject: [PATCH 104/111] gnu: pootle: Update to 2.8.2. * gnu/packages/django.scm (pootle): Update to 2.8.2. --- gnu/packages/django.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 0754c80390..9bb81621d9 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -790,14 +790,14 @@ (define-public python2-django-statici18n (define-public pootle (package (name "pootle") - (version "2.8.0rc5") + (version "2.8.2") (source (origin (method url-fetch) (uri (pypi-uri "Pootle" version ".tar.bz2")) (sha256 (base32 - "0m6qcpkcy22dk3ad5y2k8851kqg2w6vrkywgy4vabwbacd7r1mvn")))) + "1ng8igq0alsqzasgxdh3fb23581anyzp121h9041pwdzzv98kn4m")))) (build-system python-build-system) (arguments `(; pootle supports only python2. From cb505b27eb0c20b8546e24bab844a195c386d30e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 4 Mar 2019 13:47:26 +0100 Subject: [PATCH 105/111] gnu: xorg-server: Don't use NAME in source URI. * gnu/packages/xorg.scm (xorg-server)[source](uri): Hard-code NAME. --- gnu/packages/xorg.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index fcfb500854..d027f317c2 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5093,7 +5093,7 @@ (define-public xorg-server (method url-fetch) (uri (string-append "mirror://xorg/individual/xserver/" - name "-" version ".tar.bz2")) + "xorg-server-" version ".tar.bz2")) (sha256 (base32 "1ph1j8gy5cazsq05krq9kppjx5v1sl75pbdka8ibxb1cq5kf8g0v")) From 248f651e77ed07d3650420850eca806d10761d20 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 4 Mar 2019 13:48:09 +0100 Subject: [PATCH 106/111] gnu: xorg-server: Update to 1.20.4. * gnu/packages/xorg.scm (xorg-server): Update to 1.20.4. (xorg-server-for-tests): Stay on version 1.20.3. --- gnu/packages/xorg.scm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index d027f317c2..7350580b77 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 David Craven ;;; Copyright © 2016, 2017 John Darrington -;;; Copyright © 2017, 2018 Marius Bakke +;;; Copyright © 2017, 2018, 2019 Marius Bakke ;;; Copyright © 2017, 2018, 2019 Rutger Helling ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice @@ -5087,7 +5087,7 @@ (define-public libxcb (define-public xorg-server (package (name "xorg-server") - (version "1.20.3") + (version "1.20.4") (source (origin (method url-fetch) @@ -5096,7 +5096,7 @@ (define-public xorg-server "xorg-server-" version ".tar.bz2")) (sha256 (base32 - "1ph1j8gy5cazsq05krq9kppjx5v1sl75pbdka8ibxb1cq5kf8g0v")) + "1vk6j7hmigfill9x8m7a6vvgb3s50ji2yf6yprbgqfz9xf9x83zy")) (patches (list ;; See: @@ -5218,7 +5218,16 @@ (define-public xorg-server (define-public xorg-server-for-tests (hidden-package (package - (inherit xorg-server)))) + (inherit xorg-server) + (version "1.20.3") + (source (origin + (inherit (package-source xorg-server)) + (uri (string-append + "mirror://xorg/individual/xserver/" + "xorg-server-" version ".tar.bz2")) + (sha256 + (base32 + "1ph1j8gy5cazsq05krq9kppjx5v1sl75pbdka8ibxb1cq5kf8g0v"))))))) (define-public xorg-server-xwayland (package From 6a7ef08aa9f2180e736cd17e6d7a4e4c1776ebfd Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 4 Mar 2019 13:49:06 +0100 Subject: [PATCH 107/111] gnu: liblo: Update to 0.30. * gnu/packages/audio.scm (liblo): Update to 0.30. --- gnu/packages/audio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 70bbc3e49a..395cdfed0d 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1741,14 +1741,14 @@ (define-public libbs2b (define-public liblo (package (name "liblo") - (version "0.29") + (version "0.30") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/liblo/liblo/" version "/liblo-" version ".tar.gz")) (sha256 (base32 - "0sn0ckc1d0845mhsaa62wf7f9v0c0ykiq796a30ja5096kib9qdc")))) + "06wdjzxjdshr6hyl4c94yvg3jixiylap8yjs8brdfpm297gck9rh")))) (build-system gnu-build-system) (arguments `(;; liblo test FAILED From 5ae458befc803fe357210fef343cf322d9f4bade Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 4 Mar 2019 14:32:19 +0100 Subject: [PATCH 108/111] gnu: rocksdb: Update to 5.18.3. * gnu/packages/databases.scm (rocksdb): Update to 5.18.3. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 29f5d65866..482d399a97 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -836,7 +836,7 @@ (define-public recutils (define-public rocksdb (package (name "rocksdb") - (version "5.15.10") + (version "5.18.3") (source (origin (method git-fetch) (uri (git-reference @@ -845,7 +845,7 @@ (define-public rocksdb (file-name (git-file-name name version)) (sha256 (base32 - "0q26frbj9pykarcfa0yxgwncxlvsqhjkby0jrbfs1a8srja688r4")) + "1v2slmmr1dsgf8z0qcfg1y9x1al96859rg48b66p9nsawczd5zv9")) (modules '((guix build utils))) (snippet '(begin From 80893da589df84ff2a9b463dca001642f8278359 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 4 Mar 2019 22:32:40 +0100 Subject: [PATCH 109/111] gnu: xorg-server-for-tests: Update to 1.20.4. * gnu/packages/xorg.scm (xorg-server-for-tests)[source, version]: Inherit. --- gnu/packages/xorg.scm | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 4fe1880c91..a79b4d473f 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5218,16 +5218,7 @@ (define-public xorg-server (define-public xorg-server-for-tests (hidden-package (package - (inherit xorg-server) - (version "1.20.3") - (source (origin - (inherit (package-source xorg-server)) - (uri (string-append - "mirror://xorg/individual/xserver/" - "xorg-server-" version ".tar.bz2")) - (sha256 - (base32 - "1ph1j8gy5cazsq05krq9kppjx5v1sl75pbdka8ibxb1cq5kf8g0v"))))))) + (inherit xorg-server)))) (define-public xorg-server-xwayland (package From c6a2fd24fcb956dfaf4d155b0fca0e4e9c5def6b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 2 Mar 2019 16:24:15 +0100 Subject: [PATCH 110/111] gnu: python-cython: Update to 0.29.6. * gnu/packages/python-xyz.scm (python-cython): Update to 0.29.6. [arguments]: Remove obsolete deletion. --- gnu/packages/python-xyz.scm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 09c7e2db38..6a20ba4b49 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2802,14 +2802,14 @@ (define-public python2-scikit-image (define-public python-cython (package (name "python-cython") - (version "0.29.5") + (version "0.29.6") (source (origin (method url-fetch) (uri (pypi-uri "Cython" version)) (sha256 (base32 - "1wfb68g115gmf3mv23w0hh972b0ll85gpb92ci28x6h997br0llx")))) + "1bp7cn0pp5qy63k9hbp4ka34fm01kvysh478phpkhr68npqk6pbc")))) (build-system python-build-system) ;; we need the full python package and not just the python-wrapper ;; because we need libpython3.3m.so @@ -2841,9 +2841,6 @@ (define-public python-cython (replace 'check (lambda _ - ;; The "with_outer_raising" test fails with Python 3.7. See - ;; https://github.com/cython/cython/issues/2454 - (delete-file "tests/run/generators_py.py") (invoke "python" "runtests.py" "-vv")))))) (home-page "http://cython.org/") (synopsis "C extensions for Python") From 6d3cff5acacecc240b1d86048e41df3ce26483a5 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 4 Mar 2019 20:18:54 +0100 Subject: [PATCH 111/111] gnu: python-pyparsing: Update to 2.3.1. * gnu/packages/python-xyz.scm (python-pyparsing): Update to 2.3.1. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 6a20ba4b49..020152b159 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3259,13 +3259,13 @@ (define-public python2-pygit2 (define-public python-pyparsing (package (name "python-pyparsing") - (version "2.2.1") + (version "2.3.1") (source (origin (method url-fetch) (uri (pypi-uri "pyparsing" version)) (sha256 - (base32 "06dgd0iilvf8m0ssmfpcbh8l6jf0zkp8adbb84llksg17crfx4zl")))) + (base32 "0yk6xl885b91dmlhlsap7x78hk2rdr879fln9anbq6k4ca42djb6")))) (build-system python-build-system) (outputs '("out" "doc")) (arguments